Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
SageMaker Rôles
Amazon SageMaker effectue des opérations en votre nom en utilisant d'autres AWS services. Vous devez accorder SageMaker des autorisations pour utiliser ces services et les ressources sur lesquelles ils agissent. Vous accordez SageMaker ces autorisations à l'aide d'un rôle d'exécution AWS Identity and Access Management (IAM). Pour plus d'informations sur les rôles IAM, consultez Rôles IAM.
Pour créer et utiliser un rôle d'exécution, vous pouvez utiliser les procédures suivantes.
Créer un rôle d'exécution
Utilisez la procédure suivante pour créer un rôle d'exécution avec la politique gérée IAM, AmazonSageMakerFullAccess
, attachée. Si votre cas d'utilisation nécessite des autorisations plus détaillées, utilisez d'autres sections de cette page pour créer un rôle d'exécution qui répond aux besoins de votre entreprise. Vous pouvez créer un rôle d'exécution à l'aide de la SageMaker console ou duAWS CLI.
Important
La politique gérée IAM, AmazonSageMakerFullAccess
, utilisée dans la procédure suivante, n'accorde que l'autorisation du rôle d'exécution pour effectuer certaines actions Amazon S3 sur des compartiments ou des objets avec SageMaker
, Sagemaker
, sagemaker
, ou aws-glue
dans le nom. Pour savoir comment ajouter une politique supplémentaire à un rôle d'exécution pour lui accorder l'accès à d'autres compartiments et objets Amazon S3, veuillez consulter Ajouter des autorisations Amazon S3 supplémentaires à un rôle SageMaker d'exécution.
Note
Vous pouvez créer un rôle d'exécution directement lorsque vous créez un SageMaker domaine ou une instance de bloc-notes.
-
Pour plus d'informations sur la création d'un SageMaker domaine, consultezIntégration personnalisée à Amazon SageMaker Domain à l'aide d'IAM Identity Center.
-
Pour en savoir plus sur la manière de créer une instance de bloc-notes, consultez Étape 1 : créer une instance Amazon SageMaker Notebook.
Pour créer un nouveau rôle d'exécution depuis la SageMaker console
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Choisissez Roles (Rôles), puis Create role (Créer un rôle).
-
Conservez le AWSservice comme type d'entité de confiance, puis utilisez la flèche vers le bas pour le rechercher SageMakerdans Cas d'utilisation pour d'autres AWS services.
-
Choisissez SageMaker — Exécution, puis cliquez sur Suivant.
-
La politique gérée IAM,
AmazonSageMakerFullAccess
, est automatiquement attachée au rôle. Pour afficher les autorisations incluses dans cette politique, choisissez le signe plus (+) à côté du nom de la politique. Choisissez Suivant. -
Entrez un nom de rôle et une description.
-
(Facultatif) Ajoutez des autorisations et des balises supplémentaires au rôle.
-
Sélectionnez Créer un rôle.
-
Dans la section Rôles de la console IAM, recherchez le rôle que vous venez de créer. Si nécessaire, utilisez la zone de texte pour rechercher le rôle à l'aide du nom de rôle.
-
Sur la page de résumé, prenez note de l'ARN.
Pour créer un nouveau rôle d'exécution depuis AWS CLI
Avant de créer un rôle d'exécution à l'aide d'AWS CLI, assurez-vous de le mettre à jour et de le configurer en suivant les instructions figurant dans Conditions préalables requises AWS CLI, puis poursuivez avec les instructions fournies dans Intégrer à partir de l'AWS CLI.
Une fois que vous avez créé un rôle d'exécution, vous pouvez l'associer à un SageMaker domaine, à un profil utilisateur ou à une instance de bloc-notes Jupyter.
-
Pour savoir comment associer un rôle d'exécution à un SageMaker domaine existant, consultezModifier les paramètres du domaine.
-
Pour découvrir comment associer un rôle d'exécution à un profil utilisateur existant, consultez Ajout et suppression de profils utilisateur.
-
Pour découvrir comment associer un rôle d'exécution à une instance de bloc-notes existante, consultez Meise à jour d'une instance de bloc-notes.
Vous pouvez également transmettre l'ARN d'un rôle d'exécution à votre appel d'API. Par exemple, à l'aide du SDK 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, ) ...
Ajouter des autorisations Amazon S3 supplémentaires à un rôle SageMaker d'exécution
Lorsque vous utilisez une SageMaker fonctionnalité avec des ressources dans Amazon S3, telles que des données d'entrée, le rôle d'exécution que vous spécifiez dans votre demande (par exempleCreateTrainingJob
) est utilisé pour accéder à ces ressources.
Si vous attachez la politique gérée IAM, AmazonSageMakerFullAccess
, à un rôle d'exécution, ce rôle a l'autorisation d'effectuer certaines actions Amazon S3 sur des compartiments ou des objets avec SageMaker
, Sagemaker
, sagemaker
, ou aws-glue
dans le nom. Elle a également l'autorisation d'effectuer les opérations suivantes sur n'importe quelle ressource Amazon S3 :
"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"
Pour accorder à un rôle d'exécution des autorisations pour accéder à un ou plusieurs compartiments spécifiques dans Amazon S3, vous pouvez attacher une politique similaire à la suivante au rôle. Cette politique accorde une autorisation de rôle IAM pour effectuer toutes les actions que AmazonSageMakerFullAccess
autorise, mais restreint cet accès aux compartiments DOC-EXAMPLE-BUCKET1
et DOC-EXAMPLE-BUCKET2
. Reportez-vous à la documentation de sécurité de la SageMaker fonctionnalité spécifique que vous utilisez pour en savoir plus sur les autorisations Amazon S3 requises pour cette fonctionnalité.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::
", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
/*" ] }, { "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-BUCKET2
/*", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET2
Obtention du rôle d'exécution
Vous pouvez utiliser la SageMaker console ou le AWS CLI pour récupérer l'ARN du rôle d'exécution attaché à un SageMaker domaine, à un profil utilisateur ou à une instance de bloc-notes.
-
Pour trouver l'ARN du rôle d'exécution IAM associé à un SageMaker domaine, consultezAffichage et modification de domaines.
-
Pour rechercher l'ARN du rôle d'exécution IAM attaché à un profil utilisateur, consultez Afficher les profils utilisateur et les détails des profils utilisateur.
-
Pour rechercher l'ARN du rôle d'exécution IAM attaché à une instance de bloc-notes :
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation de gauche, choisissez Bloc-notes puis Instances de blocs-notes.
-
Dans la liste des blocs-notes, sélectionnez le bloc-notes que vous souhaitez consulter.
-
L'ARN se trouve dans la section Autorisations et chiffrement.
Les utilisateurs du SDK Amazon SageMaker Python
import sagemaker sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
Note
Le rôle d'exécution n'est disponible que lors de l'exécution d'un bloc-notes à l'intérieur SageMaker. Si vous exécutez get_execution_role
dans un bloc-notes qui n'est pas allumé SageMaker, attendez-vous à une erreur « régionale ».
Transmission de rôles
Des actions telles que le transfert d'un rôle entre les services sont une fonction courante au sein de celui-ci SageMaker. Vous trouverez plus de détails sur les actions, les ressources et les clés de condition SageMaker dans le guide de l'utilisateur IAM.
Vous transmettez le rôle (iam:PassRole
) lorsque vous effectuez les appels d'API : CreateAutoMLJob
, CreateCompilationJob
, CreateDomain
, CreateFeatureGroup
, CreateFlowDefiniton
, CreateHyperParameterTuningJob
, CreateImage
, CreateLabelingJob
, CreateModel
, CreateMonitoringSchedule
, CreateNotebookInstance
, CreateProcessingJob
, CreateTrainingJob
, CreateUserProfile
, RenderUiTemplate
et UpdateImage
.
Vous attachez la politique de confiance suivante au rôle IAM, qui accorde les autorisations SageMaker principales pour assumer le rôle, et qui est la même pour tous les rôles d'exécution :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Les autorisations que vous devez accorder au rôle varient en fonction de l'API que vous appelez. Les sections suivantes présentent ces autorisations.
Note
Au lieu de gérer les autorisations en créant une politique d'autorisation, vous pouvez utiliser la politique d'autorisation AmazonSageMakerFullAccess
gérée par AWS. Les autorisations de cette stratégie, que vous utilisez pour effectuer des actions dans SageMaker, sont relativement vastes. Pour obtenir la liste des autorisations de la politique, y compris des informations sur les raisons de l'ajout d'un grand nombre de ces autorisations, consultez AWSpolitique gérée : AmazonSageMakerFullAccess. Si vous préférez créer des politiques personnalisées et gérer les autorisations de sorte à les limiter aux actions que vous devez effectuer avec le rôle d'exécution uniquement, consultez les rubriques suivantes.
Important
Si vous rencontrez des problèmes, consultez Résolution des problèmes liés à Amazon SageMaker Identity and Access.
Pour plus d’informations sur les rôles IAM, consultez Rôles IAM dans le Guide de l’utilisateur IAM.
Rubriques
- CreateAutoAPI MLJob : autorisations relatives aux rôles d'exécution
- CreateDomain API : autorisations relatives aux rôles d'exécution
- CreateImage et UpdateImage API : autorisations relatives aux rôles d'exécution
- CreateNotebookInstance API : autorisations relatives aux rôles d'exécution
- CreateHyperParameterTuningJob API : autorisations relatives aux rôles d'exécution
- CreateProcessingJob API : autorisations relatives aux rôles d'exécution
- CreateTrainingJob API : autorisations relatives aux rôles d'exécution
- CreateModel API : autorisations relatives aux rôles d'exécution
- SageMaker rôles relatifs aux capacités géospatiales
CreateAutoAPI MLJob : autorisations relatives aux rôles d'exécution
Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateAutoMLJob
, vous pouvez attacher la politique d'autorisation minimum suivante au rôle :
{ "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 vous spécifiez un VPC privé pour votre tâche AutoML, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Si les entrées sont chiffrées à l'aide du chiffrement côté serveur avec une clé gérée par AWS KMS (SSE-KMS), ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche AutoML, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche AutoML, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateDomain API : autorisations relatives aux rôles d'exécution
Le rôle d'exécution pour les domaines avec IAM Identity Center et le rôle d'utilisateur/exécution pour les domaines IAM ont besoin des autorisations suivantes lorsque vous transmettez une clé gérée par le client AWS KMS comme KmsKeyId
dans la demande d'API CreateDomain
. Les autorisations sont appliquées au cours de l'appel d'API CreateApp
.
Pour un rôle d'exécution que vous pouvez transmettre dans la demande d'API CreateDomain
, vous pouvez attacher la politique d'autorisation suivante au rôle :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:account-id
:key/kms-key-id
" } ] }
De même, si les autorisations sont spécifiées dans une politique KMS, vous pouvez attacher la politique suivante au rôle :
{ "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 et UpdateImage API : autorisations relatives aux rôles d'exécution
Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateImage
ou UpdateImage
, vous pouvez attacher la politique d'autorisation suivante au rôle :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }
CreateNotebookInstance API : autorisations relatives aux rôles d'exécution
Les autorisations que vous accordez au rôle d'exécution pour appeler l'API CreateNotebookInstance
dépendent de la façon dont vous prévoyez d'utiliser l'instance de bloc-notes. Si vous prévoyez de l'utiliser pour appeler SageMaker des API et transmettre le même rôle lorsque vous appelez les CreateModel
API CreateTrainingJob
et, associez la politique d'autorisation suivante au rôle :
{ "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" } } } ] }
Pour restreindre les autorisations, limitez-les aux ressources Amazon S3 et Amazon ECR spécifiques, en limitant "Resource": "*"
comme suit :
{ "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 vous avez besoin d'accéder à d'autres sources, telles que des ressources Amazon DynamoDB ou Amazon Relational Database Service, ajoutez les autorisations adéquates à cette politique.
Dans la politique précédente, vous adaptez la stratégie comme suit :
-
Adaptez l'autorisation
s3:ListBucket
au compartiment spécifique que vous spécifiez sous la formeInputDataConfig.DataSource.S3DataSource.S3Uri
dans une demandeCreateTrainingJob
. -
Adaptez les autorisations
s3:GetObject
,s3:PutObject
, ets3:DeleteObject
comme suit :-
Adaptez vos autorisations aux valeurs suivantes que vous spécifiez dans une demande
CreateTrainingJob
:InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Adaptez vos autorisations aux valeurs suivantes que vous spécifiez dans une demande
CreateModel
:PrimaryContainer.ModelDataUrl
SuplementalContainers.ModelDataUrl
-
-
Adaptez les autorisations
ecr
comme suit :-
Adaptez vos autorisations à la valeur
AlgorithmSpecification.TrainingImage
que vous spécifiez dans une demandeCreateTrainingJob
. -
Adaptez vos autorisations à la valeur
PrimaryContainer.Image
que vous spécifiez dans une demandeCreateModel
:
-
Les actions cloudwatch
et logs
sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.
CreateHyperParameterTuningJob API : autorisations relatives aux rôles d'exécution
Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateHyperParameterTuningJob
, vous pouvez attacher la politique d'autorisation suivante au rôle :
{ "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": "*" } ] }
Au lieu de les spécifier"Resource": "*"
, vous pouvez étendre ces autorisations à des ressources Amazon S3, Amazon ECR et Amazon CloudWatch Logs spécifiques :
{ "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 le conteneur d'entraînement associé à la tâche de réglage d'hyperparamètre doit accéder à d'autres sources de données telles que les ressources DynamoDB ou Amazon RDS, ajoutez les autorisations pertinentes à cette politique.
Dans la politique précédente, vous adaptez la politique comme suit :
-
Adaptez l'autorisation
s3:ListBucket
à un compartiment spécifique que vous spécifiez sous la formeInputDataConfig.DataSource.S3DataSource.S3Uri
dans une demandeCreateTrainingJob
. -
Adaptez les autorisations
s3:GetObject
ets3:PutObject
aux objets suivants que vous spécifiez dans la configuration des données d'entrée et de sortie dans une demandeCreateHyperParameterTuningJob
:InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Adaptez les autorisations Amazon ECR au chemin de registre (
AlgorithmSpecification.TrainingImage
) que vous spécifiez dans une demandeCreateHyperParameterTuningJob
. -
Élargissez CloudWatch les autorisations Amazon Logs pour enregistrer un groupe de tâches de SageMaker formation.
Les actions cloudwatch
sont applicables aux ressources "*". Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.
Si vous spécifiez un VPC privé pour votre tâche de réglage d'hyperparamètres, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Si les entrées sont chiffrées à l'aide du chiffrement côté serveur avec une clé gérée par AWS KMS (SSE-KMS), ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche de réglage des hyper-paramètres, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche de réglage des hyper-paramètres, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateProcessingJob API : autorisations relatives aux rôles d'exécution
Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateProcessingJob
, vous pouvez attacher la politique d'autorisation suivante au rôle :
{ "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": "*" } ] }
Au lieu de spécifier "Resource": "*"
, vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :
{ "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
a besoin d'accéder à d'autres sources de données, telles que des ressources DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.
Dans la politique précédente, vous adaptez la politique comme suit :
-
Adaptez l'autorisation
s3:ListBucket
à un compartiment spécifique que vous spécifiez sous la formeProcessingInputs
dans une demandeCreateProcessingJob
. -
Adaptez les autorisations
s3:GetObject
ets3:PutObject
aux objets qui seront téléchargés ou téléchargés dansProcessingInputs
etProcessingOutputConfig
dans une requêteCreateProcessingJob
. -
Adaptez les autorisations Amazon ECR au chemin de registre (
AppSpecification.ImageUri
) que vous spécifiez dans une demandeCreateProcessingJob
.
Les actions cloudwatch
et logs
sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.
Si vous spécifiez un VPC privé pour votre tâche de traitement, ajoutez les autorisations suivantes. Ne limitez pas la politique avec des conditions ou des filtres de ressources. Dans le cas contraire, les contrôles de validation effectués lors de la création de la tâche de traitement échouent.
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Si les entrées sont chiffrées à l'aide du chiffrement côté serveur avec une clé gérée par AWS KMS (SSE-KMS), ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche de traitement, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche de traitement, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateTrainingJob API : autorisations relatives aux rôles d'exécution
Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateTrainingJob
, vous pouvez attacher la politique d'autorisation suivante au rôle :
{ "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": "*" } ] }
Au lieu de spécifier "Resource": "*"
, vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :
{ "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
a besoin d'accéder à d'autres sources de données, telles que des ressources DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.
Dans la politique précédente, vous adaptez la politique comme suit :
-
Adaptez l'autorisation
s3:ListBucket
à un compartiment spécifique que vous spécifiez sous la formeInputDataConfig.DataSource.S3DataSource.S3Uri
dans une demandeCreateTrainingJob
. -
Adaptez les autorisations
s3:GetObject
ets3:PutObject
aux objets suivants que vous spécifiez dans la configuration des données d'entrée et de sortie dans une demandeCreateTrainingJob
:InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
Adaptez les autorisations Amazon ECR au chemin de registre (
AlgorithmSpecification.TrainingImage
) que vous spécifiez dans une demandeCreateTrainingJob
.
Les actions cloudwatch
et logs
sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.
Si vous spécifiez un VPC privé pour votre tâche d'entraînement, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Si les entrées sont chiffrées à l'aide du chiffrement côté serveur avec une clé gérée par AWS KMS (SSE-KMS), ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }
Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche d'entraînement, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }
Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche d'entraînement, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }
CreateModel API : autorisations relatives aux rôles d'exécution
Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateModel
, vous pouvez attacher la politique d'autorisation suivante au rôle :
{ "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": "*" } ] }
Au lieu de spécifier "Resource": "*"
, vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :
{ "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
a besoin d'accéder à d'autres sources de données, telles que des ressources Amazon DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.
Dans la politique précédente, vous adaptez la politique comme suit :
-
Adaptez les autorisations S3 aux objets que vous spécifiez dans le chemin
PrimaryContainer.ModelDataUrl
dans une demandeCreateModel
. -
Adaptez les autorisations Amazon ECR à un chemin de registre spécifique que vous spécifiez sous les formes
PrimaryContainer.Image
etSecondaryContainer.Image
dans une demandeCreateModel
.
Les actions cloudwatch
et logs
sont applicables aux ressources « * ». Pour plus d'informations, consultez la section CloudWatch Ressources et opérations dans le guide de CloudWatch l'utilisateur Amazon.
Note
Si vous prévoyez d'utiliser la fonctionnalité de garde-fous de SageMaker déploiement pour le déploiement de modèles en production, assurez-vous que votre rôle d'exécution est autorisé à effectuer l'cloudwatch:DescribeAlarms
action sur vos alarmes d'annulation automatique.
Si vous spécifiez un VPC privé pour votre modèle, ajoutez les autorisations suivantes :
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }