

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à.

# Creazione di un ruolo IAM per la tua macchina a stati in Step Functions
<a name="procedure-create-iam-role"></a>

AWS Step Functions può eseguire codice e accedere alle AWS risorse (ad esempio invocando una AWS Lambda funzione). Per garantire la sicurezza, è necessario concedere l'accesso a Step Functions a quelle risorse utilizzando un ruolo IAM.

I [Tutorial per imparare Step Functions](learning-resources.md#tutorials) contenuti di questa guida consentono di sfruttare i ruoli IAM generati automaticamente e validi per la AWS regione in cui viene creata la macchina a stati. Tuttavia, puoi creare il tuo ruolo IAM per una macchina a stati.

Quando si crea una policy IAM da utilizzare per le macchine a stati, la policy deve includere le autorizzazioni che si desidera vengano concesse alle macchine a stati. Puoi utilizzare una policy AWS gestita esistente come esempio oppure puoi creare una policy personalizzata partendo da zero che soddisfi le tue esigenze specifiche. Per ulteriori informazioni, consulta [Creazione di politiche IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *Guida per l'utente IAM*

Per creare il tuo ruolo IAM per una macchina a stati, segui i passaggi in questa sezione.

In questo esempio, crei un ruolo IAM con il permesso di richiamare una funzione Lambda.

## Creare un ruolo per Step Functions
<a name="create-role-for-step-functions"></a>

1. Accedi alla [console IAM](https://console.aws.amazon.com/iam/home), quindi scegli **Ruoli**, **Crea ruolo**.

1. Nella pagina **Seleziona entità affidabile**, in **AWS servizio**, seleziona **Step Functions** dall'elenco, quindi scegli **Avanti: Autorizzazioni**.

1. Nella pagina **Attached permissions policy (Policy autorizzazioni collegate)** scegliere **Next: Review (Successivo: Esamina)**.

1. Nella pagina **Review (Esamina)**, immettere `StepFunctionsLambdaRole` in **Role Name (Nome ruolo)**, quindi scegliere **Create role (Crea ruolo)**.

   Il ruolo IAM viene visualizzato nell'elenco dei ruoli.

Per ulteriori informazioni sulle autorizzazioni e le policy IAM, consulta [Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) nella *IAM User Guide*.

## Evita problemi secondari confusi tra diversi servizi
<a name="prevent-cross-service-confused-deputy"></a>

Il problema confused deputy è un problema di sicurezza in cui un’entità che non dispone dell’autorizzazione per eseguire un’azione può costringere un’entità maggiormente privilegiata a eseguire l’azione. Nel AWS, l'impersonificazione tra servizi può causare il problema del sostituto confuso. La rappresentazione tra servizi può verificarsi quando un servizio (il *servizio chiamante*) effettua una chiamata a un altro servizio (il *servizio chiamato*). Questo tipo di impersonificazione può avvenire tra diversi account e tra diversi servizi. Il servizio chiamante può essere manipolato per utilizzare le proprie autorizzazioni e agire sulle risorse di un altro cliente, a cui normalmente non avrebbe accesso. 

Per evitare la confusione dei deputati, AWS offre strumenti che consentono di proteggere i dati relativi a tutti i servizi, con responsabili del servizio a cui è stato consentito l'accesso alle risorse del vostro account. Questa sezione si concentra sulla prevenzione interservizio dei deputati confusi, specifica per AWS Step Functions; tuttavia, puoi saperne di più su questo argomento nella sezione dedicata ai [problemi dei deputati confusi](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) della *IAM* User Guide.

Ti consigliamo di utilizzare le chiavi di contesto [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global condition nelle politiche delle risorse per limitare le autorizzazioni che Step Functions concede a un altro servizio di accedere alle tue risorse. Utilizzare `aws:SourceArn` se si desidera consentire l’associazione di una sola risorsa all’accesso tra servizi. Utilizzare `aws:SourceAccount` se si desidera consentire l’associazione di qualsiasi risorsa in tale account all’uso tra servizi.

Il modo più efficace per proteggersi dal problema “confused deputy” è quello di utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con l’ARN completo della risorsa. Se non conosci l'ARN completo della risorsa o se stai specificando più risorse, usa la chiave di condizione di contesto `aws:SourceArn` globale con caratteri jolly (`*`) per le parti sconosciute dell'ARN. Ad esempio, `arn:aws:states:*:111122223333:*`.

Ecco un esempio di *policy affidabile* che mostra come utilizzare `aws:SourceArn` e `aws:SourceAccount` con Step Functions per prevenire la confusa questione del vice.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
     {
        "Effect":"Allow",
        "Principal":{
           "Service":[
              "states.amazonaws.com"
           ]
        },
        "Action":"sts:AssumeRole",
        "Condition":{
           "ArnLike":{
              "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*"
           },
           "StringEquals":{
              "aws:SourceAccount":"111122223333"
           }
        }
     }
  ]
}
```

## Collegamento di una policy inline
<a name="attach-inline-policy"></a>

Step Functions può controllare altri servizi direttamente in uno `Task` stato. Allega policy in linea per consentire a Step Functions di accedere alle azioni API dei servizi che devi controllare.

1. Apri la [console IAM](https://console.aws.amazon.com/iam/home), scegli **Roles**, cerca il tuo ruolo Step Functions e seleziona quel ruolo.

1. Selezionare **Add inline policy (Aggiungi policy inline)**.

1. Utilizzare il **Visual editor (Editor visivo)** o la scheda **JSON** per creare policy per il ruolo.

Per ulteriori informazioni su come AWS Step Functions controllare altri AWS servizi, consulta[Integrazione dei servizi con Step Functions](integrate-services.md).

**Nota**  
Per esempi di policy IAM create dalla console Step Functions, vedi[In che modo Step Functions genera policy IAM per servizi integrati](service-integration-iam-templates.md).