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 sobre IAM las funciones, consulte IAMfunciones.

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 IAM AmazonSageMakerFullAccess gestionada adjunta. 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 IAM gestionadaAmazonSageMakerFullAccess, utilizada en el siguiente procedimiento, solo concede permiso al rol de ejecución para realizar determinadas acciones de Amazon S3 en buckets u objetos conSageMaker, Sagemakersagemaker, 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 IAM consola 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 IAM gestionadaAmazonSageMakerFullAccess, se adjunta automáticamente a la función. Para ver los permisos incluidos en esta política, elija el signo más (+) situado junto al nombre de la política. Elija Next (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 Funciones de la IAM consola, busca la función que acabas 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, toma nota delARN.

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ón(Opcional) Configure 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 transferir una función ARN de ejecución a su API llamada. Por ejemplo, con Amazon SageMaker Python SDK, puede transferir su función ARN de ejecución a un estimador. En el siguiente ejemplo de código, creamos un estimador utilizando el contenedor de XGBoost algoritmos y pasamos la función ARN 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 adjuntas la política IAM gestionadaAmazonSageMakerFullAccess, a una función de ejecución, esa función tiene permiso para realizar determinadas acciones de Amazon S3 en buckets u objetos conSageMaker, Sagemakersagemaker, 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 IAM rol un permiso para realizar todas las acciones que AmazonSageMakerFullAccess permiten, pero restringen, este acceso a los buckets amzn-s3-demo-bucket1 y amzn-s3-demo-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:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }

Consiga su función de ejecución

Puede utilizar la SageMaker consola, Amazon SageMaker Python SDK o el AWS CLIpara recuperar el nombre ARN y el nombre del rol de ejecución adjunto a un SageMaker dominio, espacio o perfil de usuario.

Obtenga la función de ejecución de dominio

A continuación, se proporcionan instrucciones para encontrar la función de ejecución de tu dominio.

Encuentra el rol de ejecución asociado a tu dominio
  1. Abre la SageMaker consola, https://console.aws.amazon.com/sagemaker/

  2. En el panel de navegación izquierdo, selecciona Dominios en Configuraciones de administración.

  3. Elige el enlace correspondiente a tu dominio.

  4. Selecciona la pestaña de configuración del dominio.

  5. En la sección Configuración general, la función de ejecución ARN aparece en la sección Función de ejecución.

    El nombre de la función de ejecución es posterior al último nombre / de la función de ejecuciónARN.

Obtenga el rol de ejecución de Space

A continuación, se proporcionan instrucciones sobre cómo encontrar la función de ejecución de su espacio.

Encuentra el rol de ejecución asociado a tu espacio
  1. Abre la SageMaker consola, https://console.aws.amazon.com/sagemaker/

  2. En el panel de navegación izquierdo, selecciona Dominios en Configuraciones de administración.

  3. Elige el enlace correspondiente a tu dominio.

  4. Selecciona la pestaña Gestión del espacio.

  5. En la sección Detalles, la función de ejecución ARN aparece en la sección Función de ejecución.

    El nombre de la función de ejecución es posterior al último nombre / de la función de ejecuciónARN.

nota

El siguiente código está diseñado para ejecutarse en un SageMaker entorno, como cualquiera de los IDEs de Amazon SageMaker Studio. Recibirás un error si ejecutas get_execution_role fuera de un SageMaker entorno.

El siguiente SDK comando de get_execution_roleAmazon SageMaker Python recupera la función ARN de ejecución adjunta al espacio.

from sagemaker import get_execution_role role = get_execution_role() print(role)

El nombre de la función de ejecución es posterior al último nombre de / la función ARN de ejecución.

Obtenga el rol de ejecución del usuario

A continuación, se proporcionan instrucciones para encontrar el rol de ejecución de un usuario.

Busque el rol de ejecución asociado a un usuario
  1. Abre la SageMaker consola, https://console.aws.amazon.com/sagemaker/

  2. En el panel de navegación izquierdo, selecciona Dominios en Configuraciones de administración.

  3. Elige el enlace correspondiente a tu dominio.

  4. Seleccione la pestaña Perfiles de usuario.

  5. Elija el enlace correspondiente a su usuario.

  6. En la sección Detalles, la función de ejecución ARN aparece en la sección Función de ejecución.

    El nombre de la función de ejecución es posterior al último nombre / de la función de ejecuciónARN.

