Cómo utilizar las funciones SageMaker de ejecución - 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.

Cómo utilizar las funciones SageMaker de ejecución

Amazon SageMaker realiza operaciones en tu nombre a través de otros AWS servicios. Debes conceder SageMaker permisos para usar estos servicios y los recursos sobre los que actúan. SageMakerEstos permisos se otorgan mediante una función de ejecución AWS Identity and Access Management (IAM). Para obtener más información acerca de los roles de IAM, consulte Roles de IAM.

Para crear y usar un rol de ejecución, puede utilizar los siguientes procedimientos.

Creación de un rol de ejecución

Utilice el siguiente procedimiento para crear un rol de ejecución con la política administrada por IAM, AmazonSageMakerFullAccess, asociada. Si su caso de uso requiere permisos más detallados, utilice otras secciones de esta página para crear un rol de ejecución que se adapte a las necesidades de su empresa. Puede crear un rol de ejecución mediante la SageMaker consola o el AWS CLI.

importante

La política administrada por IAM, AmazonSageMakerFullAccess, utilizada en el siguiente procedimiento, solo concede permiso al rol de ejecución para realizar determinadas acciones de Amazon S3 en buckets u objetos con SageMaker, Sagemaker, sagemaker o aws-glue en el nombre. Para obtener información sobre cómo agregar una política adicional al rol de ejecución para concederle acceso a otros buckets y objetos de Amazon S3, consulte Añadir permisos adicionales de Amazon S3 a un rol SageMaker de ejecución.

nota

Puede crear un rol de ejecución directamente al crear un SageMaker dominio o una instancia de bloc de notas.

Para crear un nuevo rol de ejecución desde la SageMaker consola

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Elija Roles (Roles) y, después, seleccioneCreate Role (Crear rol).

  3. Mantenga el AWS servicio como el tipo de entidad de confianza y, a continuación, utilice la flecha hacia abajo para buscar SageMakeren Casos de uso de otros AWS servicios.

  4. Elija SageMaker — Ejecución y, a continuación, elija Siguiente.

  5. La política administrada por IAM, AmazonSageMakerFullAccess, se asocia automáticamente al rol. Para ver los permisos incluidos en esta política, elija el signo más (+) situado junto al nombre de la política. Elija Siguiente.

  6. Ingrese un Nombre del rol y una Descripción.

  7. De forma opcional, puede agregar permisos y etiquetas adicionales al rol.

  8. Elija Crear rol.

  9. En la sección Roles de la consola de IAM, busque el rol que acaba de crear. Si es necesario, utilice el cuadro de texto para buscar el rol por su nombre.

  10. En la página de resumen del rol, tome nota del ARN del rol.

Para crear un nuevo rol de ejecución desde la AWS CLI

Antes de crear un rol de ejecución mediante el AWS CLI, asegúrese de actualizarlo y configurarlo siguiendo las instrucciones que se indican en y, a continuaciónConfigure el AWS CLI, continúe con las instrucciones que aparecen enConfiguración personalizada mediante el AWS CLI.

Una vez que haya creado un rol de ejecución, podrá asociarlo a un SageMaker dominio, a un perfil de usuario o a una instancia de Jupyter Notebook.

También puede pasar el ARN de un rol de ejecución a su llamada a la API. Por ejemplo, con el SDK de Amazon SageMaker Python, puede pasar el ARN de su función de ejecución a un estimador. En el siguiente ejemplo de código, se crea un estimador mediante el contenedor de algoritmos XGBoost y se pasa el ARN del rol de ejecución como parámetro. Para ver el ejemplo completo GitHub, consulte Predicción de la pérdida de clientes con XGBoost.

import sagemaker, boto3 from sagemaker import image_uris sess = sagemaker.Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1") xgb = sagemaker.estimator.Estimator( container, execution-role-ARN, instance_count=1, instance_type="ml.m4.xlarge", output_path="s3://{}/{}/output".format(bucket, prefix), sagemaker_session=sess, ) ...

Añadir permisos adicionales de Amazon S3 a un rol SageMaker de ejecución

Cuando utiliza una SageMaker función con recursos de Amazon S3, como datos de entrada, la función de ejecución que especifique en la solicitud (por ejemploCreateTrainingJob) se utiliza para acceder a estos recursos.

Si asocia la política administrada por IAM, AmazonSageMakerFullAccess, a un rol de ejecución, solo concede permiso al rol para que realice determinadas acciones de Amazon S3 en buckets u objetos con SageMaker, Sagemaker, sagemaker o aws-glue en el nombre. También tiene permiso para realizar las siguientes acciones en cualquier recurso de Amazon S3:

