Politiche IAM per servizi integrati - 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 servizi integrati

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:

  • 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.) Politiche IAM per AWS Elemental MediaConvert

  • Se la tua macchina a stati utilizza una delle integrazioni AWS SDK, verrà creato un ruolo IAM con autorizzazioni parziali. Successivamente, puoi utilizzare la console IAM per aggiungere eventuali policy relative ai ruoli mancanti.

Gli esempi seguenti mostrano come Step Functions genera una policy IAM basata sulla definizione della macchina a stati. Le voci nel codice di esempio, come [[resourceName]], vengono sostituite con le risorse statiche elencate nella definizione della tua macchina a stati. Se disponi di più risorse statiche, sarà presente una voce per ciascuna nel ruolo IAM.

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 chiamare direttamente negli stati delle attività, Step Functions crea un ruolo IAM solo per quelle risorse.

Le risorse dinamiche sono quelle che vengono trasferite all'input dello stato e sono accessibili attraverso un percorso (consulta Percorsi). 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 azioni API dei servizi connessi. Le politiche correlate includono più autorizzazioni rispetto alle attività che utilizzano i modelli Request Response o Wait for Callback. Modelli di integrazione dei serviziPer 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 polling richiede l'autorizzazione Describe o le azioni Get dell'API, come 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.

Gli eventi inviati dai AWS servizi ad Amazon EventBridge vengono indirizzati a Step Functions utilizzando una regola gestita e richiedono autorizzazioni per events:PutTargetsevents: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 Events from AWS services.

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 il ruolo non dispone delle 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 per events: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 ruolo IAM utilizzato dalla tua macchina a stati. Potrebbe essere necessario modificare la relazione di fiducia. Imposta le variabili di AWS_SESSION_TOKEN ambiente AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, e sui valori del ruolo assunto, quindi avvia Step Functions Local utilizzandojava -jar StepFunctionsLocal.jar. Infine, usa il --endpoint-url parametro AWS CLI with the per creare una macchina a stati, avviare un'esecuzione e ottenere la cronologia delle esecuzioni. Per ulteriori informazioni, consulta Test di macchine a stato locale.

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 StopTerminate, o azioni Delete API, 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 essere eseguita. Per ulteriori informazioni sull'interruzione delle attività, consulta Run a Job.

Modelli di policy utilizzati per creare ruoli IAM

I seguenti argomenti includono i modelli di policy utilizzati quando scegli che Step Functions crei un nuovo ruolo per te.

Nota

Consulta questi modelli per capire come Step Functions crea le tue policy IAM e come esempio di come creare manualmente policy IAM per Step Functions quando lavori con altri AWS servizi. Per ulteriori informazioni sulle integrazioni dei servizi Step Functions, vedereUtilizzo AWS Step Functions con altri servizi.