Accesso alle risorse in altri Account AWS in Step Functions - 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à.

Accesso alle risorse in altri Account AWS in Step Functions

Step Functions fornisce l'accesso tra account a risorse configurate in diversi Account AWS nei tuoi flussi di lavoro. Utilizzando le integrazioni del servizio Step Functions, puoi richiamare qualsiasi account multiplo AWS risorsa anche se così Servizio AWS non supporta politiche basate sulle risorse o chiamate tra account.

Ad esempio, supponiamo che tu ne possieda due Account AWS, chiamato Development and Testing, nello stesso Regione AWS. Utilizzando l'accesso tra account, il flusso di lavoro nell'account Development può accedere a risorse, come bucket Amazon S3, tabelle Amazon DynamoDB e funzioni Lambda disponibili nell'account Testing.

Importante

IAMi ruoli e le politiche basate sulle risorse delegano l'accesso tra account solo all'interno di una singola partizione. Ad esempio, si supponga di disporre di un account nella regione Stati Uniti occidentali (California settentrionale) nella partizione aws standard. Hai anche un account nella regione Cina (Pechino) nella partizione aws-cn. Non è possibile utilizzare una policy basata sulle risorse Amazon S3 nel tuo account nella regione Cina (Pechino) per consentire l'accesso agli utenti del tuo account aws standard.

Per ulteriori informazioni sull'accesso tra account, consulta Logica di valutazione delle politiche tra account nella Guida per l'utente. IAM

Sebbene ciascuno Account AWS mantiene il controllo completo sulle proprie risorse, con Step Functions puoi riorganizzare, scambiare, aggiungere o rimuovere passaggi nei tuoi flussi di lavoro senza la necessità di personalizzare alcun codice. Puoi farlo anche se i processi cambiano o le applicazioni si evolvono.

Puoi anche richiamare l'esecuzione di macchine a stati annidate in modo che siano disponibili su diversi account. In questo modo i flussi di lavoro vengono separati e isolati in modo efficiente. Quando utilizzi il modello di integrazione dei .syncservizi nei flussi di lavoro che accedono a un altro flusso di lavoro Step Functions in un altro account, Step Functions utilizza il polling che utilizza la quota assegnata. Per ulteriori informazioni, consulta Esegui un processo (.sync).

Nota

Attualmente, interregionale AWS SDKintegrazione e interregione AWS l'accesso alle risorse non è disponibile in Step Functions.

Concetti chiave relativi alle risorse per più account

Ruolo di esecuzione

Un IAM ruolo utilizzato da Step Functions per eseguire codice e accedere AWS risorse, come la AWS Lambda azione Invoke della funzione.

Integrazione dei servizi

Il AWS SDKAPIazioni di integrazione che possono essere richiamate dall'interno di uno Task stato nei flussi di lavoro.

account di origine

Un record Account AWS che possiede la macchina a stati e ne ha avviato l'esecuzione.

account di destinazione

Un record Account AWS a cui si effettuano chiamate tra più account.

ruolo bersaglio

Un IAM ruolo nell'account di destinazione che la macchina a stati assume per effettuare chiamate alle risorse di proprietà dell'account di destinazione.

Esegui un Job (.sync)

Un modello di integrazione dei servizi utilizzato per chiamare servizi, ad esempio AWS Batch. Inoltre, fa sì che una macchina a stati Step Functions attenda il completamento di un lavoro prima di passare allo stato successivo. Per indicare che Step Functions dovrebbe attendere, aggiungi il .sync suffisso nel Resource campo della definizione Task dello stato.

Richiamo di risorse tra account diversi

Per richiamare una risorsa che coinvolge più account nei flussi di lavoro, procedi come segue:

  1. Crea un IAM ruolo nell'account di destinazione che contiene la risorsa. Questo ruolo concede all'account di origine, contenente la macchina a stati, le autorizzazioni per accedere alle risorse dell'account di destinazione.

  2. Nella definizione dello Task stato, specifica il IAM ruolo di destinazione che deve essere assunto dalla macchina a stati prima di richiamare la risorsa tra account.

  3. Modifica la politica di fiducia nel IAM ruolo di destinazione per consentire all'account di origine di assumere temporaneamente questo ruolo. La policy di fiducia deve includere l'Amazon Resource Name (ARN) della macchina a stati definita nell'account di origine. Inoltre, definisci le autorizzazioni appropriate nel IAM ruolo di destinazione per chiamare il AWS risorsa.

  4. Aggiorna il ruolo di esecuzione dell'account di origine per includere l'autorizzazione richiesta per assumere il IAM ruolo di destinazione.

Per un esempio, vedi Accesso a più account AWS risorse in Step Functions nei tutorial.

Nota

È possibile configurare la macchina a stati in modo che assuma il IAM ruolo di accesso alle risorse da più fonti Account AWS. Tuttavia, una macchina a stati può assumere un solo IAM ruolo alla volta.

Concetto per accedere alle risorse di più account

Accesso su più account per il modello di integrazione.sync

Quando si utilizzano i modelli di integrazione dei .sync servizi nei flussi di lavoro, Step Functions esegue il polling della risorsa interaccount richiamata per confermare che l'attività è stata completata. Ciò causa un leggero ritardo tra il momento effettivo di completamento dell'attività e il momento in cui Step Functions riconosce l'attività come completa. Il IAM ruolo target necessita delle autorizzazioni necessarie per una .sync chiamata per completare questo ciclo di polling. A tale scopo, il IAM ruolo di destinazione deve avere una politica di fiducia che consenta all'account di origine di assumerlo. Inoltre, il IAM ruolo di destinazione necessita delle autorizzazioni necessarie per completare il ciclo di polling.

Nota

Per i flussi di lavoro Express annidati, arn:aws:states:::states:startExecution.sync non è attualmente supportato. Usare invece arn:aws:states:::aws-sdk:sfn:startSyncExecution.

Aggiornamento della politica di fiducia per le chiamate.sync

Aggiorna la politica di fiducia del tuo IAM ruolo target come mostrato nell'esempio seguente. Il sts:ExternalId campo controlla ulteriormente chi può assumere il ruolo. Il nome della macchina a stati deve includere solo i caratteri che AWS Security Token Service AssumeRoleAPIsupporti. Per ulteriori informazioni, vedere AssumeRolein AWS Security Token Service APIRiferimento.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::sourceAccountID:role/InvokeRole", }, "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:states:us-east-2:sourceAccountID:stateMachine:stateMachineName" } } } ] }

Autorizzazioni richieste per le chiamate.sync

Per concedere le autorizzazioni richieste per la tua macchina a stati, aggiorna le autorizzazioni richieste per il ruolo di destinazione. IAM Per ulteriori informazioni, consulta In che modo Step Functions genera IAM politiche per servizi integrati. Le EventBridge autorizzazioni Amazon delle politiche di esempio non sono richieste. Ad esempio, per avviare una macchina a stati, aggiungi le seguenti autorizzazioni.

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