nota

Para usar los siguientes ejemplos, debe tener el AWS Command Line Interface (AWS CLI) instalado y configurado. Para obtener más información, consulte Cómo empezar a usarlo AWS CLI en la Guía del AWS Command Line Interface usuario de la versión 2.

El siguiente get-caller-identity AWS CLI comando muestra información sobre la IAM identidad utilizada para autenticar la solicitud. La persona que llama es un IAM usuario.

aws sts get-caller-identity

El nombre de la función de ejecución es posterior al último nombre de / la función ARN de ejecución.

Cambie su función de ejecución

Una función de ejecución es una IAM función que asume una SageMaker identidad (como un SageMaker usuario, un espacio o un dominio). Al cambiar el IAM rol, se modifican los permisos de todas las identidades que asumen ese rol.

Al cambiar un rol de ejecución, también cambiará el rol de ejecución del espacio correspondiente. Los efectos del cambio pueden tardar algún tiempo en propagarse.

  • Al cambiar la función de ejecución de un usuario, los espacios privados creados por ese usuario asumirán la función de ejecución modificada.

  • Al cambiar la función de ejecución predeterminada de un espacio, los espacios compartidos del dominio asumirán la función de ejecución modificada.

Para obtener más información sobre las funciones y los espacios de ejecución, consulteDescripción de los permisos del espacio de dominio y las funciones de ejecución.

Puede cambiar la función de ejecución de una identidad por una IAM función diferente mediante una de las siguientes instrucciones.

Si, por el contrario, desea modificar un rol que asume una identidad, consulteModifique los permisos del rol de ejecución.

Cambie la función de ejecución predeterminada del dominio

A continuación, se proporcionan instrucciones sobre cómo cambiar la función de ejecución predeterminada del dominio.

Cambie la función de ejecución predeterminada asociada a su dominio
  1. Abre la SageMaker consola, https://console.aws.amazon.com/sagemaker/

  2. En el panel de navegación izquierdo, selecciona Dominios en Configuraciones de administración.

  3. Elige el enlace correspondiente a tu dominio.

  4. Selecciona la pestaña de configuración del dominio.

  5. En la sección Configuración general, selecciona Editar.

  6. En la sección Permisos, en Función de ejecución predeterminada, expanda la lista desplegable.

  7. En la lista desplegable, puede elegir un rol existente, introducir un IAM rol ARN personalizado o crear uno nuevo.

    Si desea crear un nuevo rol, puede elegir Crear rol mediante la opción del asistente de creación de roles.

  8. Elija Siguiente en los siguientes pasos y elija Enviar en el último paso.

Cambie el rol de ejecución predeterminado del espacio

A continuación, se proporcionan instrucciones sobre cómo cambiar la función de ejecución predeterminada del espacio. Al cambiar esta función de ejecución, se cambiará la función que asumen todos los espacios compartidos del dominio.

Cambie la función de ejecución por defecto del espacio para cuando cree un espacio nuevo
  1. Abre la SageMaker consola, https://console.aws.amazon.com/sagemaker/

  2. En el panel de navegación izquierdo, selecciona Dominios en Configuraciones de administración.

  3. Elige el enlace correspondiente a tu dominio.

  4. Selecciona la pestaña de configuración del dominio.

  5. En la sección Configuración general, selecciona Editar.

  6. En la sección Permisos, en la función de ejecución predeterminada de Space, expanda la lista desplegable.

  7. En la lista desplegable, puede elegir un rol existente, introducir un IAM rol ARN personalizado o crear uno nuevo.

    Si desea crear un nuevo rol, puede elegir Crear rol mediante la opción del asistente de creación de roles.

  8. Elija Siguiente en los siguientes pasos y elija Enviar en el último paso.

Cambie la función de ejecución del perfil de usuario

A continuación, se proporcionan instrucciones sobre cómo cambiar el rol de ejecución de un usuario. Al cambiar este rol de ejecución, se cambiará el rol que asumen todos los espacios privados creados por este usuario.

Cambie la función de ejecución asociada a un usuario
  1. Abre la SageMaker consola, https://console.aws.amazon.com/sagemaker/

  2. En el panel de navegación izquierdo, selecciona Dominios en Configuraciones de administración.

  3. Elige el enlace correspondiente a tu dominio.

  4. Seleccione la pestaña Perfiles de usuario.

  5. Elija el enlace correspondiente al nombre del perfil de usuario.

  6. Elija Editar.

  7. En la lista desplegable, puede elegir un rol existente, introducir un IAM rol ARN personalizado o crear uno nuevo.

    Si desea crear un nuevo rol, puede elegir Crear rol mediante la opción del asistente de creación de roles.

  8. Elija Siguiente en los siguientes pasos y elija Enviar en el último paso.

Modifique los permisos del rol de ejecución

Puede modificar los permisos existentes para la función de ejecución de una identidad (como un SageMaker usuario, un espacio o un dominio). Para ello, busca la IAM función adecuada que asume la identidad y, a continuación, modifica esa IAM función. A continuación, se proporcionan instrucciones para lograrlo a través de la consola.

Al modificar una función de ejecución, la función de ejecución del espacio correspondiente también cambiará. Es posible que los efectos del cambio no sean inmediatos.

  • Al modificar la función de ejecución de un usuario, los espacios privados creados por ese usuario asumirán la función de ejecución modificada.

  • Al modificar la función de ejecución predeterminada de un espacio, los espacios compartidos del dominio asumirán la función de ejecución modificada.

Para obtener más información sobre las funciones y los espacios de ejecución, consulteDescripción de los permisos del espacio de dominio y las funciones de ejecución.

Si, por el contrario, desea cambiar el rol que asume una identidad, consulteCambie su función de ejecución.

Para modificar los permisos de sus funciones de ejecución
  1. Primero obtenga el nombre de la identidad que desea modificar.

  2. Para modificar el rol que asume una identidad, consulte Modificación de un rol en la Guía del AWS Identity and Access Management usuario.

    Para obtener más información e instrucciones sobre cómo añadir permisos a IAM las identidades, consulte Añadir o quitar permisos de identidad en la Guía del AWS Identity and Access Management usuario.

Transferencia de roles

Acciones como transferir un rol de un servicio a otro son una función habitual en el sistema SageMaker. Encontrará más información sobre las acciones, los recursos y las claves de condición SageMaker en la Referencia de autorización de servicios.

El rol (iam:PassRole) se transfiere al realizar estas API llamadas: CreateAutoMLJobCreateCompilationJob, CreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringScheduleCreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplate, UpdateImage, y UpdateNotebookInstance.

Adjuntas la siguiente política de confianza al IAM rol, que otorga los permisos SageMaker principales para asumir el rol y es la misma para todos los roles de ejecución:

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

Los permisos que debes conceder al rol varían en función de la persona a la API que llames. Las siguientes secciones explican estos permisos.

nota

En lugar de gestionar los permisos mediante la elaboración de una política de permisos, puedes usar la política de AmazonSageMakerFullAccess permisos AWS gestionados. 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 sobre IAM las funciones, consulte IAMFunciones en la referencia de autorización de servicios.

CreateAutoMLJoby CreateAuto MLJobV2API: Permisos de roles de ejecución

En el caso de un rol de ejecución que pueda transferir CreateAutoMLJob o CreateAutoMLJobV2 API solicitar, puede adjuntar 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 un permiso privado VPC para su trabajo de AutoML, añada 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 KMS administrada (SSE-KMS), añada los siguientes permisos:

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

Si especifica una KMS clave en la configuración de salida de su trabajo de AutoML, añada los siguientes permisos:

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

Si especifica una KMS clave de volumen en la configuración de recursos de su trabajo de AutoML, añada los siguientes permisos:

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

CreateDomain API: Permisos del rol de ejecución

El rol de ejecución para los dominios con IAM Identity Center y el rol de usuario/ejecución para IAM los dominios necesitan los siguientes permisos cuando se transfiere una clave administrada por el AWS KMS cliente como la que figura KmsKeyId en la CreateDomain API solicitud. Los permisos se aplican durante la CreateApp API llamada.

En el caso de una función de ejecución que pueda transferir en la CreateDomain API solicitud, puede adjuntar la siguiente política de permisos a la función:

{ "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 KMS política, puedes adjuntar 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 UpdateImageAPIs: Permisos del rol de ejecución

En el caso de un rol de ejecución que pueda transferir CreateImage o UpdateImage API solicitar, puede adjuntar la siguiente política de permisos al rol:

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

CreateNotebookInstance API: Permisos del rol de ejecución

Los permisos que concedas al rol de ejecución para llamarlo CreateNotebookInstance API dependen de lo que planees hacer con la instancia del bloc de notas. Si planeas usarla para invocar SageMaker APIs y transferir la misma función al llamar a la función CreateTrainingJob y CreateModelAPIs, adjunta 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 restringir los permisos, limítelos a ECR recursos específicos de Amazon S3 y Amazon "Resource": "*" restringiéndolos de la siguiente manera:

{ "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 rol de ejecución

En el caso de un rol de ejecución al que puedas transferir una CreateHyperParameterTuningJob API solicitud, puedes adjuntar 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 especificarlos"Resource": "*", puede limitar estos permisos a recursos específicos de Amazon S3ECR, Amazon 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 necesita acceder a otras fuentes de datos, como DynamoDB o los recursos de RDS Amazon, añada 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

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

  • 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 un permiso privado VPC para su trabajo de ajuste de hiperparámetros, añada 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 KMS administrada (SSE-KMS), añada los siguientes permisos:

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

Si especifica una KMS clave en la configuración de salida de su trabajo de ajuste de hiperparámetros, añada los siguientes permisos:

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

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

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

CreateProcessingJob API: Permisos del rol de ejecución

En el caso de un rol de ejecución al que puedas transferir una CreateProcessingJob API solicitud, puedes adjuntar 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 ECR recursos específicos de Amazon S3 y Amazon:

{ "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 necesita acceder a otras fuentes de datos, como DynamoDB o los recursos de RDS Amazon, añada 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.

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

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 un permiso privado VPC para su trabajo de procesamiento, añada 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 KMS administrada (SSE-KMS), añada los siguientes permisos:

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

Si especifica una KMS clave en la configuración de salida de su trabajo de procesamiento, añada los siguientes permisos:

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

Si especifica una KMS clave de volumen en la configuración de recursos de su trabajo de procesamiento, añada los siguientes permisos:

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

CreateTrainingJob API: Permisos del rol de ejecución

En el caso de un rol de ejecución al que puedas transferir una CreateTrainingJob API solicitud, puedes adjuntar 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 ECR recursos específicos de Amazon S3 y Amazon:

{ "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 necesita acceder a otras fuentes de datos, como DynamoDB o los recursos de RDS Amazon, añada 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

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

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 especificas uno privado VPC para tu trabajo de formación, añade 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 KMS administrada (SSE-KMS), añada los siguientes permisos:

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

Si especificas una KMS clave en la configuración de salida de tu trabajo de formación, añade los siguientes permisos:

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

Si especificas una KMS clave de volumen en la configuración de recursos de tu trabajo de formación, añade los siguientes permisos:

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

CreateModel API: Permisos del rol de ejecución

En el caso de un rol de ejecución al que puedas transferir una CreateModel API solicitud, puedes adjuntar 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 "Resource": "*" especificarlos, puede limitar estos permisos a ECR recursos específicos de Amazon S3 y Amazon:

{ "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 necesita acceder a otras fuentes de datos, como Amazon DynamoDB o los recursos de RDS Amazon, añada los permisos pertinentes 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.

  • Limita ECR los permisos de Amazon a una ruta de registro específica que especifiques como PrimaryContainer.Image y SecondaryContainer.Image en una CreateModel solicitud.

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 un permiso privado VPC para su modelo, añada los siguientes permisos:

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