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à.
In che modo Step Functions genera IAM politiche per servizi integrati
Quando crei una macchina a stati nel AWS Step Functions console, Step Functions produce un AWS Identity and Access Management (IAM) politica basata sulle risorse utilizzate nella definizione della macchina a stati, come segue:
-
Se la tua macchina a stati utilizza una delle integrazioni ottimizzate, Step Functions creerà una policy con le autorizzazioni e i ruoli necessari per la tua macchina a stati. (Eccezione: MediaConvert l'integrazione richiede la configurazione manuale delle autorizzazioni, vedi.) IAMpolitiche per le chiamate AWS Elemental MediaConvert
-
Se la tua macchina a stati utilizza uno dei AWS SDKintegrazioni, verrà creato un IAM ruolo con autorizzazioni parziali. Successivamente, puoi utilizzare la IAM console per aggiungere eventuali policy relative ai ruoli mancanti.
Gli esempi seguenti mostrano come Step Functions genera una IAM policy basata sulla definizione della macchina a stati. Elementi nel codice di esempio, ad esempio
vengono sostituite con le risorse statiche elencate nella definizione della macchina a stati. Se disponi di più risorse statiche, sarà disponibile una voce per ciascuna di esse nel IAM ruolo.[[resourceName]]
Risorse dinamiche e statiche
Le risorse statiche sono definite direttamente nello stato task della tua macchina a stati. Quando includi le informazioni sulle risorse che desideri richiamare direttamente negli stati delle attività, Step Functions crea un IAM ruolo solo per quelle risorse.
Le risorse dinamiche sono quelle che vengono trasferite all'input dello stato e sono accessibili attraverso un percorso (consulta Utilizzo dei percorsi per accedere all'input per i flussi di lavoro Step Functions). Se stai passando risorse dinamiche alla tua attività, Step Functions creerà una politica più privilegiata che specifica:. "Resource": "*"
Autorizzazioni aggiuntive per le attività che utilizzano il pattern Run a Job
Per le attività che utilizzano il pattern Run a Job (quelle che terminano con.sync
), sono necessarie autorizzazioni aggiuntive per monitorare e ricevere una risposta dalle API azioni dei servizi connessi. Le politiche correlate includono più autorizzazioni rispetto alle attività che utilizzano i modelli Request Response o Wait for Callback. Scopri i modelli di integrazione dei servizi in Step FunctionsPer informazioni sulle attività sincrone, vedere.
Nota
È necessario fornire autorizzazioni aggiuntive per le integrazioni di servizi che supportano il pattern Run a Job (.sync).
Step Functions utilizza due metodi per monitorare lo stato di un lavoro quando un lavoro viene eseguito su un servizio connesso, sondaggi ed eventi.
Il sondaggio richiede l'autorizzazione Describe
o l'esecuzione di Get
API azioni, ad esempio ecs:DescribeTasks
o. glue:GetJobRun
Se nel tuo ruolo mancano queste autorizzazioni, Step Functions potrebbe non essere in grado di determinare lo stato del tuo lavoro. Questo perché alcune integrazioni di servizi Run a Job (.sync) non supportano EventBridge gli eventi e alcuni servizi inviano eventi solo se possibile.
Eventi inviati da AWS i servizi verso Amazon EventBridge vengono indirizzati a Step Functions utilizzando una regola gestita e richiedono autorizzazioni per events:PutTargets
events:PutRule
, eevents:DescribeRule
. Se nel tuo ruolo mancano queste autorizzazioni, potrebbe verificarsi un ritardo prima che Step Functions venga a conoscenza del completamento del tuo lavoro. Per ulteriori informazioni sugli EventBridge eventi, consulta Eventi da AWS servizi.
Nota
Per le attività Run a Job (.sync) che supportano sia il polling che gli eventi, l'attività potrebbe comunque essere completata correttamente utilizzando gli eventi. Ciò può verificarsi anche se al ruolo non sono disponibili le autorizzazioni necessarie per il polling. In questo caso, potresti non accorgerti immediatamente che i permessi di sondaggio sono errati o mancanti. Nel raro caso in cui l'evento non venga inviato o elaborato da Step Functions, l'esecuzione potrebbe bloccarsi. Per verificare che i permessi di polling siano configurati correttamente, è possibile eseguire un'esecuzione in un ambiente senza EventBridge eventi nei seguenti modi:
-
Elimina la regola gestita da EventBridge, che è responsabile dell'inoltro degli eventi a Step Functions. Questa regola gestita è condivisa da tutte le macchine a stati del tuo account, quindi dovresti eseguire questa azione solo in un account di test o di sviluppo per evitare qualsiasi impatto involontario su altre macchine a stati. È possibile identificare la regola gestita specifica da eliminare esaminando il
Resource
campo utilizzato nel modello di policy perevents:PutRule
il servizio di destinazione. La regola gestita verrà ricreata la prossima volta che si crea o si aggiorna una macchina a stati che utilizza l'integrazione del servizio. Per ulteriori informazioni sull'eliminazione EventBridge delle regole, vedere Disabilitazione o eliminazione di una regola. -
Esegui il test con Step Functions Local, che non supporta l'uso di eventi per completare le attività Run a Job (.sync). Per utilizzare Step Functions Local, assumi il IAM ruolo utilizzato dalla tua macchina a stati. Potrebbe essere necessario modificare la relazione di fiducia. Imposta le variabili di
AWS_SESSION_TOKEN
ambienteAWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
, e sui valori del ruolo assunto, quindi avvia Step Functions Local utilizzandojava -jar StepFunctionsLocal.jar. Infine, usa il AWS CLI con il --endpoint-url parametro per creare una macchina a stati, avviare un'esecuzione e ottenere la cronologia delle esecuzioni. Per ulteriori informazioni, consulta Test di macchine a stati localmente in Step Functions.
Se un'attività che utilizza il pattern Run a Job (.sync) viene interrotta, Step Functions farà il possibile per annullarla. Ciò richiede l'autorizzazione a Cancel
Stop
,Terminate
, o Delete
API azioni, come batch:TerminateJob
o. eks:DeleteCluster
Se nel tuo ruolo mancano queste autorizzazioni, Step Functions non sarà in grado di annullare l'attività e potresti addebitare costi aggiuntivi mentre questa continua a funzionare. Per ulteriori informazioni sull'interruzione delle attività, consulta Run a Job.