Ejemplos de políticas SageMaker basadas en la identidad de Amazon - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de políticas SageMaker basadas en la identidad de Amazon

De forma predeterminada, IAM los usuarios y los roles no tienen permiso para crear o modificar SageMaker recursos. Tampoco pueden realizar tareas con el AWS Management Console, AWS CLI, o AWS API. IAMEl administrador debe crear IAM políticas que concedan permiso a los usuarios y roles para realizar API operaciones específicas en los recursos específicos que necesitan. A continuación, el administrador debe adjuntar esas políticas a los IAM usuarios o grupos que requieran esos permisos. Para obtener información sobre cómo asociar políticas a un IAM usuario o grupo, consulte Agregar y quitar permisos de IAM identidad en la Referencia de autorización de servicios.

Para obtener información sobre cómo crear una política IAM basada en la identidad con estos documentos de JSON política de ejemplo, consulte Creación de políticas en la JSON pestaña.

Prácticas recomendadas sobre las políticas

Las políticas basadas en la identidad determinan si alguien puede crear SageMaker recursos de tu cuenta, acceder a ellos o eliminarlos. Estas acciones pueden suponer costes para su Cuenta de AWS. Al crear o editar políticas basadas en la identidad, siga estas directrices y recomendaciones:

  • Comience con AWS políticas gestionadas y avance hacia los permisos con los privilegios mínimos: para empezar a conceder permisos a sus usuarios y cargas de trabajo, utilice la AWS políticas gestionadas que conceden permisos para muchos casos de uso habituales. Están disponibles en su Cuenta de AWS. Le recomendamos que reduzca aún más los permisos definiendo AWS políticas gestionadas por el cliente que sean específicas para sus casos de uso. Para obtener más información, consulte AWS políticas gestionadas o AWS políticas gestionadas para las funciones laborales en la Guía IAM del usuario.

  • Aplique permisos con privilegios mínimos: cuando establezca permisos con IAM políticas, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como permisos de privilegios mínimos. Para obtener más información sobre cómo IAM aplicar permisos, consulte Políticas y permisos IAM en la IAM Guía del usuario.

  • Utilice las condiciones en IAM las políticas para restringir aún más el acceso: puede añadir una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de política para especificar que todas las solicitudes deben enviarse medianteSSL. También puede utilizar condiciones para conceder el acceso a las acciones del servicio si se utilizan a través de un procedimiento específico Servicio de AWS, como, por ejemplo, AWS CloudFormation. Para obtener más información, consulte los elementos IAM JSON de la política: Condición en la Guía del IAM usuario.

  • Utilice IAM Access Analyzer para validar sus IAM políticas y garantizar permisos seguros y funcionales: IAM Access Analyzer valida las políticas nuevas y existentes para que se ajusten al lenguaje de las políticas (JSON) y IAM a las IAM mejores prácticas. IAMAccess Analyzer proporciona más de 100 comprobaciones de políticas y recomendaciones prácticas para ayudarle a crear políticas seguras y funcionales. Para obtener más información, consulte la validación de políticas de IAM Access Analyzer en la Guía del IAM usuario.

  • Requerir autenticación multifactorial (MFA): si tiene un escenario que requiere IAM usuarios o un usuario raíz en su Cuenta de AWS, actívala MFA para mayor seguridad. Para solicitarlo MFA cuando se cancelen API las operaciones, añada MFA condiciones a sus políticas. Para obtener más información, consulte Configuración del API acceso MFA protegido en la Guía del IAM usuario.

Para obtener más información sobre las prácticas recomendadasIAM, consulte las prácticas recomendadas de seguridad IAM en la Guía del IAM usuario.

Uso de la SageMaker consola

Para acceder a la SageMaker consola de Amazon, debes tener un conjunto mínimo de permisos. Estos permisos deben permitirle enumerar y ver detalles sobre los SageMaker recursos de su AWS account. Si creas una política basada en la identidad más restrictiva que los permisos mínimos requeridos, la consola no funcionará correctamente para las entidades que cuenten con esa política. Esto incluye a los usuarios o roles con esa política.

Para garantizar que esas entidades puedan seguir utilizando la SageMaker consola, también debe adjuntar lo siguiente AWS política gestionada para las entidades. Para obtener más información, consulte Añadir permisos a un usuario en la Referencia de autorización del servicio:

No es necesario conceder permisos mínimos de consola a los usuarios que realicen llamadas únicamente al AWS CLI o el AWS API. En su lugar, permita el acceso únicamente a las acciones que coincidan con la API operación que está intentando realizar.

Permisos necesarios para usar la SageMaker consola de Amazon

La tabla de referencia de permisos muestra SageMaker API las operaciones de Amazon y los permisos necesarios para cada operación. Para obtener más información sobre SageMaker API las operaciones de Amazon, consulte SageMaker APIPermisos de Amazon: referencia de acciones, permisos y recursos.

