Politiques IAM pour l'utilisation de l'état de la carte distribuée - AWS Step Functions

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.

Politiques IAM pour l'utilisation de l'état de la carte distribuée

Lorsque vous créez des flux de travail avec la console Step Functions, Step Functions peut générer automatiquement des politiques IAM en fonction des ressources figurant dans votre définition de flux de travail. Ces politiques incluent le minimum de privilèges nécessaires pour permettre au rôle de machine d'état d'invoquer l'action d'StartExecutionAPI pour l'état de la carte distribuée. Ces politiques incluent également le minimum de privilèges nécessaires aux Step Functions pour accéder aux AWS ressources, telles que les buckets et les objets Amazon S3 et les fonctions Lambda. Nous vous recommandons vivement de n'inclure que les autorisations nécessaires dans vos politiques IAM. Par exemple, si votre flux de travail inclut un Map état en mode distribué, limitez vos politiques au compartiment et au dossier Amazon S3 spécifiques qui contiennent votre ensemble de données.

Important

Si vous spécifiez un compartiment et un objet Amazon S3, ou un préfixe, avec un chemin de référence vers une paire clé-valeur existante dans l'entrée d'état de votre carte distribuée, assurez-vous de mettre à jour les politiques IAM pour votre flux de travail. Élargissez les politiques jusqu'au bucket et aux noms d'objets auxquels le chemin aboutit au moment de l'exécution.

Exemple de politique IAM pour exécuter un état de carte distribuée

Lorsque vous incluez un état de carte distribuée dans vos flux de travail, Step Functions a besoin des autorisations appropriées pour permettre au rôle de machine à états d'invoquer l'action d'StartExecutionAPI pour l'état de carte distribuée.

L'exemple de politique IAM suivant accorde le minimum de privilèges requis à votre rôle de machine d'état pour exécuter l'état de carte distribuée.

Note

Assurez-vous de stateMachineName remplacer par le nom de la machine à états dans laquelle vous utilisez l'état Distributed Map. Par exemple, arn:aws:states:us-east-2:123456789012:stateMachine:mystateMachine.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:region:accountID:stateMachine:stateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": "arn:aws:states:region:accountID:execution:stateMachineName:*" } ] }

Exemple de politique IAM pour redriving une carte distribuée

Vous pouvez redémarrer les exécutions infructueuses d'un flux de travail enfant dans un flux de travail Map Run par redrivingvotre flux de travail parent. Un flux de travail redriven parent redrives contenant tous les états infructueux, y compris la carte distribuée. Assurez-vous que votre rôle d'exécution dispose du minimum de privilèges nécessaires pour lui permettre d'invoquer l'action d'RedriveExecutionAPI sur le flux de travail parent.

L'exemple de politique IAM suivant accorde le minimum de privilèges requis à votre rôle de machine d'état pour redriving un état de carte distribuée.

Note

Assurez-vous de stateMachineName remplacer par le nom de la machine à états dans laquelle vous utilisez l'état Distributed Map. Par exemple, arn:aws:states:us-east-2:123456789012:stateMachine:mystateMachine.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine/myMapRunLabel:*" } ] }

Exemples de politiques IAM pour lire les données des ensembles de données Amazon S3

Les exemples de politique IAM suivants accordent le minimum de privilèges requis pour accéder à vos ensembles de données Amazon S3 à l'aide des actions ListObjectsV2 et GetObjectAPI.

Exemple Politique IAM pour les objets Amazon S3 en tant que jeu de données

L'exemple suivant montre une politique IAM qui accorde le moins de privilèges pour accéder aux objets organisés processImages dans un compartiment Amazon S3 nommémyBucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::myBucket" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages" ] } } } ] }
Exemple Politique IAM pour un fichier CSV en tant que jeu de données

L'exemple suivant montre une politique IAM qui accorde le moins de privilèges pour accéder à un fichier CSV nommératings.csv.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::myBucket/csvDataset/ratings.csv" ] } ] }
Exemple Politique IAM pour un inventaire Amazon S3 sous forme de jeu de données

L'exemple suivant montre une politique IAM qui accorde le moins de privilèges pour accéder à un rapport d'inventaire Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json", "arn:aws:s3:::destination-prefix/source-bucket/config-ID/data/*" ] } ] }

Exemple de politique IAM pour écrire des données dans un compartiment Amazon S3

L'exemple de politique IAM suivant accorde le minimum de privilèges requis pour écrire les résultats de l'exécution du flux de travail de votre enfant dans un dossier nommé CSVjobs dans un compartiment Amazon S3 à l'aide de l'PutObjectaction API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::resultBucket/csvJobs/*" ] } ] }

Autorisations IAM pour le compartiment Amazon S3 AWS KMS key chiffré

L'état de la carte distribuée utilise des téléchargements partitionnés pour écrire les résultats de l'exécution du flux de travail enfant dans un compartiment Amazon S3. Si le compartiment est chiffré à l'aide d'une AWS Key Management Service (AWS KMS) clé, vous devez également inclure des autorisations dans votre IAM politique pour effectuer les kms:GenerateDataKey actions kms:Decryptkms:Encrypt, et sur la clé. Ces autorisations sont requises, car Simple Storage Service (Amazon S3) doit déchiffrer et lire les données des parties de fichier chiffrées avant de terminer le chargement partitionné.

L'exemple de politique IAM suivant accorde l'autorisation à kms:Decryptkms:Encrypt, et aux kms:GenerateDataKey actions sur la clé utilisée pour chiffrer votre compartiment Amazon S3.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" ] } }

Pour plus d'informations, consultez Chargement d'un fichier volumineux vers Amazon S3 avec chiffrement à l'aide d'une AWS KMS key que vous trouverez dans le AWS Centre de connaissances.

Si votre utilisateur ou votre rôle IAM est Compte AWS identique auKMS key, vous devez disposer de ces autorisations sur la politique clé. Si votre utilisateur ou rôle IAM appartient à un compte différent duKMS key, vous devez disposer des autorisations à la fois sur la politique clé et sur votre utilisateur ou rôle IAM.