Politiche IAM per l'utilizzo degli stati delle mappe distribuite - AWS Step Functions

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Politiche IAM per l'utilizzo degli stati delle mappe distribuite

Quando crei flussi di lavoro con la console Step Functions, Step Functions può generare automaticamente policy IAM basate sulle risorse nella definizione del flusso di lavoro. Le policy generate includono i privilegi minimi necessari per consentire al ruolo della macchina a stati di richiamare l'azione StartExecution API per lo stato della mappa distribuita e accedere alle AWS risorse, come i bucket e gli oggetti Amazon S3 e le funzioni Lambda.

Ti consigliamo di includere solo le autorizzazioni necessarie nelle tue policy IAM. Ad esempio, se il tuo flusso di lavoro include uno Map stato in modalità Distribuita, limita le tue policy allo specifico bucket e cartella Amazon S3 che contiene i tuoi dati.

Importante

Se specifichi un bucket Amazon S3 e un oggetto, o prefisso, con un percorso di riferimento a una coppia chiave-valore esistente nell'input dello stato della mappa distribuita, assicurati di aggiornare le policy IAM per il tuo flusso di lavoro. Definisci le policy fino ai nomi dei bucket e degli oggetti in cui il percorso si risolve in fase di esecuzione.

Esempio di policy IAM per l'esecuzione di uno stato della mappa distribuita

Quando includi uno stato della mappa distribuita nei flussi di lavoro, Step Functions necessita delle autorizzazioni appropriate per consentire al ruolo della macchina a stati di richiamare l'azione StartExecution API per lo stato della mappa distribuita.

Il seguente esempio di policy IAM concede i privilegi minimi richiesti al ruolo della macchina a stati per l'esecuzione dello stato della mappa distribuita.

Nota

Assicurati di sostituirlo stateMachineName con il nome della macchina a stati in cui stai utilizzando lo stato Distributed Map. Ad esempio, arn:aws:states:region:account-id:stateMachine:mystateMachine.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution" ], "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*" } ] }

Esempio di policy IAM per redriving una mappa distribuita

È possibile riavviare le esecuzioni di workflow secondarie non riuscite in una mappa eseguita dal redrivingflusso di lavoro principale. Un flusso di lavoro redriven principale con redrives tutti gli stati non riusciti, inclusa Distributed Map. Assicurati che il tuo ruolo di esecuzione disponga dei privilegi minimi necessari per consentirgli di richiamare l'azione dell'RedriveExecutionAPI sul flusso di lavoro principale.

Il seguente esempio di policy IAM concede i privilegi minimi richiesti al ruolo di macchina a stati per redriving uno stato di Distributed Map.

Nota

Assicurati di sostituirlo stateMachineName con il nome della macchina a stati in cui stai utilizzando lo stato Distributed Map. Ad esempio, arn:aws:states:region:account-id:stateMachine:mystateMachine.

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

Esempi di policy IAM per la lettura dei dati dai set di dati di Amazon S3

Gli esempi seguenti mostrano le tecniche per concedere i privilegi minimi necessari per accedere ai set di dati Amazon S3 utilizzando ListObjectsle azioni V2 e API. GetObject

Esempio condizione utilizzando un oggetto Amazon S3 come set di dati

La seguente condizione concede i privilegi minimi per accedere agli oggetti in una processImages cartella di un bucket Amazon S3.

"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages" ] } }
Esempio utilizzo di un file CSV come set di dati

L'esempio seguente mostra le azioni necessarie per accedere a un file CSV denominato. ratings.csv

"Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv" ]
Esempio utilizzo di un inventario Amazon S3 come set di dati

Di seguito sono riportati esempi di risorse per un manifesto di inventario e file di dati di Amazon S3.

"Resource": [ "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json", "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*" ]
Esempio utilizzo di ListObjects V2 per limitarsi al prefisso di una cartella

Quando si utilizza ListObjectsV2, verranno generate due politiche. Una è necessaria per consentire l'elenco dei contenuti del bucket (ListBucket) e un'altra policy consentirà il recupero degli oggetti nel bucket (). GetObject

Di seguito sono riportati alcuni esempi di azioni, risorse e una condizione:

"Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "/path/to/your/json/" ] } }
"Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]

Nota che non GetObject verrà applicato alcun ambito e utilizzerai un carattere jolly (*) per l'oggetto.

Esempio di policy IAM per la scrittura di dati in un bucket Amazon S3

Il seguente esempio di policy IAM concede i privilegi minimi richiesti per scrivere i risultati dell'esecuzione del flusso di lavoro secondario in una cartella denominata csvJobs in un bucket Amazon S3 utilizzando l'azione API. PutObject

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

Autorizzazioni IAM per bucket Amazon S3 AWS KMS key crittografato

Lo stato della mappa distribuito utilizza caricamenti in più parti per scrivere i risultati dell'esecuzione del flusso di lavoro secondario in un bucket Amazon S3. Se il bucket è crittografato utilizzando una AWS Key Management Service (AWS KMS) chiave, devi includere anche le autorizzazioni per eseguire la IAM chiave e le kms:Decrypt azioni sulla chiave. kms:Encrypt kms:GenerateDataKey Queste autorizzazioni sono obbligatorie perché Amazon S3 deve decrittografare e leggere i dati dalle parti di file crittografate prima di completare il caricamento in più parti.

Il seguente esempio di policy IAM concede l'kms:Decryptautorizzazione e kms:Encrypt le kms:GenerateDataKey azioni sulla chiave utilizzata per crittografare il bucket 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" ] } }

Per ulteriori informazioni, consulta Caricamento di un file di grandi dimensioni su Amazon S3 con la crittografia utilizzando una AWS KMS key nel Knowledge Center di AWS .

Se il tuo utente o ruolo IAM è lo Account AWS stesso diKMS key, devi disporre di queste autorizzazioni sulla policy chiave. Se il tuo utente o ruolo IAM appartiene a un account diverso da quelloKMS key, devi disporre delle autorizzazioni sia sulla policy chiave che sul tuo utente o ruolo IAM.