Rôles SageMaker - Amazon SageMaker

Rôles SageMaker

En tant que service géré, SageMaker effectue des opérations en votre nom sur le matériel AWS géré par SageMaker. SageMaker ne peut effectuer que les opérations autorisées par l'utilisateur.

Un utilisateur SageMaker peut accorder ces autorisations avec un rôle IAM (appelé rôle d'exécution).

Pour créer et utiliser un rôle d'exécution disponible localement, vous pouvez utiliser les procédures suivantes.

Obtention du rôle d'exécution

Lorsque vous exécutez un bloc-notes dans SageMaker, vous pouvez accéder au rôle d'exécution avec le code suivant :

sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
Note

Le rôle d'exécution est destiné à être disponible uniquement lors de l'exécution d'un bloc-notes dans SageMaker. Si vous exécutez get_execution_role dans un bloc-notes qui n'est pas sur SageMaker, attendez-vous à une erreur « région ».

Pour rechercher l'ARN du rôle IAM créé lors de la création de l'instance de bloc-notes ou de l'application Studio, accédez à la page Instances de bloc-notes dans la console et sélectionnez le bloc-notes approprié dans la liste Noms. Dans la page de détails de la configuration, l'ARN du rôle IAM est donné dans la section Autorisations et chiffrement.

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.

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 d'exécution SageMaker.

Pour créer un rôle

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Sélectionnez Roles (Rôles), puis sélectionnez Create role (Créer un rôle).

  3. Sélectionnez SageMaker.

  4. Sélectionnez Next: Permissions (Suivant : Autorisations).

  5. La politique gérée IAM, AmazonSageMakerFullAccess, est automatiquement attachée à ce rôle. Pour afficher les autorisations incluses dans cette politique, sélectionnez la flèche latérale en regard du nom de la politique. Sélectionnez Next: Tags (Suivant : Balises).

  6. (Facultatif) Ajoutez des balises et sélectionnez Next: Review (Suivant : Vérification).

  7. Nommez le rôle dans le champ de texte sous Role name (Nom de rôle) et sélectionnez Create role (Créer un rôle).

  8. Dans la section Roles (Rôles) de la console IAM, sélectionnez 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 que vous avez saisi à l'étape 7.

  9. Sur la page de résumé, prenez note de l'ARN.

Avec un ARN connu pour votre rôle, vous pouvez vérifier le rôle par programme lors de l'exécution du bloc-notes localement ou sur SageMaker. Remplacez RoleName par votre ARN connu :

try: role = sagemaker.get_execution_role() except ValueError: iam = boto3.client('iam') role = iam.get_role(RoleName='AmazonSageMaker-ExecutionRole-20201200T100000')['Role']['Arn']

Ajouter des autorisations Amazon S3 supplémentaires à un rôle d'exécution SageMaker

Lorsque vous utilisez une fonction SageMaker 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 exemple CreateTrainingJob) 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 fonction SageMaker spécifique que vous utilisez pour en savoir plus sur les autorisations Amazon S3 requises pour cette fonction.