"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"

Para conceder permisos a un rol de ejecución para acceder a uno o más buckets específicos en Amazon S3, puede asociar al rol una política similar a la siguiente. Esta política otorga a un rol de IAM permiso para realizar todas las acciones que AmazonSageMakerFullAccess permiten, pero restringen, este acceso a los buckets DOC-EXAMPLE-BUCKET1 y DOC-EXAMPLE-BUCKET2. Consulte la documentación de seguridad de la SageMaker función específica que esté utilizando para obtener más información sobre los permisos de Amazon S3 necesarios para esa función.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2" ] } ] }

Obtener un rol de ejecución

Puede utilizar la SageMaker consola o la AWS CLI para recuperar el ARN de la función de ejecución asociada a un SageMaker dominio, un perfil de usuario o una instancia de bloc de notas.

Como alternativa, los usuarios del SDK de Amazon SageMaker Python pueden recuperar el ARN del rol de ejecución adjunto a su perfil de usuario o a una instancia de notebook ejecutando el siguiente código:

import sagemaker sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
nota

La función de ejecución solo está disponible cuando se ejecuta un bloc de notas interno SageMaker. Si lo ejecutas get_execution_role en un cuaderno que no esté encendido SageMaker, es de esperar un error de «región».

Transferencia de roles

Acciones como transferir un rol de un servicio a otro son una función común en este país SageMaker. Encontrará más información sobre las acciones, los recursos y las claves de condición SageMaker en la Guía del usuario de IAM.

El rol (iam:PassRole) se transfiere al realizar estas llamadas a la API: CreateAutoMLJobCreateCompilationJobCreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplateUpdateImage, y UpdateNotebookInstance.

Adjuntas la siguiente política de confianza a la función de IAM, que otorga los permisos SageMaker principales para asumir la función y es la misma para todas las funciones de ejecución:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Los permisos que tiene que conceder al rol varían según la API a la que llame. Las siguientes secciones explican estos permisos.

nota

En lugar de gestionar los permisos mediante la creación de una política de permisos, puede utilizar la política de permisos AWS gestionadosAmazonSageMakerFullAccess. Los permisos de esta política son bastante amplios, por lo que te permiten realizar cualquier acción que desees realizar. SageMaker Para ver un listado de la política, incluida información acerca de los motivos para añadir muchos de los permisos, consulte AWS política gestionada: AmazonSageMakerFullAccess. Si prefiere crear políticas personalizadas y administrar permisos para delimitarlos solo a las acciones que es necesario realizar con el rol de ejecución, consulte los siguientes temas.

Para obtener más información acerca de los roles de IAM, consulte Roles de IAM en la guía del usuario de IAM.

CreateAutoAPI de MLJob: permisos de rol de ejecución

Para un rol de ejecución que puede pasar en una solicitud de API CreateAutoMLJob, puede asociar la siguiente política de permisos mínimos al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:DescribeEndpoint", "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint", "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

Si especifica una VPC privada para el trabajo de AutoML, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si la entrada está cifrada mediante un cifrado del lado del servidor con una clave AWS gestionada por KMS (SSE-KMS), añada los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si especifica una clave de KMS en la configuración de salida del trabajo AutoML, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si especifica una clave de KMS de volumen en la configuración de recursos del trabajo AutoML, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateDomain API: permisos de rol de ejecución

La función de ejecución para los dominios con el centro de identidad de IAM y la función de usuario/ejecución para los dominios de IAM necesitan los siguientes permisos cuando se transfiere una clave gestionada por el AWS KMS cliente como se indica KmsKeyId en la solicitud de API. CreateDomain Los permisos se aplican durante la llamada a la API CreateApp.

Para un rol de ejecución que puede pasar en una solicitud de la API CreateDomain, puede asociar la siguiente política de permiso al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:account-id:key/kms-key-id" } ] }

Como alternativa, si los permisos se especifican en una política de KMS, puede asociar la siguiente política al rol:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/ExecutionRole" ] }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

CreateImage y UpdateImage API: permisos de rol de ejecución

Para un rol de ejecución que puede pasar en una solicitud de la API CreateImage o UpdateImage, puede asociar la siguiente política de permisos al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }

CreateNotebookInstance API: Permisos de roles de ejecución

Los permisos que concede para el rol de ejecución para la llamada a la API CreateNotebookInstance dependen de lo que piense hacer con la instancia de bloc de notas. Si planea usarla para invocar SageMaker las API y pasar la misma función al llamar a las CreateModel API CreateTrainingJob y, adjunte la siguiente política de permisos a la función:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage", "ecr:CreateRepository", "cloudwatch:PutMetricData", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication", "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob", "ec2:CreateVpcEndpoint", "ec2:DescribeRouteTables", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Para endurecer los permisos, limítelos a recursos de Amazon S3 y Amazon ECR específicos, limitando "Resource": "*" como se indica a continuación:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object1", "arn:aws:s3:::outputbucket/path", "arn:aws:s3:::inputbucket/object2", "arn:aws:s3:::inputbucket/object3" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region::repository/my-repo1", "arn:aws:ecr:region::repository/my-repo2", "arn:aws:ecr:region::repository/my-repo3" ] } ] }

Si tiene previsto obtener acceso a otros recursos, como Amazon DynamoDB o Amazon Relational Database Service, agregue los permisos relevantes a esta política.

En la política anterior, examine la política de la siguiente forma:

  • Examine el permiso s3:ListBucket al bucket determinado que especifica como InputDataConfig.DataSource.S3DataSource.S3Uri en una solicitud CreateTrainingJob.

  • Examine los permisos s3:GetObject , s3:PutObject y s3:DeleteObject de la siguiente forma:

    • Examine los siguientes valores que especifica en una solicitud CreateTrainingJob:

      InputDataConfig.DataSource.S3DataSource.S3Uri

      OutputDataConfig.S3OutputPath

    • Examine los siguientes valores que especifica en una solicitud CreateModel:

      PrimaryContainer.ModelDataUrl

      SuplementalContainers.ModelDataUrl

  • Examine los permisos ecr de la siguiente forma:

    • Examine el valor AlgorithmSpecification.TrainingImage que especifica en una solicitud CreateTrainingJob.

    • Examine el valor PrimaryContainer.Image que especifica en una solicitud CreateModel:

Las acciones cloudwatch y logs son aplicables a los recursos "*". Para obtener más información, consulta CloudWatch Recursos y operaciones en la Guía del CloudWatch usuario de Amazon.

CreateHyperParameterTuningJob API: permisos de funciones de ejecución

Para un rol de ejecución que puede pasar en una solicitud de la API CreateHyperParameterTuningJob, puede asociar la siguiente política de permisos al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

En lugar de "Resource": "*" especificarlos, puede limitar estos permisos a recursos específicos de Amazon S3, Amazon ECR y Amazon CloudWatch Logs:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs*" } ] }

Si el contenedor de entrenamiento asociado al trabajo de ajuste de hiperparámetros tiene que acceder a otros orígenes de datos, como los recursos de DynamoDB o Amazon RDS, agregue los permisos pertinentes a esta política.

En la política anterior, examine la política de la siguiente forma:

  • Examine el permiso s3:ListBucket al bucket determinado que especifica como InputDataConfig.DataSource.S3DataSource.S3Uri en una solicitud CreateTrainingJob.

  • Examine los permisos s3:GetObject y s3:PutObject de los siguientes objetos que especifica en la configuración de datos de entrada y salida en una solicitud CreateHyperParameterTuningJob:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Delimite los permisos de Amazon ECR a la ruta de registro (AlgorithmSpecification.TrainingImage) que especifique en una solicitud CreateHyperParameterTuningJob.

  • Limite CloudWatch los permisos de Amazon Logs a registrar un grupo de trabajos de SageMaker formación.

Las acciones cloudwatch son aplicables a los recursos “*”. Para obtener más información, consulta CloudWatch Recursos y operaciones en la Guía del CloudWatch usuario de Amazon.

Si especifica una VPC privada para el trabajo de ajuste de hiperparámetros, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si la entrada está cifrada mediante un cifrado del lado del servidor con una clave AWS gestionada por KMS (SSE-KMS), añada los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si especifica una clave de KMS en la configuración de salida del trabajo de ajuste de hiperparámetros, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si especifica una clave de KMS de volumen en la configuración de recursos del trabajo de ajuste de hiperparámetros, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateProcessingJob API: permisos de rol de ejecución

Para un rol de ejecución que puede pasar en una solicitud de la API CreateProcessingJob, puede asociar la siguiente política de permisos al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

En lugar de especificar "Resource": "*", podría delimitar estos permisos a recursos de Amazon S3 y Amazon ECR específicos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" } ] }

Si CreateProcessingJob.AppSpecification.ImageUri tiene que tener acceso a otros orígenes de datos, como recursos de Amazon DynamoDB o Amazon RDS, agregue los permisos pertinentes a esta política.

