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 obtener información sobre cómo crear un SageMaker dominio, consulteGuía para configurar Amazon SageMaker.
-
Para obtener información sobre cómo crear una instancia de cuaderno, consulte Paso 1: Crear una instancia de Amazon SageMaker Notebook para el tutorial.
Para crear un nuevo rol de ejecución desde la SageMaker consola
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Elija Roles (Roles) y, después, seleccioneCreate Role (Crear rol).
-
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.
-
Elija SageMaker — Ejecución y, a continuación, elija Siguiente.
-
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. -
Ingrese un Nombre del rol y una Descripción.
-
De forma opcional, puede agregar permisos y etiquetas adicionales al rol.
-
Elija Crear rol.
-
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.
-
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.
-
Para obtener información sobre cómo asociar un rol de ejecución a un SageMaker dominio existente, consulte. Edite la configuración del dominio
-
Para obtener información sobre cómo asociar un rol de ejecución a un perfil de usuario existente, consulte Adición y eliminación de perfiles de usuario.
-
Para obtener información sobre cómo asociar un rol de ejecución a una instancia de cuaderno existente, consulte Actualización de una instancia de cuaderno..
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
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.
-
Para encontrar el ARN de la función de ejecución de IAM asociada a un SageMaker dominio, consulte. Ver y editar dominios
-
Para buscar el ARN del rol de ejecución de IAM asociado a un perfil de usuario, consulte Visualización de los perfiles de usuario y los detalles del perfil de usuario.
-
Para buscar el ARN del rol de ejecución de IAM asociado a una instancia de cuaderno:
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación de la izquierda, elija Cuaderno y, a continuación, Instancias de cuaderno.
-
De la lista de cuadernos, seleccione aquel que desee ver.
-
El ARN se encuentra en la sección Permisos y cifrado.
Como alternativa, los usuarios del SDK de Amazon SageMaker Python
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: CreateAutoMLJob
CreateCompilationJob
CreateDomain
, CreateFeatureGroup
, CreateFlowDefiniton
, CreateHyperParameterTuningJob
, CreateImage
, CreateLabelingJob
, CreateModel
, CreateMonitoringSchedule
, CreateNotebookInstance
, CreateProcessingJob
, CreateTrainingJob
, CreateUserProfile
, RenderUiTemplate
UpdateImage
, 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.
importante
Si tiene problemas, consulte Solución de problemas de Amazon SageMaker Identity and Access.
Para obtener más información acerca de los roles de IAM, consulte Roles de IAM en la guía del usuario de IAM.
Temas
- CreateAutoAPI de MLJob: permisos de rol de ejecución
- CreateDomain API: permisos de rol de ejecución
- CreateImage y UpdateImage API: permisos de rol de ejecución
- CreateNotebookInstance API: Permisos de roles de ejecución
- CreateHyperParameterTuningJob API: permisos de funciones de ejecución
- CreateProcessingJob API: permisos de rol de ejecución
- CreateTrainingJob API: permisos de rol de ejecución
- CreateModel API: permisos de rol de ejecución
- SageMaker funciones de capacidades geoespaciales
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 comoInputDataConfig.DataSource.S3DataSource.S3Uri
en una solicitudCreateTrainingJob
. -
Examine los permisos
s3:GetObject
,s3:PutObject
ys3: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 solicitudCreateTrainingJob
. -
Examine el valor
PrimaryContainer.Image
que especifica en una solicitudCreateModel
:
-
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 comoInputDataConfig.DataSource.S3DataSource.S3Uri
en una solicitudCreateTrainingJob
. -
Examine los permisos
s3:GetObject
ys3:PutObject
de los siguientes objetos que especifica en la configuración de datos de entrada y salida en una solicitudCreateHyperParameterTuningJob
:InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Delimite los permisos de Amazon ECR a la ruta de registro (
AlgorithmSpecification.TrainingImage
) que especifique en una solicitudCreateHyperParameterTuningJob
. -
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 comoProcessingInputs
en una solicitudCreateProcessingJob
. -
Examine los permisos
s3:GetObject
ys3:PutObject
a los objetos que se descargarán o cargarán enProcessingInputs
yProcessingOutputConfig
en una solicitudCreateProcessingJob
. -
Delimite los permisos de Amazon ECR a la ruta de registro (
AppSpecification.ImageUri
) que especifique en una solicitudCreateProcessingJob
.
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 comoInputDataConfig.DataSource.S3DataSource.S3Uri
en una solicitudCreateTrainingJob
. -
Examine los permisos
s3:GetObject
ys3:PutObject
de los siguientes objetos que especifica en la configuración de datos de entrada y salida en una solicitudCreateTrainingJob
:InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Delimite los permisos de Amazon ECR a la ruta de registro (
AlgorithmSpecification.TrainingImage
) que especifique en una solicitudCreateTrainingJob
.
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 solicitudCreateModel
. -
Delimite los permisos de Amazon ECR a una ruta de registro determinada que especifica como
PrimaryContainer.Image
ySecondaryContainer.Image
en una solicitudCreateModel
.
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" ] }