{ "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 ] } ] }

Transmission de rôles

Les actions telles que la transmission d'un rôle entre les services sont une fonction courante au sein de SageMaker. Vous pouvez trouver plus d'informations sur Actions, ressources et clés de condition pour Amazon SageMaker dans le Guide de l'utilisateur IAM.

Vous transmettez le rôle (iam:PassRole) lors de ces appels d'API : CreateAutoMLJob, CreateCompilationJob, CreateDomain, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplate et UpdateImage.

Vous attachez la politique d'approbation suivante au rôle IAM qui octroie les autorisations principales SageMaker pour assumer le rôle ; il s'agit de 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 politique, que vous utilisez pour effectuer des actions dans SageMaker, sont relativement vastes. Pour obtenir la liste des autorisations de la stratégie, y compris des informations sur les raisons de l'ajout d'un grand nombre de ces autorisations, consultez AmazonSageMakerFullAccess. Si vous préférez créer des stratégies 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.

Pour de plus amples informations sur les rôles IAM, veuillez consulter Rôles IAM dans le Guide de l'utilisateur IAM.

API CreateAutoMLJob : autorisations de rôle 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", "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" ] }

API CreateDomain : autorisations de rôle d'exécution

Le rôle d'exécution pour les domaines AWS SSO et le rôle utilisateur/exécution pour les domaines IAM ont besoin des autorisations suivantes lorsque vous transmettez une clé gérée par le client (CMK) AWS KMS comme le 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 :

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

API CreateImage et UpdateImage : autorisations de rôle 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" } } } ] }

API CreateNotebookInstance : autorisations de rôle 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 les API SageMaker et transmettre le même rôle lors de l'appel des API CreateTrainingJob et CreateModel, attachez 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", "fsx:DescribeFileSystem", "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:::repository/my-repo1", "arn:aws:ecr:::repository/my-repo2", "arn:aws:ecr:::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 stratégie 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 forme InputDataConfig.DataSource.S3DataSource.S3Uri dans une demande CreateTrainingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObjects3: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 demande CreateTrainingJob.

    • Adaptez vos autorisations à la valeur PrimaryContainer.Image que vous spécifiez dans une demande CreateModel :

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour de plus amples informations, veuillez consulter Ressources et opérations CloudWatch dans le Guide de l'utilisateur Amazon CloudWatch.

API CreateHyperParameterTuningJob : autorisations de rôle d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateHyperParameterTuningJob, vous pouvez attacher la stratégie 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:::repository/my-repo" } ] }

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 stratégie précédente, vous adaptez la stratégie comme suit :

  • Adaptez l'autorisation s3:ListBucket à un compartiment spécifique que vous spécifiez sous la forme InputDataConfig.DataSource.S3DataSource.S3Uri dans une demande CreateTrainingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObject aux objets suivants que vous spécifiez dans la configuration des données d'entrée et de sortie dans une demande CreateHyperParameterTuningJob :

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Adaptez les autorisations Amazon ECR au chemin de registre (AlgorithmSpecification.TrainingImage) que vous spécifiez dans une demande CreateHyperParameterTuningJob.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour de plus amples informations, veuillez consulter Ressources et opérations CloudWatch dans le Guide de l'utilisateur Amazon CloudWatch.

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" ] }

API CreateProcessingJob : Autorisations de rôle d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateProcessingJob, vous pouvez attacher la stratégie 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:::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 stratégie précédente, vous adaptez la stratégie comme suit :

  • Adaptez l'autorisation s3:ListBucket à un compartiment spécifique que vous spécifiez sous la forme ProcessingInputs dans une demande CreateProcessingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObject aux objets qui seront téléchargés ou téléchargés dans ProcessingInputs et ProcessingOutputConfig dans une requête CreateProcessingJob.

  • Adaptez les autorisations Amazon ECR au chemin de registre (AppSpecification.ImageUri) que vous spécifiez dans une demande CreateProcessingJob.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour de plus amples informations, veuillez consulter Ressources et opérations CloudWatch dans le Guide de l'utilisateur Amazon CloudWatch.

Si vous spécifiez un VPC privé pour votre tâche de traitement, 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 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" ] }

API CreateTrainingJob : autorisations de rôle d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateTrainingJob, vous pouvez attacher la stratégie 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:::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 stratégie précédente, vous adaptez la stratégie comme suit :

  • Adaptez l'autorisation s3:ListBucket à un compartiment spécifique que vous spécifiez sous la forme InputDataConfig.DataSource.S3DataSource.S3Uri dans une demande CreateTrainingJob.

  • Adaptez les autorisations s3:GetObject et s3:PutObject aux objets suivants que vous spécifiez dans la configuration des données d'entrée et de sortie dans une demande CreateTrainingJob :

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • Adaptez les autorisations Amazon ECR au chemin de registre (AlgorithmSpecification.TrainingImage) que vous spécifiez dans une demande CreateTrainingJob.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour de plus amples informations, veuillez consulter Ressources et opérations CloudWatch dans le Guide de l'utilisateur Amazon CloudWatch.

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" ] }

API CreateModel : autorisations de rôle d'exécution

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API CreateModel, vous pouvez attacher la stratégie 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", "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", "arn:aws:s3:::inputbucket/object" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:::repository/my-repo", "arn:aws:ecr:::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 stratégie.

Dans la stratégie précédente, vous adaptez la stratégie comme suit :

  • Adaptez les autorisations S3 aux objets que vous spécifiez dans le chemin PrimaryContainer.ModelDataUrl dans une demande CreateModel.

  • Adaptez les autorisations Amazon ECR à un chemin de registre spécifique que vous spécifiez sous les formes PrimaryContainer.Image et SecondaryContainer.Image dans une demande CreateModel.

Les actions cloudwatch et logs sont applicables aux ressources « * ». Pour de plus amples informations, veuillez consulter Ressources et opérations CloudWatch dans le Guide de l'utilisateur Amazon CloudWatch.

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"