En la política anterior, examine la política de la siguiente forma:

  • Examine el permiso s3:ListBucket al bucket determinado que especifica como ProcessingInputs en una solicitud CreateProcessingJob.

  • Examine los permisos s3:GetObject y s3:PutObject a los objetos que se descargarán o cargarán en ProcessingInputs y ProcessingOutputConfig en una solicitud CreateProcessingJob.

  • Delimite los permisos de Amazon ECR a la ruta de registro (AppSpecification.ImageUri) que especifique en una solicitud CreateProcessingJob.

Las acciones cloudwatch y logs son aplicables a los recursos "*". Para obtener más información, consulta CloudWatch Recursos y operaciones en la Guía del CloudWatch usuario de Amazon.

Si especifica una VPC privada para el trabajo de procesamiento, agregue los siguientes permisos. No incluya condiciones ni filtros de recursos a la política. De lo contrario, las comprobaciones de validación que se realicen durante la creación del trabajo de procesamiento darán por resultado un error.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si la entrada está cifrada mediante un cifrado del lado del servidor con una clave AWS gestionada por KMS (SSE-KMS), añada los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si especifica una clave de KMS en la configuración de salida del trabajo de procesamiento, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si especifica una clave de KMS de volumen en la configuración de recursos del trabajo de procesamiento, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateTrainingJob API: permisos de rol de ejecución

Para un rol de ejecución que puede pasar en una solicitud de la API CreateTrainingJob, puede asociar la siguiente política de permisos al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

En lugar de especificar "Resource": "*", podría delimitar estos permisos a recursos de Amazon S3 y Amazon ECR específicos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" } ] }

Si CreateTrainingJob.AlgorithSpecifications.TrainingImage tiene que tener acceso a otros orígenes de datos, como recursos de Amazon DynamoDB o Amazon RDS, agregue los permisos pertinentes a esta política.

En la política anterior, examine la política de la siguiente forma:

  • Examine el permiso s3:ListBucket al bucket determinado que especifica como InputDataConfig.DataSource.S3DataSource.S3Uri en una solicitud CreateTrainingJob.

  • Examine los permisos s3:GetObject y s3:PutObject de los siguientes objetos que especifica en la configuración de datos de entrada y salida en una solicitud CreateTrainingJob:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Delimite los permisos de Amazon ECR a la ruta de registro (AlgorithmSpecification.TrainingImage) que especifique en una solicitud CreateTrainingJob.

Las acciones cloudwatch y logs son aplicables a los recursos "*". Para obtener más información, consulta CloudWatch Recursos y operaciones en la Guía del CloudWatch usuario de Amazon.

Si especifica una VPC privada para el trabajo de capacitación, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

Si la entrada está cifrada mediante un cifrado del lado del servidor con una clave AWS gestionada por KMS (SSE-KMS), añada los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

Si especifica una clave de KMS en la configuración de salida del trabajo de capacitación, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

Si especifica una clave de KMS de volumen en la configuración de recursos del trabajo de capacitación, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateModel API: permisos de rol de ejecución

Para un rol de ejecución que puede pasar en una solicitud de la API CreateModel, puede asociar la siguiente política de permisos al rol:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

En lugar de especificar "Resource": "*", puede delimitar estos permisos a recursos específicos de Amazon S3 y Amazon ECR:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region::repository/my-repo", "arn:aws:ecr:region::repository/my-repo" ] } ] }

Si CreateModel.PrimaryContainer.Image tiene que obtener acceso a otros orígenes de datos, como recursos de Amazon DynamoDB o Amazon RDS, agregue permisos relevantes a esta política.

En la política anterior, examine la política de la siguiente forma:

  • Examine los permisos de S3 en objetos que especifique en PrimaryContainer.ModelDataUrl en una solicitud CreateModel.

  • Delimite los permisos de Amazon ECR a una ruta de registro determinada que especifica como PrimaryContainer.Image y SecondaryContainer.Image en una solicitud CreateModel.

Las acciones cloudwatch y logs son aplicables a los recursos "*". Para obtener más información, consulta CloudWatch Recursos y operaciones en la Guía del CloudWatch usuario de Amazon.

nota

Si planea utilizar la función de barreras de SageMaker despliegue para el despliegue de modelos en producción, asegúrese de que su función de ejecución tenga permiso para realizar la cloudwatch:DescribeAlarms acción en sus alarmas de reversión automática.

Si especifica una VPC privada para el modelo, agregue los siguientes permisos:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }