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à.
Quando si crea una macchina a stati nella AWS Step Functions console, Step Functions produce una policy AWS Identity and Access Management (IAM) basata sulle risorse utilizzate nella definizione della macchina a stati, come segue:
-
Per integrazioni ottimizzate, Step Functions creerà una policy con tutte le autorizzazioni e i ruoli necessari per la tua macchina a stati.
Suggerimento: puoi vedere esempi di policy in ciascuna delle pagine di servizio sotto. Integrazione di servizi ottimizzati
-
Per le integrazioni standard, Step Functions creerà un ruolo IAM con autorizzazioni parziali.
È necessario aggiungere eventuali policy relative ai ruoli mancanti necessarie alla macchina a stati per interagire con il servizio.
Risorse dinamiche e statiche
Le risorse statiche vengono definite direttamente nello stato dell'attività della macchina a stati. Quando includi le informazioni sulle risorse che desideri chiamare direttamente negli stati delle attività, Step Functions può creare un ruolo IAM solo per quelle risorse.
Le risorse dinamiche vengono passate come input all'avvio della macchina a stati o come input per un singolo stato e vi si accede utilizzando JSONata o a JSONPath. Quando si passano risorse dinamiche alla propria attività, Step Functions non può definire automaticamente le autorizzazioni, quindi Step Functions creerà una politica più permissiva che specifica:. "Resource": "*"
Autorizzazioni aggiuntive per le attività che utilizzano .sync
Le attività che utilizzano il pattern Run a Job (.sync) richiedono autorizzazioni aggiuntive per il monitoraggio e la ricezione di una risposta dall'API dei servizi connessi.
Step Functions utilizza due approcci per monitorare lo stato di un job quando un job viene eseguito su un servizio connesso: polling ed eventi.
Il polling richiede l'autorizzazione Describe
o le azioni Get
dell'API. Ad esempio, per Amazon ECS la macchina a stati deve disporre dell'autorizzazione di autorizzazione perecs:DescribeTasks
, poiché la macchina a stati richiede AWS Glue le autorizzazioni di autorizzazione per. glue:GetJobRun
Se nel ruolo mancano le autorizzazioni necessarie, Step Functions potrebbe non essere in grado di determinare lo stato del tuo lavoro. Uno dei motivi per cui si utilizza il metodo di polling è che alcune integrazioni di servizi non supportano EventBridge gli eventi e alcuni servizi inviano eventi solo con la massima diligenza possibile.
In alternativa, puoi utilizzare gli eventi inviati dai AWS servizi ad Amazon EventBridge. Gli eventi vengono indirizzati a Step Functions EventBridge tramite una regola gestita, quindi il ruolo richiede le autorizzazioni per events:PutTargets
events:PutRule
, e. events:DescribeRule
Se nel ruolo mancano queste autorizzazioni, potrebbe verificarsi un ritardo prima che Step Functions venga a conoscenza del completamento del lavoro. Per ulteriori informazioni sugli EventBridge eventi, consulta Events from AWS services.
Risoluzione dei problemi relativi ai flussi di lavoro.sync bloccati
Per le attività Run a Job (.sync) che supportano sia il polling che gli eventi, l'attività può essere completata correttamente utilizzando gli eventi, anche quando il ruolo non dispone delle autorizzazioni necessarie per il polling.
Nello scenario precedente, potreste non notare che le autorizzazioni di polling sono mancanti o errate. Nel raro caso in cui un evento non riesca a essere consegnato 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 EventBridge che è responsabile dell'inoltro degli eventi a Step Functions.
Nota
Poiché le regole gestite sono condivise da tutte le macchine a stati dell'account, è consigliabile utilizzare un account di test o di sviluppo per evitare impatti involontari 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.
Autorizzazioni per l'annullamento dei flussi di lavoro
Se un'attività che utilizza il pattern Run a Job (.sync) viene interrotta, Step Functions farà il possibile per annullarla.
L'annullamento di un'attività richiede l'autorizzazione o l'esecuzione di azioni Delete
API, ad esempio o. Cancel
Stop
Terminate
batch:TerminateJob
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 essere eseguita. Per ulteriori informazioni sull'interruzione delle attività, consulta Run a Job.
Scopri di più sui modelli di integrazione
Per ulteriori informazioni sulle attività sincrone, consultaScopri i modelli di integrazione dei servizi in Step Functions.