Para usar la SageMaker consola de Amazon, debes conceder permisos para realizar acciones adicionales. En concreto, la consola necesita permisos que permitan a las ec2 acciones mostrar subredes y grupos de seguridad. VPCs Opcionalmente, la consola necesita permiso para crear funciones de ejecución para tareas como CreateNotebook, CreateTrainingJob y CreateModel. Conceda estos permisos con la siguiente política de permisos:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerApis", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*" }, { "Sid": "VpcConfigurationForCreateForms", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid":"KmsKeysForCreateForms", "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListAliases" ], "Resource":"*" }, { "Sid": "AccessAwsMarketplaceSubscriptions", "Effect": "Allow", "Action": [ "aws-marketplace:ViewSubscriptions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListRepositories", "codecommit:ListBranches", "secretsmanager:CreateSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Sid":"ListAndCreateExecutionRoles", "Effect":"Allow", "Action":[ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Resource":"*" }, { "Sid": "DescribeECRMetaData", "Effect": "Allow", "Action": [ "ecr:Describe*" ], "Resource": "*" }, { "Sid": "PassRoleForExecutionRoles", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Se requieren permisos para usar la consola Amazon SageMaker Ground Truth

Para usar la consola Amazon SageMaker Ground Truth, debes conceder permisos para recursos adicionales. En concreto, la consola necesita permisos para:

  • la AWS Marketplace para ver las suscripciones,

  • Operaciones de Amazon Cognito para gestionar su fuerza laboral privada

  • Acciones de Amazon S3 para acceder a sus archivos de entrada y salida

  • AWS Lambda acciones para enumerar e invocar funciones

Conceda estos permisos con la siguiente política de permisos:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GroundTruthConsole", "Effect": "Allow", "Action": [ "aws-marketplace:DescribeListings", "aws-marketplace:ViewSubscriptions", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "groundtruthlabeling:DescribeConsoleJob", "groundtruthlabeling:ListDatasetObjects", "groundtruthlabeling:RunFilterOrSampleManifestJob", "groundtruthlabeling:RunGenerateManifestByCrawlingJob", "lambda:InvokeFunction", "lambda:ListFunctions", "s3:GetObject", "s3:PutObject", "s3:SelectObjectContent" ], "Resource": "*" } ] }

Permisos necesarios para usar la consola Amazon Augmented AI (versión preliminar)

Para utilizar la consola de Amazon Augmented AI debe conceder permisos para recursos adicionales. Conceda estos permisos con la siguiente política de permisos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*Algorithm", "sagemaker:*Algorithms", "sagemaker:*App", "sagemaker:*Apps", "sagemaker:*AutoMLJob", "sagemaker:*AutoMLJobs", "sagemaker:*CodeRepositories", "sagemaker:*CodeRepository", "sagemaker:*CompilationJob", "sagemaker:*CompilationJobs", "sagemaker:*Endpoint", "sagemaker:*EndpointConfig", "sagemaker:*EndpointConfigs", "sagemaker:*EndpointWeightsAndCapacities", "sagemaker:*Endpoints", "sagemaker:*Environment", "sagemaker:*EnvironmentVersion", "sagemaker:*EnvironmentVersions", "sagemaker:*Environments", "sagemaker:*Experiment", "sagemaker:*Experiments", "sagemaker:*FlowDefinitions", "sagemaker:*HumanLoop", "sagemaker:*HumanLoops", "sagemaker:*HumanTaskUi", "sagemaker:*HumanTaskUis", "sagemaker:*HyperParameterTuningJob", "sagemaker:*HyperParameterTuningJobs", "sagemaker:*LabelingJob", "sagemaker:*LabelingJobs", "sagemaker:*Metrics", "sagemaker:*Model", "sagemaker:*ModelPackage", "sagemaker:*ModelPackages", "sagemaker:*Models", "sagemaker:*MonitoringExecutions", "sagemaker:*MonitoringSchedule", "sagemaker:*MonitoringSchedules", "sagemaker:*NotebookInstance", "sagemaker:*NotebookInstanceLifecycleConfig", "sagemaker:*NotebookInstanceLifecycleConfigs", "sagemaker:*NotebookInstanceUrl", "sagemaker:*NotebookInstances", "sagemaker:*ProcessingJob", "sagemaker:*ProcessingJobs", "sagemaker:*RenderUiTemplate", "sagemaker:*Search", "sagemaker:*SearchSuggestions", "sagemaker:*Tags", "sagemaker:*TrainingJob", "sagemaker:*TrainingJobs", "sagemaker:*TransformJob", "sagemaker:*TransformJobs", "sagemaker:*Trial", "sagemaker:*TrialComponent", "sagemaker:*TrialComponents", "sagemaker:*Trials", "sagemaker:*Workteam", "sagemaker:*Workteams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:*FlowDefinition" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "sagemaker:WorkteamType": [ "private-crowd", "vendor-crowd" ] } } }, { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "aws-marketplace:ViewSubscriptions", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:CreateRepository", "ecr:Describe*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "elastic-inference:Connect", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "fsx:DescribeFileSystems", "glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:GetJobs", "glue:ResetJobBookmark", "glue:StartJobRun", "glue:UpdateJob", "groundtruthlabeling:*", "iam:ListRoles", "kms:DescribeKey", "kms:ListAliases", "lambda:ListFunctions", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents", "sns:ListTopics" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:DescribeResourcePolicies", "logs:GetLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage" ], "Resource": "arn:aws:ecr:*:*:repository/*sagemaker*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*", "arn:aws:s3:::*aws-glue*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*SageMaker*", "arn:aws:lambda:*:*:function:*sagemaker*", "arn:aws:lambda:*:*:function:*Sagemaker*", "arn:aws:lambda:*:*:function:*LabelingFunction*" ] }, { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "robomaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sns:Subscribe", "sns:CreateTopic" ], "Resource": [ "arn:aws:sns:*:*:*SageMaker*", "arn:aws:sns:*:*:*Sagemaker*", "arn:aws:sns:*:*:*sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "glue.amazonaws.com", "robomaker.amazonaws.com", "states.amazonaws.com" ] } } } ] }

Cómo permitir a los usuarios consultar sus propios permisos

En este ejemplo, se muestra cómo se puede crear una política que permita a IAM los usuarios ver las políticas integradas y gestionadas asociadas a su identidad de usuario. Esta política incluye permisos para completar esta acción en la consola o mediante programación mediante el AWS CLI o AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Controle la creación de SageMaker recursos con claves de condición

Controle el acceso detallado para permitir la creación de SageMaker recursos mediante claves de condición SageMaker específicas. Para obtener información sobre el uso de claves de condición en las IAM políticas, consulte Elementos de IAM JSON política: condición en la Guía del usuario. IAM

Las claves de condición, API las acciones relacionadas y los enlaces a la documentación pertinente figuran en las claves de condición de SageMaker la Referencia de autorización de servicio.

Los siguientes ejemplos muestran cómo utilizar las claves de SageMaker condición para controlar el acceso.

Controle el acceso a SageMaker los recursos mediante las claves de condición del sistema de archivos

SageMaker El entrenamiento proporciona una infraestructura segura para que se ejecute el algoritmo de entrenamiento, pero en algunos casos es posible que desee aumentar la defensa en profundidad. Por ejemplo, minimice el riesgo de ejecutar código que no sea de confianza en su algoritmo o disponga de mandatos de seguridad específicos en su organización. En estos casos, puede utilizar las claves de condición específicas del servicio en el elemento Condición de una IAM política para limitar al usuario a:

  • sistemas de archivos específicos

  • directorios

  • modos de acceso (lectura-escritura, solo lectura)

  • grupos de seguridad

Restringir a un IAM usuario a directorios y modos de acceso específicos

La siguiente política restringe al usuario a los /sagemaker/xgboost-dm/validation directorios /sagemaker/xgboost-dm/train y a los directorios de un sistema de EFS archivos ro (de solo lectura): AccessMode

nota

Cuando se permite un directorio, el algoritmo de capacitación también puede acceder a todos sus subdirectorios. POSIXse omiten los permisos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToElasticFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/train" } } }, { "Sid": "AccessToElasticFileSystemValidation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/validation" } } } ] }

Restringir a un usuario a un sistema de archivos específico

Para evitar que un algoritmo malicioso que utilice un cliente de espacio de usuario acceda directamente a cualquier sistema de archivos de su cuenta, puede restringir el tráfico de red. Para restringir este tráfico, permita la entrada únicamente desde un grupo de seguridad específico. En el siguiente ejemplo, el usuario de solo puede utilizar el grupo de seguridad especificado para acceder al sistema de archivos:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToLustreFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "FSxLustre", "sagemaker:FileSystemDirectoryPath": "/fsx/sagemaker/xgboost/train" }, "ForAllValues:StringEquals": { "sagemaker:VpcSecurityGroupIds": [ "sg-12345678" ] } } } ] }

Este ejemplo puede restringir un algoritmo a un sistema de archivos específico. Sin embargo, no impide que un algoritmo acceda a cualquier directorio de ese sistema de archivos mediante el cliente de espacio de usuario. Para mitigar esto, puede:

  • Asegurarse de que el sistema de archivos solo contenga datos cuyo acceso confíe a los usuarios de

  • Cree un IAM rol que restrinja a sus usuarios a iniciar trabajos de formación con algoritmos de repositorios aprobados ECR

Para obtener más información sobre cómo usar los roles con SageMaker, consulta SageMaker Roles.

Restrinja la formación a una actividad específica VPC

Restrinja un AWS acostumbrado a crear trabajos de formación desde AmazonVPC. Cuando se cree un trabajo de formación en un clúster de formaciónVPC, utilice los registros de VPC flujo para supervisar todo el tráfico que entra y sale del clúster de formación. Para obtener información sobre el uso de registros de VPC flujo, consulte VPCFlow Logs en la Guía del usuario de Amazon Virtual Private Cloud.

La siguiente política exige que un trabajo de formación lo cree un usuario que llame CreateTrainingJobdesde unVPC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFromVpc", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:VpcSubnets": ["subnet-a1234"], "sagemaker:VpcSecurityGroupIds": ["sg12345", "sg-67890"] }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } } ] }

Restrinja el acceso a los tipos de personal para los trabajos de etiquetado de Ground Truth y los flujos de trabajo de Amazon A2I Human Review

Los equipos de trabajo de Amazon SageMaker Ground Truth y Amazon Augmented AI se dividen en uno de los tres tipos de personal:

  • público (con Amazon Mechanical Turk)

  • privada

  • proveedor

Puede restringir el acceso de los usuarios a un equipo de trabajo específico utilizando uno de estos tipos o el equipo ARN de trabajo. Para ello, utilice las teclas de condición sagemaker:WorkteamType y/o las teclas de sagemaker:WorkteamArn condición. Para la clave de condición sagemaker:WorkteamType, utilice operadores de condición de cadena. Para la clave de sagemaker:WorkteamArn condición, utilice los operadores de condición Amazon Resource Name (ARN). Si el usuario intenta crear un trabajo de etiquetado con un equipo de trabajo restringido, SageMaker devuelve un error de acceso denegado.

Las siguientes políticas muestran diferentes formas de utilizar las claves de sagemaker:WorkteamArn condición sagemaker:WorkteamType y las claves de condición con los operadores de condición adecuados y los valores de condición válidos.

En el ejemplo siguiente se utiliza la clave de condición sagemaker:WorkteamType con el operador de condición StringEquals para restringir el acceso a un equipo de trabajo público. Acepta valores de condición en el siguiente formato:workforcetype-crowd, donde workforcetype puede ser igual a publicprivate, ovendor.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:WorkteamType": "public-crowd" } } } ] }

Las siguientes políticas muestran cómo restringir el acceso a un equipo de trabajo público mediante la clave de condición sagemaker:WorkteamArn. La primera muestra cómo usarla con una IAM variante de expresiones regulares válida del equipo de trabajo ARN y del operador de ArnLike condición. La segunda muestra cómo usarla con el operador de la ArnEquals condición y el equipo de trabajo. ARN

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnLike": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:*:*:workteam/public-crowd/*" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:us-west-2:394669845002:workteam/public-crowd/default" } } } ] }

Imponga el cifrado de los datos de entrada

La siguiente política restringe a un usuario a especificar un AWS KMS clave para cifrar los datos de entrada mediante la clave de sagemaker:VolumeKmsKey condición al crear:

  • entrenamiento

  • ajuste de hiperparámetros

  • etiquetar trabajos

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateLabelingJob", "sagemaker:CreateFlowDefiniton" ], "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:VolumeKmsKey": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } } ] }

Imponga el cifrado del volumen de almacenamiento de las instancias del bloc de notas

La siguiente política restringe a un usuario a especificar un AWS KMS clave para cifrar el volumen de almacenamiento adjunto mediante la clave de sagemaker:VolumeKmsKey condición cuando:

  • crear una instancia de bloc de notas

  • actualizar una instancia de bloc de notas

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "ArnLike": { "sagemaker:VolumeKmsKey": "*key/volume-kms-key-12345" } } } ] }

Imponga el aislamiento de la red para los trabajos de formación

La siguiente política restringe a un usuario a habilitar el aislamiento de redes al crear trabajos de entrenamiento mediante la clave de condición sagemaker:NetworkIsolation:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceIsolation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "Bool": { "sagemaker:NetworkIsolation": "true" } } } ] }

Imponga un tipo de instancia específico para los trabajos de formación

La siguiente política restringe a un usuario a utilizar un tipo de instancia específico al crear trabajos de entrenamiento mediante la clave de condición sagemaker:InstanceTypes:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceInstanceType", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringLike": { "sagemaker:InstanceTypes": ["ml.c5.*"] } } } ] }

Implemente un acelerador de IE específico para los trabajos de formación

La siguiente política restringe a un usuario a usar un acelerador de inferencia elástica (EI) específico, si se proporciona un acelerador, utilizando la clave de condición cuando: sagemaker:AcceleratorTypes

  • crear instancias de bloc de notas

  • actualizar instancias de bloc de notas

  • creación de configuraciones de puntos finales

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceAcceleratorType", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance", "sagemaker:UpdateNotebookInstance", "sagemaker:CreateEndpointConfig" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:AcceleratorTypes": ["ml.eia1.medium"] } } } ] }

Imponga la desactivación del acceso a Internet y el acceso root para crear instancias de notebook

Puede deshabilitar tanto el acceso a Internet como el acceso raíz a las instancias de bloc de notas para que sean más seguras. Para obtener información sobre cómo controlar el acceso root a una instancia de notebook, consulteControle el acceso root a una instancia de SageMaker notebook. Para obtener información sobre cómo deshabilitar el acceso a Internet en una instancia de notebook, consulteConectar una instancia de Notebook en un VPC recurso externo.

La siguiente política requiere que un usuario deshabilite el acceso de red a la hora de crear una instancia y que deshabilite el acceso raíz a la hora de crear o actualizar una instancia de cuaderno.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LockDownCreateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:DirectInternetAccess": "Disabled", "sagemaker:RootAccess": "Disabled" }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } }, { "Sid": "LockDownUpdateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:UpdateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:RootAccess": "Disabled" } } } ] }

Controle el acceso a ella SageMaker API mediante políticas basadas en la identidad

Para controlar el acceso a las SageMaker API llamadas y las llamadas a los puntos finales SageMaker alojados, utilice políticas basadas en la identidad. IAM

Restrinja el acceso SageMaker API y el tiempo de ejecución de las llamadas desde su VPC

Si configura un punto final de interfaz en su dispositivoVPC, las personas ajenas al VPC mismo pueden conectarse al SageMaker API entorno de ejecución a través de Internet. Para evitarlo, adjunte una IAM política que restrinja el acceso a las llamadas que se realicen desde dentro delVPC. Estas llamadas deben estar restringidas a todos los usuarios y grupos que tengan acceso a sus SageMaker recursos. Para obtener información sobre cómo crear un punto final de VPC interfaz para el SageMaker API entorno de ejecución, consulteConéctese a SageMaker Within your VPC.

importante

Si aplicas una IAM política similar a una de las siguientes, los usuarios no podrán acceder a la especificada SageMaker APIs a través de la consola.

Para restringir el acceso únicamente a las conexiones que se realicen desde dentro de la tuyaVPC, crea una AWS Identity and Access Management política que restrinja el acceso. Este acceso debe restringirse únicamente a las llamadas que provengan de su VPC interior. A continuación, añada esa política a cada AWS Identity and Access Management usuario, grupo o rol utilizado para acceder al entorno de ejecución SageMaker API o.

nota

Esta política únicamente permite las conexiones a los intermediarios que se encuentren dentro de una subred en la que se haya creado un punto de enlace de interfaz.

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

Para restringir el acceso únicamente API a las llamadas realizadas mediante el punto final de la interfaz, utilice la clave de aws:SourceVpce condición en lugar deaws:SourceVpc:

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

Limite el acceso SageMaker API y las llamadas en tiempo de ejecución por dirección IP

Puede permitir el acceso a las SageMaker API llamadas y a las invocaciones en tiempo de ejecución únicamente desde las direcciones IP de una lista que especifique. Para ello, cree una IAM política que deniegue el acceso a, a API menos que la llamada provenga de una dirección IP de la lista. A continuación, adjunte esa política a cada AWS Identity and Access Management usuario, grupo o rol utilizado para acceder al entorno de ejecución API o. Para obtener información sobre la creación de IAM políticas, consulte Creación de IAM políticas en AWS Identity and Access Management Guía del usuario.

Para especificar la lista de direcciones IP que tienen acceso a la API llamada, utilice:

  • IpAddressoperador de condición

  • aws:SourceIPclave de contexto de condición

Para obtener información sobre los operadores de IAM condición, consulte Elementos IAM JSON de política: Operadores de condición en AWS Identity and Access Management Guía del usuario. Para obtener información sobre las claves de contexto de IAM condición, consulte AWS Claves de contexto de condiciones globales.

Por ejemplo, la siguiente política permite el acceso a la CreateTrainingJob solo desde direcciones IP en los intervalos 192.0.2.0-192.0.2.255 y 203.0.113.0-203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreateTrainingJob", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

Limite el acceso a una instancia de notebook por dirección IP

Puede permitir el acceso a una instancia de bloc de notas únicamente desde las direcciones IP de una lista que especifique. Para ello, cree una IAM política que deniegue el acceso a CreatePresignedNotebookInstanceUrlmenos que la llamada provenga de una dirección IP de la lista. A continuación, adjunte esta política a cada AWS Identity and Access Management usuario, grupo o rol utilizado para acceder a la instancia del bloc de notas. Para obtener información sobre la creación de IAM políticas, consulte Creación de IAM políticas en AWS Identity and Access Management Guía del usuario.

Para especificar la lista de direcciones IP a las que desea que accedan a la instancia del bloc de notas, utilice:

  • IpAddressoperador de condición

  • aws:SourceIPclave de contexto de condición

Para obtener información sobre los operadores de IAM condición, consulte Elementos IAM JSON de política: Operadores de condición en AWS Identity and Access Management Guía del usuario. Para obtener información sobre las claves de contexto de IAM condición, consulte AWS Claves de contexto de condiciones globales.

Por ejemplo, la siguiente política permite el acceso a una instancia de bloc de notas solo desde las direcciones IP en los intervalos 192.0.2.0 a 192.0.2.255 y 203.0.113.0 a 203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

La política restringe el acceso tanto a la llamada como a la URL que devuelve la llamada. CreatePresignedNotebookInstanceUrl La política también restringe el acceso a abrir una instancia de bloc de notas en la consola. Se aplica a todas las HTTP solicitudes y WebSocket marcos que intenten conectarse a la instancia del bloc de notas.

nota

El uso de este método para filtrar por dirección IP no es compatible cuando se conecta a SageMaker través de un punto final de la VPC interfaz. . Para obtener información sobre cómo restringir el acceso a una instancia de notebook cuando se conecta a través de un punto final de VPC interfaz, consulteConéctese a una instancia de Notebook a través de un punto final VPC de interfaz.

Controle el acceso a SageMaker los recursos mediante etiquetas

Especifique las etiquetas dentro de una IAM política para controlar el acceso a los grupos de SageMaker recursos. Utilice etiquetas para implementar el control de acceso basado en atributos (ABAC). El uso de etiquetas le ayuda a particionar el acceso a los recursos para grupos específicos de usuarios. Puede tener un equipo con acceso a un grupo de recursos y otro equipo con acceso a otro conjunto de recursos. Puede proporcionar ResourceTag condiciones en las IAM políticas para proporcionar acceso a cada grupo.

nota

Las políticas basadas en etiquetas no sirven para restringir las siguientes API llamadas:

  • DeleteImageVersion

  • DescribeImageVersion

  • ListAlgorithms

  • ListCodeRepositories

  • ListCompilationJobs

  • ListEndpointConfigs

  • ListEndpoints

  • ListFlowDefinitions

  • ListHumanTaskUis

  • ListHyperparameterTuningJobs

  • ListLabelingJobs

  • ListLabelingJobsForWorkteam

  • ListModelPackages

  • ListModels

  • ListNotebookInstanceLifecycleConfigs

  • ListNotebookInstances

  • ListSubscribedWorkteams

  • ListTags

  • ListProcessingJobs

  • ListTrainingJobs

  • ListTrainingJobsForHyperParameterTuningJob

  • ListTransformJobs

  • ListWorkteams

  • Búsqueda

Un ejemplo sencillo puede ayudarle a entender cómo puede utilizar las etiquetas para particionar los recursos. Supongamos que ha definido dos IAM grupos diferentes, denominados DevTeam1 yDevTeam2, en su AWS account. También ha creado 10 instancias de cuaderno. Usa 5 de las instancias del cuaderno para un proyecto. Usa las otras 5 para un segundo proyecto. Puedes proporcionar DevTeam1 permisos para realizar API llamadas en las instancias del bloc de notas que utilices para el primer proyecto. Puedes proporcionarlos DevTeam2 para realizar API llamadas en instancias de bloc de notas utilizadas en el segundo proyecto.

El siguiente procedimiento proporciona un ejemplo sencillo que le ayuda a entender el concepto de agregar etiquetas. Puede usarlo para implementar la solución descrita en el párrafo anterior.

Para controlar el acceso a API las llamadas (ejemplo)
  1. Añada una etiqueta con la clave Project y el valor A a las instancias de bloc de notas usadas para el primer proyecto. Para obtener información sobre cómo añadir etiquetas a SageMaker los recursos, consulte AddTags.

  2. Añada una etiqueta con la clave Project y el valor B a las instancias de bloc de notas usadas para el segundo proyecto.

  3. Cree una IAM política con una ResourceTag condición que deniegue el acceso a las instancias del bloc de notas utilizadas en el segundo proyecto. A continuación, adjunte esa política aDevTeam1. El siguiente ejemplo de política deniega todas las API llamadas a cualquier instancia de notebook con una etiqueta con una clave de Project y un valor deB:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "B" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

    Para obtener información sobre cómo crear IAM políticas y cómo asociarlas a las identidades, consulte Control del acceso mediante políticas en la AWS Identity and Access Management Guía del usuario.

  4. Cree una IAM política con una ResourceTag condición que deniegue el acceso a las instancias del bloc de notas utilizadas en el primer proyecto. A continuación, adjunte esa política aDevTeam2. El siguiente ejemplo de política deniega todas las API llamadas a cualquier instancia de notebook con una etiqueta con una clave de Project y un valor deA:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "A" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

Proporciona permisos para etiquetar SageMaker los recursos

Las etiquetas son etiquetas de metadatos que puedes adjuntar a determinadas AWS recursos. Una etiqueta consta de un par clave-valor que proporciona una forma flexible de anotar los recursos con atributos de metadatos para diversos casos de uso del etiquetado, entre los que se incluyen:

Se pueden usar en permisos y políticas, cuotas de servicio e integraciones con otros AWS servicios. Las etiquetas pueden ser definidas por el usuario o AWS generadas al crear recursos. Esto depende de si el usuario especifica manualmente etiquetas personalizadas o una AWS el servicio genera automáticamente una etiqueta.

  • Etiquetas definidas por el usuario en SageMaker: los usuarios pueden añadir etiquetas cuando crean SageMaker recursos utilizando SageMaker SDKs el AWS CLI CLI SageMaker APIs, SageMaker Consola o AWS CloudFormation plantillas.

    nota

    Las etiquetas definidas por el usuario se pueden anular si un recurso se actualiza posteriormente y se cambia o reemplaza el valor de la etiqueta. Por ejemplo, un trabajo de formación creado con {Equipo: A} podría actualizarse incorrectamente y volver a etiquetarse como {Equipo: B}. Como resultado, es posible que los permisos permitidos se hayan asignado de forma incorrecta. Por lo tanto, se debe tener cuidado al permitir que los usuarios o grupos agreguen etiquetas, ya que es posible que puedan anular los valores de las etiquetas existentes. Se recomienda limitar estrictamente los permisos de las etiquetas y utilizar IAM condiciones para controlar las capacidades de etiquetado.

  • AWS etiquetas generadas en SageMaker: etiqueta SageMaker automáticamente ciertos recursos que crea. Por ejemplo, Studio y Studio Classic asignan automáticamente la sagemaker:domain-arn etiqueta a SageMaker los recursos que crean. Al etiquetar nuevos recursos con el dominio, se ARN puede rastrear cómo se originan SageMaker los recursos, como los trabajos de formación, los modelos y los puntos finales. Para un control y un seguimiento más precisos, los nuevos recursos reciben etiquetas adicionales, como las siguientes:

    • sagemaker:user-profile-arn- El ARN del perfil de usuario que creó el recurso. Esto permite rastrear los recursos creados por usuarios específicos.

    • sagemaker:space-arn- El ARN espacio en el que se creó el recurso. Esto permite agrupar y aislar los recursos por espacio.

    nota

    AWS Los usuarios no pueden cambiar las etiquetas generadas.

Para obtener información general sobre el etiquetado AWS recursos y prácticas recomendadas, consulte Etiquetar sus AWS recursos. Para obtener información sobre los principales casos de uso del etiquetado, consulte Casos de uso del etiquetado.

Conceda permiso para añadir etiquetas al crear recursos SageMaker

Puede permitir a los usuarios (etiquetas definidas por el usuario) o a Studio y Studio Classic (AWS etiquetas generadas) para añadir etiquetas a SageMaker los nuevos recursos en el momento de la creación. Para ello, sus IAM permisos deben incluir ambos:

  • El permiso de SageMaker creación base para ese tipo de recurso.

  • El sagemaker:AddTags permiso.

Por ejemplo, permitir a un usuario crear un trabajo de SageMaker formación y etiquetarlo requeriría conceder permisos para sagemaker:CreateTrainingJob ysagemaker:AddTags.

importante

IAMLas políticas personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es obligatorio porque Studio y Studio Classic etiquetan automáticamente los recursos que crean. Si una IAM política permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores AccessDenied «» al intentar crear recursos.

AWS Políticas gestionadas para Amazon SageMakerque otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

Los administradores adjuntan estos IAM permisos a una de las siguientes opciones:

  • AWS IAMfunciones asignadas al usuario para las etiquetas definidas por el usuario

  • el rol de ejecución utilizado por Studio o Studio Classic para AWS etiquetas generadas

Para obtener instrucciones sobre cómo crear y aplicar IAM políticas personalizadas, consulte Creación de IAM políticas (consola).

nota

La lista de operaciones de creación de SageMaker recursos se encuentra en la SageMaker APIdocumentación buscando acciones que comiencen porCreate. Estas acciones de creación, como CreateTrainingJob yCreateEndpoint, son las operaciones que crean nuevos SageMaker recursos.

Añade permisos de etiqueta a determinadas acciones de creación

Para conceder el sagemaker:AddTags permiso con restricciones, debe adjuntar una IAM política adicional a la política de creación de recursos original. El siguiente ejemplo de política permitesagemaker:AddTags, pero lo restringe, solo a determinadas acciones de creación SageMaker de recursos, como. CreateTrainingJob

{ "Sid": "AllowAddTagsForCreateOperations", "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:TaggingAction": "CreateTrainingJob" } } }

La condición de la política limita sagemaker:AddTags su uso junto con acciones de creación específicas. En este enfoque, la política de permisos de creación permanece intacta, mientras que una política adicional proporciona un sagemaker:AddTags acceso restringido. La condición impide el sagemaker:AddTags permiso general al limitarlo a las acciones de creación que necesitan ser etiquetadas. Esto implementa el privilegio mínimo al permitirlo solo para sagemaker:AddTags casos de uso específicos SageMaker de creación de recursos.

Ejemplo: permitir el permiso de etiquetas a nivel mundial y restringir las acciones de creación a un dominio

En este ejemplo de IAM política personalizada, las dos primeras afirmaciones ilustran el uso de etiquetas para realizar un seguimiento de la creación de recursos. Permite la sagemaker:CreateModel acción en todos los recursos y el etiquetado de esos recursos cuando se utiliza esa acción. La tercera afirmación demuestra cómo se pueden utilizar los valores de las etiquetas para controlar las operaciones con los recursos. En este caso, impide la creación de SageMaker recursos etiquetados con un dominio específicoARN, lo que restringe el acceso en función del valor de la etiqueta.

En particular:

  • La primera sentencia permite la CreateModel acción en cualquier recurso (*).

  • La segunda sentencia permite la sagemaker:AddTags acción, pero solo cuando la clave de sagemaker:TaggingAction condición es igualCreateModel. Esto restringe la sagemaker:AddTags acción a solo cuando se utiliza para etiquetar un modelo recién creado.

  • La tercera afirmación niega cualquier acción de SageMaker creación (Create*) en cualquier recurso (*), pero solo cuando el recurso tiene una etiqueta sagemaker:domain-arn igual a la de un dominio ARN específico. domain-arn

{ "Statement":[ { "Effect":"Allow", "Action":[ "sagemaker:CreateModel" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "sagemaker:AddTags" ], "Resource":"*", "Condition":{ "String":{ "sagemaker:TaggingAction":[ "CreateModel" ] } } }, { "Sid":"IsolateDomain", "Effect":"Deny", "Resource":"*", "Action":[ "sagemaker:Create*" ], "Condition":{ "StringEquals":{ "aws:ResourceTag/sagemaker:domain-arn":"domain-arn" } } } ] }

Limite el acceso a los recursos que se pueden buscar con condiciones de visibilidad

Utilice las condiciones de visibilidad para limitar el acceso de sus usuarios a recursos etiquetados específicos dentro de un AWS account. Sus usuarios solo pueden acceder a los recursos para los que tienen permisos. Cuando los usuarios buscan en sus recursos, pueden limitar los resultados de la búsqueda a recursos específicos.

Es posible que desee que sus usuarios solo vean e interactúen con los recursos asociados a dominios específicos de Amazon SageMaker SageMaker Studio o Amazon Studio Classic. Puedes usar las condiciones de visibilidad para limitar su acceso a uno o varios dominios.

{ "Sid": "SageMakerApis", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Región de AWS:111122223333:domain/example-domain-1", "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Región de AWS:111122223333:domain/example-domain-2" } } }

El formato general de una condición de visibilidad es"sagemaker:SearchVisibilityCondition/Tags.key": "value". Puede proporcionar el par clave-valor para cualquier recurso etiquetado.

{ "MaxResults": number, "NextToken": "string", "Resource": "string", # Required Parameter "SearchExpression": { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedFilters": [ { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedPropertyName": "string" } ], "Operator": "string", "SubExpressions": [ "SearchExpression" ] }, "IsCrossAccount": "string", "VisibilityConditions" : [ List of conditions for visibility {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Región de AWS:111122223333:domain/example-domain-1"}, {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Región de AWS:111122223333:domain/example-domain-2"} ] ], "SortBy": "string", "SortOrder": "string" }

La condición de visibilidad interna utiliza el mismo "sagemaker:SearchVisibilityCondition/Tags.key": "value" formato especificado en la política. Los usuarios pueden especificar los pares clave-valor que se utilizan para cualquier recurso etiquetado.

Si un usuario incluye el VisibilityConditions parámetro en su solicitud de búsqueda, pero la política de acceso que se aplica a ese usuario no contiene ninguna de las claves de condiciones que coincidan con las especificadasVisibilityConditions, la Search solicitud seguirá estando permitida y se ejecutará.

Si no se especifica un VisibilityConditions parámetro en la API solicitud de búsqueda del usuario, pero la política de acceso que se aplica a ese usuario contiene las claves de condición relacionadas con ellasVisibilityConditions, se deniega la Search solicitud de ese usuario.