

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

# Sicurezza in AWS Step Functions
<a name="security"></a>

La sicurezza del cloud AWS è la massima priorità. In qualità di AWS cliente, puoi beneficiare di un data center e di un'architettura di rete progettati per soddisfare i requisiti delle organizzazioni più sensibili alla sicurezza.

La sicurezza è una responsabilità condivisa tra AWS te e te. Il [modello di responsabilità condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) descrive questo come sicurezza *del* cloud e sicurezza *nel* cloud:
+ **Sicurezza del cloud**: AWS è responsabile della protezione dell'infrastruttura che gestisce AWS i servizi nel AWS cloud. AWS ti fornisce anche servizi che puoi utilizzare in modo sicuro. I revisori di terze parti testano e verificano regolarmente l'efficacia della sicurezza come parte dei [programmi di conformitàAWS](https://aws.amazon.com/compliance/programs/). Per ulteriori informazioni sui programmi di conformità applicabili AWS Step Functions, consulta [AWS Services in Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sicurezza nel cloud**: la responsabilità dell’utente è determinata dal servizio AWS utilizzato. L’utente è anche responsabile di altri fattori, tra cui la riservatezza dei dati, i requisiti della propria azienda e le leggi e normative vigenti. 

Questa documentazione aiuta a capire come applicare il modello di responsabilità condivisa quando si utilizza Step Functions. I seguenti argomenti mostrano come configurare Step Functions per soddisfare gli obiettivi di sicurezza e conformità. Scopri anche come utilizzare altri AWS servizi che ti aiutano a monitorare e proteggere le tue risorse Step Functions.

Step Functions utilizza IAM per controllare l'accesso ad altri AWS servizi e risorse. Per una panoramica sul funzionamento di IAM, vedi [Panoramica della gestione degli accessi](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) nella *Guida per l'utente di IAM*. Per una panoramica delle credenziali di sicurezza, consultare [Credenziali di sicurezza AWS](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) in *Riferimenti generali di Amazon Web Services*.

## Convalida della conformità per Step Functions
<a name="compliance"></a>

I revisori di terze parti valutano la sicurezza e la conformità nell' AWS Step Functions ambito di più programmi di AWS conformità. Questi includono SOC, PCI, FedRAMP, HIPAA e altri.

Per un elenco dei AWS servizi che rientrano nell'ambito di specifici programmi di conformità, vedere [AWS Servizi nell'ambito del programma di conformitàAWS](https://aws.amazon.com/compliance/services-in-scope/) . Per informazioni generali, vedere Programmi di [AWS conformità Programmi](https://aws.amazon.com/compliance/programs/) di di .

È possibile scaricare report di audit di terze parti utilizzando AWS Artifact. Per ulteriori informazioni, consulta [Scaricamento dei report in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

La tua responsabilità di conformità quando utilizzi Step Functions è determinata dalla sensibilità dei tuoi dati, dagli obiettivi di conformità della tua azienda e dalle leggi e dai regolamenti applicabili. AWS fornisce le seguenti risorse per contribuire alla conformità:
+ [Guide rapide su sicurezza e conformità Guide introduttive](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) implementazione illustrano considerazioni sull'architettura e forniscono passaggi per implementare ambienti di base incentrati sulla sicurezza e la conformità. AWS
+ [Progettazione per la sicurezza e la conformità HIPAA su Amazon Web Services](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/aws-step-functions.html): questo white paper descrive come le aziende possono utilizzare AWS per creare applicazioni conformi allo standard HIPAA.
+ [AWS Risorse per la conformità Risorse per AWS](https://aws.amazon.com/compliance/resources/) : questa raccolta di cartelle di lavoro e guide potrebbe riguardare il tuo settore e la tua area geografica.
+ [Valutazione delle risorse con le regole](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) nella *Guida per gli AWS Config sviluppatori*: il AWS Config servizio valuta la conformità delle configurazioni delle risorse alle pratiche interne, alle linee guida del settore e alle normative.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Questo AWS servizio offre una visione completa dello stato di sicurezza dell'utente, AWS che consente di verificare la conformità agli standard e alle best practice del settore della sicurezza.

## Resilienza in Step Functions
<a name="disaster-recovery-resiliency"></a>

L'infrastruttura AWS globale è costruita attorno a AWS regioni e zone di disponibilità. AWS Le regioni forniscono più zone di disponibilità fisicamente separate e isolate, collegate con reti a bassa latenza, ad alto throughput e altamente ridondanti. Con le zone di disponibilità, puoi progettare e gestire applicazioni e database che eseguono automaticamente il failover tra zone di disponibilità senza interruzioni. Le zone di disponibilità sono più disponibili, tolleranti ai guasti e scalabili rispetto alle infrastrutture a data center singolo o multiplo tradizionali. 

[Per ulteriori informazioni su AWS regioni e zone di disponibilità, consulta Global Infrastructure.AWS](https://aws.amazon.com/about-aws/global-infrastructure/)

Oltre all'infrastruttura AWS globale, Step Functions offre diverse funzionalità per supportare le esigenze di resilienza e backup dei dati.

## Sicurezza dell'infrastruttura in Step Functions
<a name="infrastructure-security"></a>

In quanto servizio gestito, è protetto dalla sicurezza di rete AWS globale. Per informazioni sui servizi AWS di sicurezza e su come AWS protegge l'infrastruttura, consulta [AWS Cloud Security](https://aws.amazon.com/security/). Per progettare il tuo AWS ambiente utilizzando le migliori pratiche per la sicurezza dell'infrastruttura, vedi [Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) in *Security Pillar AWS Well‐Architected* Framework.

Utilizzate chiamate API AWS pubblicate per accedere attraverso la rete. I client devono supportare quanto segue:
+ Transport Layer Security (TLS). È richiesto TLS 1.2 ed è consigliato TLS 1.3.
+ Suite di cifratura con Perfect Forward Secrecy (PFS), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La maggior parte dei sistemi moderni, come Java 7 e versioni successive, supporta tali modalità.

Puoi chiamare le operazioni AWS API da qualsiasi posizione di rete, ma Step Functions non supporta le politiche di accesso basate sulle risorse, che possono includere restrizioni basate sull'indirizzo IP di origine. Puoi anche utilizzare Step Functions le policy per controllare l'accesso da Amazon Virtual Private Cloud (Amazon VPC) endpoint specifici o specifici. VPCs In effetti, questo isola l'accesso alla rete a una determinata Step Functions risorsa solo dal VPC specifico all'interno AWS della rete.

# Protezione e crittografia dei dati in Step Functions
<a name="data-protection"></a>

Il modello di [responsabilità AWS condivisa modello](https://aws.amazon.com/compliance/shared-responsibility-model/) di si applica alla protezione dei dati in AWS Step Functions. Come descritto in questo modello, AWS è responsabile della protezione dell'infrastruttura globale che gestisce tutti i Cloud AWS. L’utente è responsabile del controllo dei contenuti ospitati su questa infrastruttura. L’utente è inoltre responsabile della configurazione della protezione e delle attività di gestione per i Servizi AWS utilizzati. Per maggiori informazioni sulla privacy dei dati, consulta le [Domande frequenti sulla privacy dei dati](https://aws.amazon.com/compliance/data-privacy-faq/). Per informazioni sulla protezione dei dati in Europa, consulta il post del blog relativo al [AWS Modello di responsabilità condivisa e GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) nel *AWS Blog sulla sicurezza*.

Ai fini della protezione dei dati, consigliamo di proteggere Account AWS le credenziali e configurare i singoli utenti con AWS IAM Identity Center or AWS Identity and Access Management (IAM). In tal modo, a ogni utente verranno assegnate solo le autorizzazioni necessarie per svolgere i suoi compiti. Suggeriamo, inoltre, di proteggere i dati nei seguenti modi:
+ Utilizza l’autenticazione a più fattori (MFA) con ogni account.
+  SSL/TLS Da utilizzare per comunicare con AWS le risorse. È richiesto TLS 1.2 ed è consigliato TLS 1.3.
+ Configura l'API e la registrazione delle attività degli utenti con AWS CloudTrail. Per informazioni sull'utilizzo dei CloudTrail percorsi per acquisire AWS le attività, consulta [Lavorare con i CloudTrail percorsi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) nella *Guida per l'AWS CloudTrail utente*.
+ Utilizza soluzioni di AWS crittografia, insieme a tutti i controlli di sicurezza predefiniti all'interno Servizi AWS.
+ Utilizza i servizi di sicurezza gestiti avanzati, come Amazon Macie, che aiutano a individuare e proteggere i dati sensibili archiviati in Amazon S3.
+ Se hai bisogno di moduli crittografici convalidati FIPS 140-3 per accedere AWS tramite un'interfaccia a riga di comando o un'API, usa un endpoint FIPS. Per ulteriori informazioni sugli endpoint FIPS disponibili, consulta il [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Ti consigliamo di non inserire mai informazioni riservate o sensibili, ad esempio gli indirizzi e-mail dei clienti, nei tag o nei campi di testo in formato libero, ad esempio nel campo **Nome**. Ciò include quando lavori con Step Functions o altro Servizi AWS utilizzando la console AWS CLI, l'API o AWS SDKs. I dati inseriti nei tag o nei campi di testo in formato libero utilizzati per i nomi possono essere utilizzati per i la fatturazione o i log di diagnostica. Quando si fornisce un URL a un server esterno, suggeriamo vivamente di non includere informazioni sulle credenziali nell’URL per convalidare la richiesta al server.

Con AWS KMS le chiavi gestite dai clienti, puoi proteggere i dati dei clienti, tra cui **informazioni sanitarie protette (PHI)**, da accessi non autorizzati. Step Functions è integrato con CloudTrail, quindi puoi visualizzare e controllare gli eventi più recenti nella CloudTrail console nella cronologia degli eventi.

**Topics**
+ [Crittografia dei dati a riposo in Step Functions](encryption-at-rest.md)
+ [Crittografia dei dati in transito in Step Functions](encryption-in-transit.md)

# Crittografia dei dati a riposo in Step Functions
<a name="encryption-at-rest"></a>

**Leggi il blog**  
Scopri di più sulle chiavi gestite dai clienti in [Rafforzare la sicurezza dei dati con una chiave gestita dal cliente AWS KMS](https://aws.amazon.com/blogs/compute/strengthening-data-security-in-aws-step-functions-with-a-customer-managed-aws-kms-key/)

AWS Step Functions crittografa sempre i dati inattivi utilizzando una crittografia trasparente lato server. La crittografia dei dati inattivi per impostazione predefinita riduce il sovraccarico operativo e la complessità associati alla protezione dei dati sensibili. È possibile creare applicazioni sensibili alla sicurezza che soddisfino i rigorosi requisiti normativi e di conformità alla crittografia.

Sebbene non sia possibile disabilitare questo livello di crittografia o selezionare un tipo di crittografia alternativo, è possibile aggiungere un secondo livello di crittografia rispetto alle chiavi di crittografia di AWS proprietà esistenti scegliendo una chiave gestita dal cliente quando si creano la macchina a stati e le risorse per le attività:
+ **Chiavi gestite dal cliente**: Step Functions supporta l'uso di una chiave simmetrica gestita dal cliente che è possibile creare, possedere e gestire per aggiungere un secondo livello di crittografia rispetto alla crittografia di AWS proprietà esistente. Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali: 
  + Stabilire e mantenere le policy delle chiavi
  + Stabilire e mantenere le policy e le sovvenzioni IAM
  + Abilitare e disabilitare le policy delle chiavi
  + Ruotare i materiali crittografici delle chiavi
  + Aggiungere tag
  + Creare alias delle chiavi
  + Pianificare l’eliminazione delle chiavi

  Per informazioni, consulta la [chiave gestita dal cliente nella Guida per](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) gli *AWS Key Management Service sviluppatori*. 

È possibile crittografare i dati utilizzando una **chiave gestita dal cliente** per macchine e attività a AWS Step Functions stati. **È possibile configurare una AWS KMS chiave simmetrica e un periodo di riutilizzo delle chiavi dati durante la creazione o l'aggiornamento di una **State Machine** e durante la creazione di un'attività.** La cronologia di esecuzione e la definizione della macchina a stati verranno crittografate con la chiave applicata alla State Machine. Gli input delle attività verranno crittografati con la chiave applicata all'attività. 

Con AWS KMS le chiavi gestite dai clienti, puoi proteggere i dati dei clienti, che includono **informazioni sanitarie protette (PHI), da accessi** non autorizzati. Step Functions è integrato con CloudTrail, quindi puoi visualizzare e controllare gli eventi più recenti nella CloudTrail console nella cronologia degli eventi.

Per informazioni su AWS KMS, consulta [Cos'è AWS Key Management Service?](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 

**Nota**  
Step Functions abilita automaticamente la crittografia a riposo utilizzando chiavi AWS di proprietà senza alcun costo. Tuttavia, quando si utilizza una chiave gestita dal cliente, vengono applicati dei AWS KMS costi. Per informazioni sui prezzi, consultare [Prezzi di AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

## Crittografia con una chiave gestita dal cliente
<a name="enable-custom-encryption"></a>

 Step Functions decrittografa i dati del payload con la AWS KMS chiave gestita dal cliente prima di passarli a un altro servizio per eseguire un'operazione. I dati vengono crittografati in transito utilizzando Transport Layer Security (TLS). 

 Quando i dati vengono restituiti da un servizio integrato, Step Functions li crittografa con la AWS KMS chiave gestita dal cliente. È possibile utilizzare la stessa chiave per applicare la crittografia in modo coerente su più AWS servizi. 

È possibile utilizzare una chiave gestita dal cliente con le seguenti risorse:
+ **State Machine**: tipi di flusso di lavoro Standard ed Express
+ **Attività**

È possibile specificare la chiave dati inserendo un **ID chiave KMS**, che Step Functions utilizza per crittografare i dati.
+ **ID chiave KMS**: [identificatore chiave](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) per una chiave gestita AWS KMS dal cliente sotto forma di ID chiave, ARN chiave, nome alias o alias ARN.

## Crea una State Machine con una chiave gestita dal cliente
<a name="create-state-machine-with-cmk"></a>

**Prerequisito:** prima di poter creare una macchina a stati con AWS KMS chiavi gestite dal cliente, l'utente o il ruolo devono disporre AWS KMS delle autorizzazioni per `DescribeKey` e. `GenerateDataKey`

È possibile eseguire i seguenti passaggi nella AWS console, tramite l'API o effettuando il provisioning dell'infrastruttura tramite risorse. CloudFormation (CloudFormation gli esempi sono presentati più avanti in questa guida).

### Fase 1: Creare una AWS KMS chiave
<a name="create-key"></a>

 Puoi creare una chiave simmetrica gestita dal cliente con la AWS KMS console o. AWS KMS APIs

**Per creare una chiave simmetrica gestita dal cliente**

Segui la procedura riportata in [Creazione di una chiave simmetrica gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella *Guida per gli sviluppatori di AWS Key Management Service *.

**Nota**  
*Facoltativo*: quando crei una chiave, puoi scegliere Amministratori **chiave**. Agli utenti o ai ruoli selezionati verrà concesso l'accesso alla gestione della chiave, ad esempio abilitando o disabilitando la chiave tramite l'API. Puoi anche scegliere **Utenti chiave**. A questi utenti o ruoli verrà concessa la possibilità di utilizzare la AWS KMS chiave nelle operazioni crittografiche.

### Fase 2: Impostare AWS KMS la politica chiave
<a name="create-key-policy"></a>

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per informazioni, consulta [Gestire l'accesso alle chiavi gestite dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access) nella *Guida per gli AWS Key Management Service sviluppatori*.

Di seguito è riportato un esempio di policy AWS KMS chiave da console, senza **amministratori chiave** o **utenti chiave**:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "key-consolepolicy-1",
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions for the key",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}
```

Consulta la *Guida per gli AWS Key Management Service sviluppatori* per informazioni sulla [specificazione delle autorizzazioni in una policy e sulla](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#overview-policy-elements) [risoluzione dei problemi](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam) di accesso tramite chiave. 

### Fase 3: Aggiungere una politica chiave per crittografare i log CloudWatch
<a name="encrypt-logs"></a>

 Step Functions è integrato CloudWatch per la registrazione e il monitoraggio. Quando abiliti la crittografia lato server per la tua macchina a stati utilizzando la tua chiave KMS e abiliti l'integrazione con CloudWatch Log, devi consentire di `delivery.logs.amazonaws.com` eseguire le `kms:Decrypt` azioni previste dalla tua politica chiave: AWS KMS 

```
{
  "Sid": "Enable log service delivery for integrations",
  "Effect": "Allow",
  "Principal": {
    "Service": "delivery.logs.amazonaws.com"
  },
  "Action": "kms:Decrypt",
  "Resource": "*"
}
```

Se abiliti la crittografia della macchina a stati con una AWS KMS chiave e la tua macchina a stati ha l'integrazione CloudWatch Logs abilitata, il ruolo di esecuzione della macchina a stati richiede la seguente politica:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKMSPermissionForCloudWatchLogGroup",
      "Effect": "Allow",
      "Action": "kms:GenerateDataKey",
      "Resource": "arn:aws:kms:us-east-1:123456789012:key/keyId",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
        }
      }
    }
  ]
}
```

### Fase 4: Encrypt CloudWatch Log Group *(opzionale)*
<a name="encrypt-cloudwatch-log-group"></a>

È possibile abilitare la crittografia dei log in un gruppo di CloudWatch log utilizzando la propria chiave. AWS KMS Per fare ciò, è necessario aggiungere anche la seguente politica a quella AWS KMS chiave.

**Nota**  
È possibile scegliere AWS KMS chiavi uguali o diverse per crittografare i log e le definizioni delle macchine a stati.

****  

```
{
  "Id": "key-consolepolicy-logging",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Enable log service for a single log group",
      "Effect": "Allow",
      "Principal": {
        "Service": "logs.us-east-1.amazonaws.com"
      },
      "Action": [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*"
      ],
      "Resource": "*",
      "Condition": {
        "ArnEquals": {
          "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:123456789012:log-group:LOG_GROUP_NAME"
        }
      }
    }
  ]
}
```

**Nota**  
La `Condition` sezione limita la AWS KMS chiave a un singolo gruppo di log ARN.

**Nota**  
Consulta [la documentazione sui CloudWatch log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html#cmk-permissions) per saperne di più sull'impostazione delle autorizzazioni sulla AWS KMS chiave per il tuo gruppo di log.

### Fase 5: Creare una macchina a stati
<a name="create-state-machine"></a>

Dopo aver creato una chiave e impostato la politica, è possibile utilizzare la chiave per creare una nuova macchina a stati.

Quando crei la macchina a stati, scegli **Configurazione aggiuntiva**, quindi scegli di crittografare con una chiave gestita dal cliente. È quindi possibile selezionare la chiave e impostare il periodo di riutilizzo della chiave dati da 1 minuto a 15 minuti.

Facoltativamente, puoi abilitare la registrazione impostando un livello di registro e scegliendo di crittografare il gruppo di log con la tua chiave. AWS KMS 

**Nota**  
È possibile abilitare la crittografia solo su un **nuovo gruppo di log** nella console Step Functions. Per informazioni su come associare una AWS KMS chiave a un gruppo di log esistente, consulta [Associare una AWS KMS chiave a un gruppo di log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html#associate-cmk).

Per avviare correttamente un'esecuzione per i flussi di lavoro Standard e i flussi di lavoro Asynchronous Express con chiavi gestite dal cliente, il ruolo di esecuzione richiede e autorizzazioni. `kms:Decrypt` `kms:GenerateDataKey` Il ruolo di esecuzione per l'esecuzione di Synchronous Express richiede. `kms:Decrypt` Quando crei una macchina a stati nella console e scegli **Crea un nuovo ruolo**, queste autorizzazioni vengono incluse automaticamente.

Di seguito è riportato un esempio di politica del ruolo di esecuzione:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKMSPermissionsForStepFunctionsWorkflowExecutions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/keyId"
      ],
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:states:stateMachineArn": [
            "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName"
          ]
        }
      }
    }
  ]
}
```

### Passaggio 6: richiama la macchina a stati crittografata con la tua chiave AWS KMS
<a name="invoke-encrypted-state-machine"></a>

Puoi richiamare la tua macchina a stati crittografata come faresti normalmente e i tuoi dati verranno crittografati con la tua chiave gestita dal cliente.

## Crea un'attività con una chiave gestita dal cliente
<a name="create-activity-with-cmk"></a>

La creazione di un'attività Step Functions con una chiave gestita dal cliente è simile alla creazione di una macchina a stati con una chiave gestita dal cliente. Prima di poter creare un'attività con AWS KMS chiavi gestite dal cliente, all'utente o al ruolo servono solo le AWS KMS autorizzazioni per `DescribeKey` farlo. Durante la creazione dell'attività, scegli la chiave e imposti i parametri di configurazione della crittografia.

Tieni presente che le risorse Step Functions Activity rimangono **immutabili**. Non è possibile aggiornare `encryptionConfiguration` l'ARN di un'attività esistente; è necessario creare una nuova risorsa Activity. I chiamanti agli endpoint dell'API Activity devono disporre `kms:DescribeKey` delle autorizzazioni per creare correttamente un'attività con una chiave. AWS KMS 

Quando la crittografia a chiave gestita dal cliente è abilitata su un Activity Task, il ruolo di esecuzione della macchina a stati `kms:GenerateDataKey` richiederà l'`kms:Decrypt`autorizzazione per la chiave di attività. Se stai creando questa macchina a stati dalla console Step Functions, la funzione di creazione automatica dei ruoli aggiungerà queste autorizzazioni. 

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKMSPermissionsForStepFunctionsActivities",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/keyId"
      ],
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:states:activityArn": [
            "arn:aws:states:us-east-1:123456789012:activity:activityName"
          ]
        }
      }
    }
  ]
}
```

## Definisci le politiche di AWS KMS autorizzazione con le condizioni
<a name="scope-down-kms-permission-policies-with-conditions"></a>

Puoi utilizzare il *contesto di crittografia* nelle policy chiave e nelle policy IAM `conditions` per controllare l'accesso alla tua chiave simmetrica gestita dal cliente. Per limitare l'uso di una AWS KMS chiave alle richieste di Step Functions per conto di un ruolo specifico, puoi utilizzare la `kms:ViaService` condizione.

### Ambito con contesto di crittografia
<a name="stepfunctions-encryption-context"></a>

Un [contesto di crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) è un set facoltativo di coppie chiave-valore che contengono ulteriori informazioni contestuali sui dati.

AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi per supportare la crittografia autenticata. Quando includi un contesto di crittografia in una richiesta di crittografia dei dati, AWS KMS associa il contesto di crittografia ai dati crittografati. Per decrittografare i dati, nella richiesta deve essere incluso lo stesso contesto di crittografia.

Step Functions fornisce un contesto di AWS KMS crittografia nelle operazioni crittografiche, in cui la chiave è `aws:states:stateMachineArn` per le macchine a stato o `aws:states:activityArn` per le attività e il valore è la [risorsa Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) (ARN).

**Example**  

```
"encryptionContext": {"aws:states:stateMachineArn": "arn:aws:states:region:account-id:stateMachine:stateMachineName"}
```

**Example**  

```
"encryptionContext": {"aws:states:activityArn": "arn:aws:states:region:account-id:activity:activityName"}
```

L'esempio seguente mostra come limitare l'uso di una AWS KMS chiave per i ruoli di esecuzione a macchine a stati specifiche con `kms:EncryptionContext` e la chiave di `aws:states:stateMachineArn` contesto: 

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKeyManagement",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/keyId"
      ],
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName"
        }
      }
    }
  ]
}
```

### Ambito con kms: ViaService
<a name="stepfunctions-via-service"></a>

La chiave `kms:ViaService` condizionale limita l'uso di una AWS Key Management Service chiave alle richieste provenienti da AWS servizi specifici.

La seguente politica di esempio utilizza la `kms:ViaService` condizione per consentire l'utilizzo della AWS KMS chiave per azioni specifiche solo quando la richiesta proviene da Step Functions nella `us-east-1` regione, che agisce per conto di: ExampleRole 

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow access for Key Administrators in a region",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/ExampleRole"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "states.us-east-1.amazonaws.com"
        }
      }
    }
  ]
}
```

**Nota**  
La `kms:ViaService` condizione è applicabile solo quando AWS KMS le autorizzazioni sono richieste dal chiamante dell'API (ad esempio, `CreateStateMachine` `CreateActivity``GetActivityTask`, ecc.). L'aggiunta di una `kms:ViaService` condizione a un **ruolo di esecuzione** può impedire l'avvio di una nuova esecuzione o causare il fallimento di un'esecuzione in esecuzione.

## Autorizzazioni richieste per i chiamanti API
<a name="using-api-with-encryption-required-permissions"></a>

Per richiamare le azioni dell'API Step Functions che restituiscono dati crittografati, i chiamanti necessitano di AWS KMS autorizzazioni. In alternativa, alcune azioni API hanno un'opzione (`METADATA_ONLY`) per restituire solo i metadati, eliminando la necessità di autorizzazioni. AWS KMS Per informazioni, consulta l'API Step Functions.

Affinché un'esecuzione venga completata correttamente quando si utilizza la crittografia a chiave gestita dal cliente, è necessario concedere il ruolo di esecuzione `kms:GenerateDataKey` e utilizzare `kms:Decrypt` le autorizzazioni per AWS KMS le chiavi dalla macchina a stati.

La tabella seguente mostra le AWS KMS autorizzazioni da fornire ai chiamanti dell'API Step Functions per l' APIs utilizzo della chiave **di AWS KMS State Machine**. Puoi fornire le autorizzazioni alla policy chiave o alla policy IAM per il ruolo. 


|  |  | 
| --- |--- |
|  APIs utilizzando la chiave di State Machine AWS KMS   |  Richiesto dal chiamante  | 
|  CreateStateMachine  |  kms:DescribeKey, kms:GenerateDataKey  | 
|  UpdateStateMachine  |  kms:DescribeKey, kms:GenerateDataKey  | 
|  DescribeStateMachine  |  kms:Decrittografa  | 
|  DescribeStateMachineForExecution  |  kms:Decrittografare  | 
|  StartExecution  |  --  | 
|  StartSyncExecution  |  kms:Decrittografare  | 
|  SendTaskSuccess  |  --  | 
|  SendTaskFailure  |  --  | 
|  StopExecution  |  --  | 
|  RedriveExecution  |  --  | 
|  DescribeExecution  |  kms:Decrittografare  | 
|  GetExecutionHistory  |  kms:Decrittografare  | 

 La tabella seguente mostra le AWS KMS autorizzazioni che devi fornire ai chiamanti dell'API Step Functions per l' APIs utilizzo della chiave **Activity**. AWS KMS Puoi fornire le autorizzazioni nella policy chiave o nella policy IAM per il ruolo. 


|  |  | 
| --- |--- |
|  APIs utilizzando la chiave di Activity AWS KMS   |  Richiesto dal chiamante  | 
|  CreateActivity  |  kms:DescribeKey  | 
|  GetActivityTask  |  kms:Decrittografa  | 

**Quando concedo le autorizzazioni al chiamante o al ruolo di esecuzione?**  
Quando un ruolo o un utente IAM chiama l'API Step Functions, il servizio Step Functions chiama per AWS KMS conto del chiamante API. In questo caso, devi concedere AWS KMS l'autorizzazione al chiamante dell'API. Quando un ruolo di esecuzione chiama AWS KMS direttamente, è necessario concedere AWS KMS le autorizzazioni per il ruolo di esecuzione.

## CloudFormation risorse per la configurazione della crittografia
<a name="cfn-resources-for-encryption-configuration"></a>

 CloudFormation i tipi di risorse per Step Functions possono fornire a macchine a stati e risorse di attività configurazioni di crittografia. 

 Per impostazione predefinita, Step Functions fornisce una crittografia trasparente lato server. Entrambi [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html)accettano una `EncryptionConfiguration` proprietà opzionale che può configurare una AWS KMS chiave gestita dal cliente per la crittografia lato server. 

**Prerequisito:** prima di poter creare una macchina a stati con AWS KMS chiavi gestite dal cliente, l'utente o il ruolo devono disporre delle AWS KMS autorizzazioni per e. `DescribeKey` `GenerateDataKey`

 Gli aggiornamenti a [non StateMachine richiedono interruzioni.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) Gli aggiornamenti alle risorse Activity richiedono: [Sostituzione](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement). 

 Per dichiarare una **`EncryptionConfiguration`**proprietà nel CloudFormation modello, utilizzate la seguente sintassi: 

 **JSON**

```
{
  "KmsKeyId" : String,
  "KmsDataKeyReusePeriodSeconds" : Integer,
  "Type" : String
}
```

 **YAML**

```
KmsKeyId: String
KmsDataKeyReusePeriodSeconds: Integer
Type: String
```

 **Proprietà**
+ **Tipo**: opzione di crittografia per la macchina a stati o l'attività. *Valori consentiti*: `CUSTOMER_MANAGED_KMS_KEY` \$1 `AWS_OWNED_KEY`
+ **KmsKeyId**- Alias, alias ARN, ID chiave o ARN chiave della chiave di crittografia simmetrica che crittografa la chiave dati. AWS KMS Per specificare una AWS KMS chiave in un AWS account diverso, il cliente deve utilizzare la chiave ARN o l'alias ARN. Per informazioni in merito kmsKeyId, vedere [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)nei documenti. AWS KMS 
+ **KmsDataKeyReusePeriodSeconds**- Durata massima per la quale SFN riutilizzerà le chiavi dati. Alla scadenza del periodo, Step Functions `GenerateDataKey` chiamerà. Questa impostazione può essere impostata solo quando **Type** è`CUSTOMER_MANAGED_KMS_KEY`. Il valore può variare da 60 a 900 secondi. Il valore predefinito è 300 secondi.

### CloudFormation esempi
<a name="cfn-examples"></a>

#### Esempio: StateMachine con chiave gestita dal cliente
<a name="statemachine-with-managed-key"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Description: An example template for a Step Functions State Machine.
Resources:
  MyStateMachine:
    Type: AWS::StepFunctions::StateMachine
    Properties:
      StateMachineName: HelloWorld-StateMachine
      Definition:
        StartAt: PassState
        States:
          PassState:
            Type: Pass
            End: true
      RoleArn: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/example"
      EncryptionConfiguration:
        KmsKeyId: !Ref MyKmsKey
        KmsDataKeyReusePeriodSeconds: 100
        Type: CUSTOMER_MANAGED_KMS_KEY

  MyKmsKey:
    Type: AWS::KMS::Key
    Properties:
      Description: Symmetric KMS key used for encryption/decryption
```

#### Esempio: attività con chiave gestita dal cliente
<a name="activity-with-managed-key"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Description: An example template for a Step Functions Activity.
Resources:
  Activity:
    Type: AWS::StepFunctions::Activity
    Properties:
      Name: ActivityWithKmsEncryption
      EncryptionConfiguration:
        KmsKeyId: !Ref MyKmsKey
        KmsDataKeyReusePeriodSeconds: 100
        Type: CUSTOMER_MANAGED_KMS_KEY

  MyKmsKey:
    Type: AWS::KMS::Key
    Properties:
      Description: Symmetric KMS key used for encryption/decryption
```

#### L'aggiornamento della crittografia per un'attività richiede la creazione di una nuova risorsa
<a name="updating-encryption-for-an-activity-requires-creating-a-new-resource"></a>

 La configurazione delle attività è immutabile e i nomi delle risorse devono essere univoci. Per impostare le chiavi gestite dal cliente per la crittografia, devi creare una **nuova** attività. Se tenti di modificare la configurazione nel tuo modello CFN per un'attività esistente, riceverai un'`ActivityAlreadyExists`eccezione. 

 Per aggiornare la tua attività in modo da includere le chiavi gestite dai clienti, imposta un nuovo nome di attività nel tuo modello CFN. Di seguito viene mostrato un esempio di creazione di una nuova attività con una configurazione a chiave gestita dal cliente: 

 **Definizione dell'attività esistente**

```
AWSTemplateFormatVersion: '2010-09-09'
  Description: An example template for a new Step Functions Activity.
  Resources:
    Activity:
    Type: AWS::StepFunctions::Activity
    Properties:
      Name: ActivityName
      EncryptionConfiguration:
        Type: AWS_OWNED_KEY
```

 **Nuova definizione di attività**

```
AWSTemplateFormatVersion: '2010-09-09'
  Description: An example template for a Step Functions Activity.
  Resources:
    Activity:
      Type: AWS::StepFunctions::Activity
      Properties:
        Name: ActivityWithKmsEncryption
        EncryptionConfiguration:
          KmsKeyId: !Ref MyKmsKey
          KmsDataKeyReusePeriodSeconds: 100
          Type: CUSTOMER_MANAGED_KMS_KEY

    MyKmsKey:
      Type: AWS::KMS::Key
      Properties:
        Description: Symmetric KMS key used for encryption/decryption
```

## Monitoraggio dell'utilizzo delle chiavi di crittografia
<a name="monitoring-encryption-keys"></a>

Quando utilizzi una chiave gestita AWS KMS dal cliente per crittografare le tue risorse Step Functions, puoi utilizzarla CloudTrail per tenere traccia delle richieste a cui Step Functions invia. AWS KMS

È inoltre possibile utilizzare il contesto di crittografia nei record e nei log di audit per identificare come viene utilizzata la chiave gestita dal cliente. Il contesto di crittografia appare anche nei log generati da. [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)

Gli esempi seguenti sono CloudTrail eventi per `Decrypt` e per `GenerateDataKey` monitorare AWS KMS le operazioni chiamate da Step Functions per accedere ai dati crittografati dalla chiave gestita dal cliente: `DescribeKey`

------
#### [ Decrypt ]

Quando si accede a una macchina a stati o a un'attività crittografata, Step Functions richiama l'`Decrypt`operazione per utilizzare la chiave dati crittografata memorizzata per accedere ai dati crittografati. 

L’evento di esempio seguente registra l’operazione `Decrypt`:

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "111122223333:Sampleuser01",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "111122223333:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "userName": "Admin"
      },
      "attributes": {
        "creationDate": "2024-07-05T21:06:27Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "states.amazonaws.com"
  },
  "eventTime": "2024-07-05T21:12:21Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "Decrypt",
  "awsRegion": "aa-example-1",
  "sourceIPAddress": "states.amazonaws.com",
  "userAgent": "states.amazonaws.com",
  "requestParameters": {
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "encryptionContext": {
            "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1"
        }
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ DescribeKey ]

Step Functions utilizza l'`DescribeKey`operazione per verificare se la chiave gestita AWS KMS dal cliente associata alla tua State Machine o Activity esiste nell'account e nella regione.

L’evento di esempio seguente registra l’operazione `DescribeKey`:

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "111122223333:Sampleuser01",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "111122223333:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "userName": "Admin"
      },
      "attributes": {
        "creationDate": "2024-07-05T21:06:27Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "states.amazonaws.com"
  },
  "eventTime": "2024-07-05T21:12:21Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "DescribeKey",
  "awsRegion": "aa-example-1",
  "sourceIPAddress": "states.amazonaws.com",
  "userAgent": "states.amazonaws.com",
  "requestParameters": {
    "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
  },
  "responseElements": null,
  "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "readOnly": true,
  "resources": [
    {
      "accountId": "111122223333",
      "type": "AWS::KMS::Key",
      "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": "111122223333",
  "eventCategory": "Management",
  "sessionCredentialFromConsole": "true"
}
```

------
#### [ GenerateDataKey ]

Quando abiliti una chiave gestita AWS KMS dal cliente per la tua State Machine o Activity, Step Functions invia una `GenerateDataKey` richiesta per ottenere una chiave dati per la definizione o l'esecuzione della macchina a stati crittografati.

L’evento di esempio seguente registra l’operazione `GenerateDataKey`:

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "111122223333:Sampleuser01",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "111122223333:Sampleuser01",
        "arn": "arn:aws:iam::111122223333:role/Admin",
        "accountId": "111122223333",
        "userName": "Admin"
      },
      "attributes": {
        "creationDate": "2024-07-05T21:06:27Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "states.amazonaws.com"
  },
  "eventTime": "2024-07-05T21:12:21Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "GenerateDataKey",
  "awsRegion": "aa-example-1",
  "sourceIPAddress": "states.amazonaws.com",
  "userAgent": "states.amazonaws.com",
  "requestParameters": {
    "keySpec": "AES_256",
    "encryptionContext": {
      "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1"
    },
    "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
  },
  "responseElements": null,
  "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "readOnly": true,
  "resources": [
    {
      "accountId": "111122223333",
      "type": "AWS::KMS::Key",
      "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": "111122223333",
  "eventCategory": "Management"
}
```

------

## FAQs
<a name="faqs"></a>

### Cosa succede se la mia chiave viene contrassegnata per l'eliminazione o eliminata AWS KMS?
<a name="what-happens-if-my-key-is-marked-for-deletion-or-deleted-in-kms-"></a>

 Se la chiave viene eliminata o contrassegnata per l'eliminazione in AWS KMS, tutte le relative esecuzioni in esecuzione avranno esito negativo. Le nuove esecuzioni non possono essere avviate finché non si rimuove o si modifica la chiave associata al flusso di lavoro. ***Dopo l'eliminazione di una AWS KMS chiave, tutti i dati crittografati associati all'esecuzione del flusso di lavoro rimarranno crittografati e non potranno più essere decrittografati, rendendo i dati irrecuperabili.*** 

### Cosa succede se una chiave è disattivata AWS KMS ? AWS KMS
<a name="what-happens-if-a-kms-key-is-disabled-in-kms-"></a>

 Se una AWS KMS chiave è disabilitata in AWS KMS, tutte le relative esecuzioni in esecuzione falliranno. Non è possibile avviare nuove esecuzioni. Non è più possibile decrittografare i dati crittografati con quella AWS KMS chiave disattivata finché non viene riattivata. 

### Cosa succede agli eventi di modifica dello stato di esecuzione inviati a? EventBridge
<a name="what-happens-to-execution-status-change-events-sent-to-ev-"></a>

 L'input, l'output, l'errore e la causa di esecuzione non verranno inclusi per gli eventi di modifica dello stato di esecuzione per i flussi di lavoro crittografati utilizzando la AWS KMS chiave gestita dal cliente. 

## Ulteriori informazioni
<a name="learn-more-data-at-rest-encryption"></a>

Per informazioni sulla crittografia dei dati inattivi, consulta [AWS Key Management Service i concetti](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) e [le migliori pratiche di sicurezza AWS Key Management Service nella Guida per](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) *gli AWS Key Management Service sviluppatori*.

# Crittografia dei dati in transito in Step Functions
<a name="encryption-in-transit"></a>

Step Functions crittografa i dati in transito tra il servizio e altri AWS servizi integrati (vedi[Integrazione dei servizi con Step Functions](integrate-services.md)). Tutti i dati che passano tra Step Functions e i servizi integrati sono crittografati utilizzando Transport Layer Security (TLS).

# Identity and Access Management in Step Functions
<a name="auth-and-access-control-sfn"></a>

Le seguenti sezioni forniscono dettagli su come utilizzare [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) e Step Functions per proteggere le risorse controllando chi può accedervi. Ad esempio, imparerai come fornire alle credenziali AWS Step Functions le autorizzazioni per accedere alle AWS risorse, ad esempio recuperare i dati degli eventi da altre risorse. AWS 

AWS Identity and Access Management (IAM) è un sistema Servizio AWS che aiuta un amministratore a controllare in modo sicuro l'accesso alle risorse. AWS Gli amministratori IAM controllano chi può essere *autenticato* (effettuato l'accesso) e *autorizzato* (dispone delle autorizzazioni) a utilizzare le risorse Step Functions. IAM è uno Servizio AWS strumento che puoi utilizzare senza costi aggiuntivi.

## Destinatari
<a name="security_iam_audience"></a>

Il modo in cui utilizzi AWS Identity and Access Management (IAM) varia in base al tuo ruolo:
+ **Utente del servizio**: richiedi le autorizzazioni all’amministratore se non riesci ad accedere alle funzionalità (consulta [Risoluzione dei problemi di identità e accesso in Step Functions](security_iam_troubleshoot.md))
+ **Amministratore del servizio**: determina l’accesso degli utenti e invia le richieste di autorizzazione (consulta [Come AWS Step Functions funziona con IAM](security_iam_service-with-iam.md))
+ **Amministratore IAM**: scrivi policy per gestire l’accesso (consulta [Esempi di policy basate sull'identità per AWS Step Functions](security_iam_id-based-policy-examples.md))

## Autenticazione con identità
<a name="security_iam_authentication"></a>

L'autenticazione è il modo in cui accedi AWS utilizzando le tue credenziali di identità. Devi autenticarti come utente IAM o assumendo un ruolo IAM. Utente root dell'account AWS

Puoi accedere come identità federata utilizzando credenziali provenienti da una fonte di identità come AWS IAM Identity Center (IAM Identity Center), autenticazione Single Sign-On o credenziali. Google/Facebook Per ulteriori informazioni sull’accesso, consulta [Come accedere all’ Account AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) nella *Guida per l’utente di Accedi ad AWS *.

Per l'accesso programmatico, AWS fornisce un SDK e una CLI per firmare crittograficamente le richieste. Per ulteriori informazioni, consulta [AWS Signature Version 4 per le richieste API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) nella *Guida per l’utente di IAM*.

### Account AWS utente root
<a name="security_iam_authentication-rootuser"></a>

 Quando si crea un Account AWS, si inizia con un'identità di accesso denominata *utente Account AWS root* che ha accesso completo a tutte Servizi AWS le risorse. Consigliamo vivamente di non utilizzare l’utente root per le attività quotidiane. Per le attività che richiedono le credenziali dell’utente root, consulta [Attività che richiedono le credenziali dell’utente root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) nella *Guida per l’utente IAM*. 

### Identità federata
<a name="security_iam_authentication-federated"></a>

Come procedura ottimale, richiedi agli utenti umani di utilizzare la federazione con un provider di identità per accedere Servizi AWS utilizzando credenziali temporanee.

Un'*identità federata* è un utente della directory aziendale, del provider di identità Web o Directory Service che accede Servizi AWS utilizzando le credenziali di una fonte di identità. Le identità federate assumono ruoli che forniscono credenziali temporanee.

Per la gestione centralizzata degli accessi, si consiglia di utilizzare AWS IAM Identity Center. Per ulteriori informazioni, consulta [Che cos’è il Centro identità IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) nella *Guida per l’utente di AWS IAM Identity Center *.

### Utenti e gruppi IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* è una identità che dispone di autorizzazioni specifiche per una singola persona o applicazione. Ti consigliamo di utilizzare credenziali temporanee invece di utenti IAM con credenziali a lungo termine. *Per ulteriori informazioni, consulta [Richiedere agli utenti umani di utilizzare la federazione con un provider di identità per accedere AWS utilizzando credenziali temporanee](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) nella Guida per l'utente IAM.*

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) specifica una raccolta di utenti IAM e semplifica la gestione delle autorizzazioni per gestire gruppi di utenti di grandi dimensioni. Per ulteriori informazioni, consulta [Casi d’uso per utenti IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) nella *Guida per l’utente di IAM*.

### Ruoli IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* è un’identità con autorizzazioni specifiche che fornisce credenziali temporanee. Puoi assumere un ruolo [passando da un ruolo utente a un ruolo IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o chiamando un'operazione AWS CLI o AWS API. Per ulteriori informazioni, consulta [Metodi per assumere un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) nella *Guida per l’utente di IAM*.

I ruoli IAM sono utili per l’accesso degli utenti federati, le autorizzazioni utente IAM temporanee, l’accesso multi-account, l’accesso multi-servizio e le applicazioni in esecuzione su Amazon EC2. Per maggiori informazioni, consultare [Accesso a risorse multi-account in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) nella *Guida per l’utente IAM*.

## Gestione dell’accesso tramite policy
<a name="security_iam_access-manage"></a>

Puoi controllare l'accesso AWS creando policy e associandole a AWS identità o risorse. Una policy definisce le autorizzazioni quando è associata a un'identità o a una risorsa. AWS valuta queste politiche quando un preside effettua una richiesta. La maggior parte delle politiche viene archiviata AWS come documenti JSON. Per maggiori informazioni sui documenti delle policy JSON, consulta [Panoramica delle policy JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) nella *Guida per l’utente IAM*.

Utilizzando le policy, gli amministratori specificano chi ha accesso a cosa definendo quale **principale** può eseguire **azioni** su quali **risorse** e in quali **condizioni**.

Per impostazione predefinita, utenti e ruoli non dispongono di autorizzazioni. Un amministratore IAM crea le policy IAM e le aggiunge ai ruoli, che gli utenti possono quindi assumere. Le policy IAM definiscono le autorizzazioni indipendentemente dal metodo utilizzato per eseguirle.

### Policy basate sull’identità
<a name="security_iam_access-manage-id-based-policies"></a>

Le policy basate su identità sono documenti di policy di autorizzazione JSON che è possibile collegare a un’identità (utente, gruppo o ruolo). Tali policy controllano le operazioni autorizzate per l’identità, nonché le risorse e le condizioni in cui possono essere eseguite. Per informazioni su come creare una policy basata su identità, consultare [Definizione di autorizzazioni personalizzate IAM con policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *Guida per l’utente IAM*.

Le policy basate su identità possono essere *policy in linea* (con embedding direttamente in una singola identità) o *policy gestite* (policy autonome collegate a più identità). Per informazioni su come scegliere tra una policy gestita o una policy inline, consulta [Scegliere tra policy gestite e policy in linea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) nella *Guida per l’utente di IAM*.

### Policy basate sulle risorse
<a name="security_iam_access-manage-resource-based-policies"></a>

Le policy basate su risorse sono documenti di policy JSON che è possibile collegare a una risorsa. Gli esempi includono le *policy di trust dei ruoli* IAM e le *policy dei bucket* di Amazon S3. Nei servizi che supportano policy basate sulle risorse, gli amministratori dei servizi possono utilizzarli per controllare l’accesso a una risorsa specifica. In una policy basata sulle risorse è obbligatorio [specificare un’entità principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

Le policy basate sulle risorse sono policy inline che si trovano in tale servizio. Non è possibile utilizzare le policy AWS gestite di IAM in una policy basata sulle risorse.

### Altri tipi di policy
<a name="security_iam_access-manage-other-policies"></a>

AWS supporta tipi di policy aggiuntivi che possono impostare le autorizzazioni massime concesse dai tipi di policy più comuni:
+ **Limiti delle autorizzazioni**: imposta il numero massimo di autorizzazioni che una policy basata su identità ha la possibilità di concedere a un’entità IAM. Per ulteriori informazioni, consulta [Limiti delle autorizzazioni per le entità IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) nella *Guida per l’utente di IAM*.
+ **Politiche di controllo del servizio (SCPs)**: specificano le autorizzazioni massime per un'organizzazione o un'unità organizzativa in. AWS Organizations Per ulteriori informazioni, consultare [Policy di controllo dei servizi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) nella *Guida per l’utente di AWS Organizations *.
+ **Politiche di controllo delle risorse (RCPs)**: imposta le autorizzazioni massime disponibili per le risorse nei tuoi account. Per ulteriori informazioni, consulta [Politiche di controllo delle risorse (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) nella *Guida per l'AWS Organizations utente*.
+ **Policy di sessione**: policy avanzate passate come parametro quando si crea una sessione temporanea per un ruolo o un utente federato. Per maggiori informazioni, consultare [Policy di sessione](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) nella *Guida per l’utente IAM*.

### Più tipi di policy
<a name="security_iam_access-manage-multiple-policies"></a>

Quando a una richiesta si applicano più tipi di policy, le autorizzazioni risultanti sono più complicate da comprendere. Per scoprire come si AWS determina se consentire o meno una richiesta quando sono coinvolti più tipi di policy, consulta [Logica di valutazione delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) nella *IAM User Guide*.

## Controllo degli accessi
<a name="access-control-sfn"></a>

Puoi avere credenziali valide per autenticare le tue richieste, ma a meno che tu non disponga delle autorizzazioni non puoi creare o accedere alle risorse Step Functions. Ad esempio, devi disporre delle autorizzazioni per invocare obiettivi AWS Lambda Amazon Simple Notification Service (Amazon SNS) e Amazon Simple Queue Service (Amazon SQS) associati alle tue regole Step Functions.

Le seguenti sezioni descrivono come gestire le autorizzazioni per Step Functions.
+ [Creazione di un ruolo IAM per la tua macchina a stati in Step Functions](procedure-create-iam-role.md)
+ [Creazione di autorizzazioni granulari per utenti non amministratori in Step Functions](concept-create-iam-advanced.md)
+ [Creazione di endpoint Amazon VPC per Step Functions](vpc-endpoints.md)
+ [In che modo Step Functions genera policy IAM per servizi integrati](service-integration-iam-templates.md)
+ [Politiche IAM per l'utilizzo degli stati della mappa distribuita](iam-policies-eg-dist-map.md)

# Come AWS Step Functions funziona con IAM
<a name="security_iam_service-with-iam"></a>

Prima di utilizzare IAM per gestire l'accesso a Step Functions, scopri quali funzionalità IAM sono disponibili per l'uso con Step Functions.

La tabella seguente elenca le funzionalità IAM che puoi utilizzare con AWS Step Functions:


| Funzionalità IAM | Supporto Step Functions | 
| --- | --- | 
|  [Policy basate sull’identità](#security_iam_service-with-iam-id-based-policies)  |   Sì  | 
|  [Policy basate su risorse](#security_iam_service-with-iam-resource-based-policies)  |   No   | 
|  [Operazioni di policy](#security_iam_service-with-iam-id-based-policies-actions)  |   Sì  | 
|  [Risorse relative alle policy](#security_iam_service-with-iam-id-based-policies-resources)  |   Sì  | 
|  [Chiavi di condizione della policy (specifica del servizio)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sì  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   No   | 
|  [ABAC (tag nelle policy)](#security_iam_service-with-iam-tags)  |   Parziale  | 
|  [Credenziali temporanee](#security_iam_service-with-iam-roles-tempcreds)  |   Sì  | 
|  [Autorizzazioni del principale](#security_iam_service-with-iam-principal-permissions)  |   Sì  | 
|  [Ruoli di servizio](#security_iam_service-with-iam-roles-service)  |   Sì  | 
|  [Ruoli collegati al servizio](#security_iam_service-with-iam-roles-service-linked)  |   No   | 

Per avere una visione di alto livello di come Step Functions e altri AWS servizi funzionano con la maggior parte delle funzionalità IAM, consulta [AWS i servizi che funzionano con IAM nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) *User Guide*.

## Politiche basate sull'identità per Step Functions
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Supporta le policy basate sull’identità:** sì

Le policy basate sull'identità sono documenti di policy di autorizzazione JSON che è possibile allegare a un'identità (utente, gruppo di utenti o ruolo IAM). Tali policy definiscono le operazioni che utenti e ruoli possono eseguire, su quali risorse e in quali condizioni. Per informazioni su come creare una policy basata su identità, consulta [Definizione di autorizzazioni personalizzate IAM con policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *Guida per l’utente di IAM*.

Con le policy basate sull’identità di IAM, è possibile specificare quali operazioni e risorse sono consentite o respinte, nonché le condizioni in base alle quali le operazioni sono consentite o respinte. Per informazioni su tutti gli elementi utilizzabili in una policy JSON, consulta [Guida di riferimento agli elementi delle policy JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) nella *Guida per l’utente IAM*.

### Esempi di policy basate sull'identità per Step Functions
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Per visualizzare esempi di politiche basate sull'identità di Step Functions, vedere. [Esempi di policy basate sull'identità per AWS Step Functions](security_iam_id-based-policy-examples.md)

## Politiche basate sulle risorse all'interno di Step Functions
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Supporta le policy basate su risorse:** no 

Le policy basate su risorse sono documenti di policy JSON che è possibile collegare a una risorsa. Esempi di policy basate sulle risorse sono le *policy di attendibilità dei ruoli* IAM e le *policy di bucket* Amazon S3. Nei servizi che supportano policy basate sulle risorse, gli amministratori dei servizi possono utilizzarli per controllare l’accesso a una risorsa specifica. Quando è collegata a una risorsa, una policy definisce le operazioni che un principale può eseguire su tale risorsa e a quali condizioni. In una policy basata sulle risorse è obbligatorio [specificare un’entità principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). I principali possono includere account, utenti, ruoli, utenti federati o. Servizi AWS

Per consentire l’accesso multi-account, è possibile specificare un intero account o entità IAM in un altro account come entità principale in una policy basata sulle risorse. Per ulteriori informazioni, consulta [Accesso a risorse multi-account in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) nella *Guida per l’utente IAM*.

## Azioni politiche per Step Functions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Supporta le operazioni di policy:** si

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L'elemento `Action` di una policy JSON descrive le operazioni che è possibile utilizzare per consentire o negare l'accesso in una policy. Includere le operazioni in una policy per concedere le autorizzazioni a eseguire l’operazione associata.

Per visualizzare un elenco delle azioni di Step Functions, vedere [Resources Defined by AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) nel *Service Authorization Reference*.

Le azioni politiche in Step Functions utilizzano il seguente prefisso prima dell'azione:

```
states
```

Per specificare più operazioni in una sola istruzione, occorre separarle con la virgola.

```
"Action": [
          "states:action1",
          "states:action2"
             ]
```

Per visualizzare esempi di politiche basate sull'identità di Step Functions, vedere. [Esempi di policy basate sull'identità per AWS Step Functions](security_iam_id-based-policy-examples.md)

## Risorse politiche per Step Functions
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Supporta le risorse relative alle policy:** sì

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L’elemento JSON `Resource` della policy specifica l’oggetto o gli oggetti ai quali si applica l’operazione. Come best practice, specifica una risorsa utilizzando il suo [nome della risorsa Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Per le azioni che non supportano le autorizzazioni a livello di risorsa, si utilizza un carattere jolly (\$1) per indicare che l’istruzione si applica a tutte le risorse.

```
"Resource": "*"
```

Per visualizzare un elenco dei tipi di risorse Step Functions e relativi ARNs, vedere [Actions Defined by AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) nel *Service Authorization Reference*. Per sapere con quali azioni è possibile specificare l'ARN di ogni risorsa, vedere [Risorse definite](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) da. AWS Step Functions

Per visualizzare esempi di politiche basate sull'identità di Step Functions, vedere. [Esempi di policy basate sull'identità per AWS Step Functions](security_iam_id-based-policy-examples.md)

## Tasti relativi alle condizioni delle policy per Step Functions
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Supporta le chiavi di condizione delle policy specifiche del servizio:** sì

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. In altre parole, quale **entità principale** può eseguire **operazioni** su quali **risorse** e in quali **condizioni**.

L’elemento `Condition` specifica quando le istruzioni vengono eseguite in base a criteri definiti. È possibile compilare espressioni condizionali che utilizzano [operatori di condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), ad esempio uguale a o minore di, per soddisfare la condizione nella policy con i valori nella richiesta. Per visualizzare tutte le chiavi di condizione AWS globali, consulta le chiavi di [contesto delle condizioni AWS globali nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) per l'*utente IAM*.

Per visualizzare un elenco dei tasti di condizione di Step Functions, vedere [Condition Keys for AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) nel *Service Authorization Reference*. Per sapere con quali azioni e risorse puoi utilizzare una chiave di condizione, vedi [Risorse definite da AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

 Se la tua politica deve dipendere dal nome principale del servizio Step Functions, ti consigliamo di verificare l'esistenza o l'inesistenza di `states.amazonaws.com` nella chiave di [contesto `aws:PrincipalServiceNamesList` multivalore, anziché nella chiave](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) di condizione. `aws:PrincipalServiceName` La chiave di `aws:PrincipalServiceName` condizione contiene solo una voce dall'elenco dei nomi principali del servizio e potrebbe non esserlo sempre. `states.amazonaws.com` Il seguente blocco di condizioni dimostra la verifica dell'esistenza di`states.amazonaws.com`. 

```
{
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:PrincipalServiceNamesList": "states.amazonaws.com"
        }
    }
}
```

Per visualizzare esempi di politiche basate sull'identità di Step Functions, vedere. [Esempi di policy basate sull'identità per AWS Step Functions](security_iam_id-based-policy-examples.md)

## ACLs in Step Functions
<a name="security_iam_service-with-iam-acls"></a>

**Supporti ACLs:** no 

Le liste di controllo degli accessi (ACLs) controllano quali principali (membri dell'account, utenti o ruoli) dispongono delle autorizzazioni per accedere a una risorsa. ACLs sono simili alle politiche basate sulle risorse, sebbene non utilizzino il formato del documento di policy JSON.

## ABAC con Step Functions
<a name="security_iam_service-with-iam-tags"></a>

**Supporta ABAC (tag nelle policy):** parzialmente

Il controllo degli accessi basato su attributi (ABAC) è una strategia di autorizzazione che definisce le autorizzazioni in base agli attributi, chiamati tag. Puoi allegare tag a entità e AWS risorse IAM, quindi progettare politiche ABAC per consentire le operazioni quando il tag del principale corrisponde al tag sulla risorsa.

Per controllare l’accesso basato su tag, fornire informazioni sui tag nell’[elemento condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) di una policy utilizzando le chiavi di condizione `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`.

Se un servizio supporta tutte e tre le chiavi di condizione per ogni tipo di risorsa, il valore per il servizio è **Sì**. Se un servizio supporta tutte e tre le chiavi di condizione solo per alcuni tipi di risorsa, allora il valore sarà **Parziale**.

Per maggiori informazioni su ABAC, consulta [Definizione delle autorizzazioni con autorizzazione ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) nella *Guida per l’utente di IAM*. Per visualizzare un tutorial con i passaggi per l’impostazione di ABAC, consulta [Utilizzo del controllo degli accessi basato su attributi (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) nella *Guida per l’utente di IAM*.

## Utilizzo di credenziali temporanee con Step Functions
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Supporta le credenziali temporanee:** sì

Le credenziali temporanee forniscono un accesso a breve termine alle AWS risorse e vengono create automaticamente quando si utilizza la federazione o si cambia ruolo. AWS consiglia di generare dinamicamente credenziali temporanee anziché utilizzare chiavi di accesso a lungo termine. Per ulteriori informazioni, consulta [Credenziali di sicurezza temporanee in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) e [Servizi AWS compatibili con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) nella *Guida per l’utente IAM*.

## Autorizzazioni principali per diversi servizi per Step Functions
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Supporta l’inoltro delle sessioni di accesso (FAS):** sì

 Le sessioni di accesso diretto (FAS) utilizzano le autorizzazioni del principale chiamante an Servizio AWS, combinate con la richiesta di effettuare richieste Servizio AWS ai servizi downstream. Per i dettagli delle policy relative alle richieste FAS, consulta [Forward access sessions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Ruoli di servizio per Step Functions
<a name="security_iam_service-with-iam-roles-service"></a>

**Supporta i ruoli di servizio:** sì

 Un ruolo di servizio è un [ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) che un servizio assume per eseguire operazioni per tuo conto. Un amministratore IAM può creare, modificare ed eliminare un ruolo di servizio dall’interno di IAM. Per ulteriori informazioni, consulta [Create a role to delegate permissions to an Servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella *Guida per l’utente IAM*. 

**avvertimento**  
La modifica delle autorizzazioni per un ruolo di servizio potrebbe interrompere la funzionalità di Step Functions. Modifica i ruoli di servizio solo quando Step Functions fornisce indicazioni in tal senso.

## Ruoli collegati ai servizi per Step Functions
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Supporta i ruoli collegati ai servizi:** no 

 Un ruolo collegato al servizio è un tipo di ruolo di servizio collegato a un. Servizio AWS Il servizio può assumere il ruolo per eseguire un’operazione per tuo conto. I ruoli collegati al servizio vengono visualizzati nel tuo account Account AWS e sono di proprietà del servizio. Un amministratore IAM può visualizzare le autorizzazioni per i ruoli collegati al servizio, ma non modificarle. 

Per ulteriori informazioni su come creare e gestire i ruoli collegati ai servizi, consulta [Servizi AWS supportati da IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Trova un servizio nella tabella che include un `Yes` nella colonna **Service-linked role (Ruolo collegato ai servizi)**. Scegli il collegamento **Sì** per visualizzare la documentazione relativa al ruolo collegato ai servizi per tale servizio.

# Esempi di policy basate sull'identità per AWS Step Functions
<a name="security_iam_id-based-policy-examples"></a>

Per impostazione predefinita, gli utenti e i ruoli non dispongono dell'autorizzazione per creare o modificare le risorse Step Functions. Per concedere agli utenti l’autorizzazione a eseguire azioni sulle risorse di cui hanno bisogno, un amministratore IAM può creare policy IAM.

Per informazioni su come creare una policy basata su identità IAM utilizzando questi documenti di policy JSON di esempio, consulta [Creazione di policy IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) nella *Guida per l’utente di IAM*.

Per i dettagli sulle azioni e sui tipi di risorse definiti da Step Functions, incluso il formato di ARNs per ogni tipo di risorsa, vedere [Actions, Resources and Condition Keys AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) nel *Service Authorization Reference*.

**Topics**
+ [Best practice per le policy](#security_iam_service-with-iam-policy-best-practices)
+ [Utilizzo della console Step Functions](#security_iam_id-based-policy-examples-console)
+ [Consentire agli utenti di visualizzare le loro autorizzazioni](#security_iam_id-based-policy-examples-view-own-permissions)

## Best practice per le policy
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare le risorse Step Functions nel tuo account. Queste azioni possono comportare costi aggiuntivi per l’ Account AWS. Quando si creano o modificano policy basate sull’identità, seguire queste linee guida e raccomandazioni:
+ **Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni** *a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS * Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per maggiori informazioni, consulta [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o [Policy gestite da AWS per le funzioni dei processi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) nella *Guida per l’utente di IAM*.
+ **Applicazione delle autorizzazioni con privilegio minimo** - Quando si impostano le autorizzazioni con le policy IAM, concedere solo le autorizzazioni richieste per eseguire un’attività. È possibile farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come *autorizzazioni con privilegio minimo*. Per maggiori informazioni sull’utilizzo di IAM per applicare le autorizzazioni, consulta [Policy e autorizzazioni in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) nella *Guida per l’utente di IAM*.
+ **Condizioni d’uso nelle policy IAM per limitare ulteriormente l’accesso** - Per limitare l’accesso ad azioni e risorse è possibile aggiungere una condizione alle policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. Puoi anche utilizzare le condizioni per concedere l'accesso alle azioni del servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per maggiori informazioni, consultare la sezione [Elementi delle policy JSON di IAM: condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) nella *Guida per l’utente di IAM*.
+ **Utilizzo dello strumento di analisi degli accessi IAM per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali** - Lo strumento di analisi degli accessi IAM convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio (JSON) della policy IAM e alle best practice di IAM. Lo strumento di analisi degli accessi IAM offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per maggiori informazioni, consultare [Convalida delle policy per il Sistema di analisi degli accessi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) nella *Guida per l’utente di IAM*.
+ **Richiedi l'autenticazione a più fattori (MFA**): se hai uno scenario che richiede utenti IAM o un utente root nel Account AWS tuo, attiva l'MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungere le condizioni MFA alle policy. Per maggiori informazioni, consultare [Protezione dell’accesso API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) nella *Guida per l’utente di IAM*.

Per maggiori informazioni sulle best practice in IAM, consulta [Best practice di sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l’utente di IAM*.

## Utilizzo della console Step Functions
<a name="security_iam_id-based-policy-examples-console"></a>

Per accedere alla AWS Step Functions console, è necessario disporre di un set minimo di autorizzazioni. Queste autorizzazioni devono consentirti di elencare e visualizzare i dettagli sulle risorse Step Functions presenti nel tuo Account AWS. Se crei una policy basata sull’identità più restrittiva rispetto alle autorizzazioni minime richieste, la console non funzionerà nel modo previsto per le entità (utenti o ruoli) associate a tale policy.

Non è necessario consentire autorizzazioni minime per la console per gli utenti che effettuano chiamate solo verso AWS CLI o l' AWS API. Al contrario, è opportuno concedere l’accesso solo alle azioni che corrispondono all’operazione API che stanno cercando di eseguire.

Per garantire che utenti e ruoli possano ancora utilizzare la console Step Functions, allega anche Step Functions `ConsoleAccess` o la policy `ReadOnly` AWS gestita alle entità. Per maggiori informazioni, consulta [Aggiunta di autorizzazioni a un utente](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) nella *Guida per l’utente di IAM*.

## Consentire agli utenti di visualizzare le loro autorizzazioni
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Questo esempio mostra in che modo è possibile creare una policy che consente agli utenti IAM di visualizzare le policy inline e gestite che sono collegate alla relativa identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando l'API o a livello di codice. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS politiche gestite per AWS Step Functions
<a name="security-iam-awsmanpol"></a>





Una politica AWS gestita è una politica autonoma creata e amministrata da AWS. AWS le politiche gestite sono progettate per fornire autorizzazioni per molti casi d'uso comuni, in modo da poter iniziare ad assegnare autorizzazioni a utenti, gruppi e ruoli.

Tieni presente che le policy AWS gestite potrebbero non concedere le autorizzazioni con il privilegio minimo per i tuoi casi d'uso specifici, poiché sono disponibili per tutti i clienti. AWS Si consiglia pertanto di ridurre ulteriormente le autorizzazioni definendo [policy gestite dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) specifiche per i propri casi d'uso.

Non è possibile modificare le autorizzazioni definite nelle politiche gestite. AWS Se AWS aggiorna le autorizzazioni definite in una politica AWS gestita, l'aggiornamento ha effetto su tutte le identità principali (utenti, gruppi e ruoli) a cui è associata la politica. AWS è più probabile che aggiorni una policy AWS gestita quando ne Servizio AWS viene lanciata una nuova o quando diventano disponibili nuove operazioni API per i servizi esistenti.

Per ulteriori informazioni, consultare [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) nella *Guida per l'utente di IAM*.









## AWS politica gestita: AWSStep FunctionsConsoleFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsConsoleFullAccess"></a>

È possibile allegare la policy [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html) alle identità IAM.

Questa politica concede *administrator* autorizzazioni che consentono a un utente di accedere all'utilizzo della console Step Functions. Per un'esperienza di console completa, un utente può anche aver bisogno di iam: PassRole autorizzazione per altri ruoli IAM che può essere assunta dal servizio.

## AWS politica gestita: AWSStep FunctionsReadOnlyAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess"></a>

È possibile allegare la policy [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) alle identità IAM.

Questa politica concede *read-only* autorizzazioni che consentono a un utente o a un ruolo di elencare e descrivere macchine a stati, attività, esecuzioni, attività MapRuns, tag e alias e versioni delle macchine a stati. Questa politica concede inoltre l'autorizzazione a verificare la sintassi delle definizioni delle macchine a stati fornite dall'utente.

## AWS politica gestita: AWSStep FunctionsFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsFullAccess"></a>

È possibile allegare la policy [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html) alle identità IAM.

Questa politica concede *full* le autorizzazioni a un utente o a un ruolo per utilizzare l'API Step Functions. Per un accesso completo, un utente deve disporre dell'*iam:PassRole*autorizzazione per almeno un ruolo IAM che può essere assunto dal servizio.

## Step Functions aggiorna le policy AWS gestite
<a name="security-iam-awsmanpol-updates"></a>

Visualizza i dettagli sugli aggiornamenti delle politiche AWS gestite per Step Functions da quando questo servizio ha iniziato a tenere traccia di queste modifiche. Per ricevere avvisi automatici sulle modifiche a questa pagina, iscriviti al feed RSS nella pagina Step Functions[Cronologia dei documenti](document-history.md).




| Modifica | Descrizione | Data | 
| --- | --- | --- | 
|  [AWSStepFunctionsReadOnlyAccess](#security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess): aggiornamento a una policy esistente   |  Step Functions ha aggiunto nuove autorizzazioni per consentire all'`states:ValidateStateMachineDefinition`API di richiamare l'azione per verificare la sintassi delle definizioni delle macchine a stati fornite.  | 25 aprile 2024 | 
|  [AWSStepFunctionsReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html): aggiornamento di una policy esistente  |  Step Functions ha aggiunto nuove autorizzazioni per consentire l'elenco e la lettura dei dati relativi a: tag (ListTagsForResource), mappa distribuita (ListMapRuns, DescribeMapRun), versioni e alias (DescribeStateMachineAlias, ListStateMachineAliases, ListStateMachineVersions).   | 02 aprile 2024 | 
|  Step Functions ha iniziato a tracciare le modifiche  |  Step Functions ha iniziato a tenere traccia delle modifiche per le sue politiche AWS gestite.  | 02 aprile 2024 | 

# 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).

# Creazione di autorizzazioni granulari per utenti non amministratori in Step Functions
<a name="concept-create-iam-advanced"></a>

Le policy gestite predefinite in IAM, ad esempio`ReadOnly`, non coprono completamente tutti i tipi di AWS Step Functions autorizzazioni. Questa sezione descrive i diversi tipi di autorizzazione e presenta alcune configurazioni di esempio. 

Step Functions dispone di quattro categorie di autorizzazioni. In base al tipo di accesso che desideri offrire a un utente, puoi controllare l'accesso utilizzando le autorizzazioni in queste categorie. 

[Autorizzazioni a livello di servizio](#concept-create-iam-advanced-service)  
Si applica ai componenti dell'API che **non** agiscono su una risorsa specifica.

[Autorizzazioni a livello di macchina a stati](#concept-create-iam-advanced-state)  
Da applicare a tutti i componenti di un'API che agiscono su una macchina a stati specifica.

[Autorizzazioni a livello di esecuzione](#concept-create-iam-advanced-execution)  
Da applicare a tutti i componenti di un'API che agiscono su un'esecuzione specifica.

[Autorizzazioni a livello di attività](#concept-create-iam-advanced-activity)  
Da applicare a tutti i componenti di un'API che agiscono su un'attività specifica o su una determinata istanza di un'attività.

## Autorizzazioni a livello di servizio
<a name="concept-create-iam-advanced-service"></a>

Questo livello di autorizzazione si applica a tutte le azioni API che **non** agiscono su una risorsa specifica. Questi includono`[CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)`, `[CreateActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateActivity.html)``[ListStateMachines](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListStateMachines.html)`,`[ListActivities](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListActivities.html)`, e`[ValidateStateMachineDefinition](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ValidateStateMachineDefinition.html)`. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "states:ListStateMachines",
                "states:ListActivities",
                "states:CreateStateMachine",
                "states:CreateActivity",
                "states:ValidateStateMachineDefinition"
            ],
            "Resource": [
                "arn:aws:states:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/my-execution-role"
            ]
        }
    ]
}
```

## Autorizzazioni a livello di macchina a stati
<a name="concept-create-iam-advanced-state"></a>

Questo livello di autorizzazione si applica a tutte le azioni API che agiscono su una macchina a stati specifica. Queste operazioni API richiedono l'Amazon Resource Name (ARN) della macchina a stati come parte della richiesta, ad esempio `[DeleteStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachine.html)` `[DescribeStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeStateMachine.html)``[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)`, e. `[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html)`

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeStateMachine",
        "states:StartExecution",
        "states:DeleteStateMachine",
        "states:ListExecutions",
        "states:UpdateStateMachine",
        "states:TestState",
        "states:RevealSecrets"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" 
      ]
    }
  ]
}
```

## Autorizzazioni a livello di esecuzione
<a name="concept-create-iam-advanced-execution"></a>

Questo livello di autorizzazione si applica a tutte le azioni API che agiscono su un'esecuzione specifica. Queste operazioni API necessitano l'ARN dell'esecuzione come parte della richiesta, ad esempio `[DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)`, `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` e `[StopExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StopExecution.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:DescribeStateMachineForExecution",
        "states:GetExecutionHistory",
        "states:StopExecution"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:execution:*:ExecutionPrefix*"
      ]
    }
  ]
}
```

## Autorizzazioni a livello di attività
<a name="concept-create-iam-advanced-activity"></a>

Questo livello di autorizzazione si applica a tutte le azioni API che agiscono su un'attività specifica o su una sua determinata istanza. Queste operazioni API richiedono l'ARN dell'attività o il token dell'istanza come parte della richiesta, ad esempio `[DeleteActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteActivity.html)` `[DescribeActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeActivity.html)``[GetActivityTask](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetActivityTask.html)`, e. `[SendTaskHeartbeat](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskHeartbeat.html)`

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeActivity",
        "states:DeleteActivity",
        "states:GetActivityTask",
        "states:SendTaskHeartbeat"
      ],
      "Resource": [
        "arn:aws:states:*:*:activity:ActivityPrefix*"
      ]
    }
  ]
}
```

# Accesso alle risorse in altri Account AWS in Step Functions
<a name="concepts-access-cross-acct-resources"></a>

Step Functions fornisce l'accesso tra account a risorse configurate Account AWS in diversi flussi di lavoro. Utilizzando le integrazioni dei servizi Step Functions, puoi richiamare qualsiasi AWS risorsa tra account anche se questa Servizio AWS non supporta policy basate sulle risorse o chiamate tra account.

Ad esempio, supponiamo di possederne due, denominate Development and Account AWS Testing, nella stessa unità. 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**  
I ruoli IAM e le policy 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 la logica di valutazione delle [politiche tra account nella IAM User](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) Guide.*

Sebbene ognuno Account AWS mantenga 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 [`.sync`](connect-to-resource.md#connect-sync)servizi 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)](connect-to-resource.md#connect-sync).

**Nota**  
L'integrazione AWS SDK tra regioni e l'accesso alle AWS risorse tra regioni non sono disponibili in Step Functions.

## Concetti chiave relativi alle risorse per più account
<a name="key-terms-cross-acct-access"></a>

**[Ruolo di esecuzione](procedure-create-iam-role.md)**  
Un ruolo IAM utilizzato da Step Functions per eseguire codice e accedere a AWS risorse, come l'azione Invoke della AWS Lambda funzione.

**[Integrazione dei servizi](integrate-services.md)**  
Le azioni dell'API di integrazione AWS SDK che possono essere richiamate dall'interno di uno `Task` stato nei flussi di lavoro.

**account di origine**  
E Account AWS che possiede la macchina a stati e ne ha avviato l'esecuzione.

**account di destinazione**  
E Account AWS a cui si effettuano chiamate tra account.

**ruolo bersaglio**  
Un ruolo IAM 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)](connect-to-resource.md#connect-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
<a name="invoke-cross-acct-resource"></a>

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

1. Crea un ruolo IAM 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.

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

1. Modifica la policy di fiducia nel ruolo IAM 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 ruolo IAM di destinazione per chiamare la AWS risorsa.

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

Per un esempio, vedi [Accesso alle AWS risorse di più account in Step Functions](tutorial-access-cross-acct-resources.md) nei tutorial.

**Nota**  
Puoi configurare la tua macchina a stati in modo che assuma un ruolo IAM per l'accesso a risorse da più risorse. Account AWS Tuttavia, una macchina a stati può assumere un solo ruolo IAM alla volta.

![\[Concetto per accedere alle risorse di più account\]](http://docs.aws.amazon.com/it_it/step-functions/latest/dg/images/cross-account-support-concept.png)


## Accesso su più account per il modello di integrazione.sync
<a name="concepts-cross-acct-sync-pattern"></a>

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 ruolo IAM di destinazione necessita delle autorizzazioni necessarie per una `.sync` chiamata per completare questo ciclo di polling. A tale scopo, il ruolo IAM di destinazione deve disporre di una policy di fiducia che consenta all'account di origine di assumerlo. Inoltre, il ruolo IAM 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
<a name="cross-acct-sync-pattern-policy-update"></a>

Aggiorna la policy di fiducia del tuo ruolo IAM di destinazione 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 supportati dall' AWS Security Token Service `AssumeRole`API. Per ulteriori informazioni, consulta [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) nella *documentazione di riferimento dell’API AWS Security Token Service *.

```
{
  "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
<a name="cross-acct-sync-pattern-perms-update"></a>

Per concedere le autorizzazioni richieste per la tua macchina a stati, aggiorna le autorizzazioni richieste per il ruolo IAM di destinazione. Per ulteriori informazioni, consulta [In che modo Step Functions genera policy IAM per servizi integrati](service-integration-iam-templates.md). 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:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:StopExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
      ]
    }
  ]
}
```

# Creazione di endpoint Amazon VPC per Step Functions
<a name="vpc-endpoints"></a>

Se utilizzi Amazon Virtual Private Cloud (Amazon VPC) per ospitare AWS le tue risorse, puoi stabilire una connessione tra Amazon VPC e i flussi di lavoro. AWS Step Functions Puoi utilizzare questa connessione con i flussi di lavoro di Step Functions senza dover accedere alla rete Internet pubblica. Gli endpoint Amazon VPC sono supportati dai flussi di lavoro Standard, dai flussi di lavoro Express e dai flussi di lavoro Synchronous Express. 

Amazon VPC ti consente di avviare AWS risorse in una rete virtuale personalizzata. Puoi utilizzare un VPC per controllare le impostazioni di rete, come l'intervallo di indirizzi IP, le sottoreti, le tabelle di routing e i gateway di rete. Per ulteriori informazioni VPCs, consulta la [Amazon VPC User](https://docs.aws.amazon.com/vpc/latest/userguide/) Guide.

Per connettere Amazon VPC a Step Functions, devi prima definire un *endpoint VPC di interfaccia, che ti permetta di connettere il tuo VPC* ad altri servizi. AWS L'endpoint offre una connettività scalabile e affidabile senza necessità di disporre di un gateway Internet, un'istanza NAT (Network Address Translation) o una connessione VPN. Per ulteriori informazioni, consulta [Endpoint VPC di interfaccia (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) nella *Guida per l'utente di Amazon VPC*.

## Creazione dell'endpoint
<a name="vpc-endpoint-create"></a>

Puoi creare un AWS Step Functions endpoint nel tuo VPC utilizzando, Console di gestione AWS AWS Command Line Interface the AWS CLI(), AWS un SDK, AWS Step Functions l'API o. CloudFormation

Per informazioni sulla creazione e sulla configurazione di un endpoint utilizzando la console Amazon VPC o il AWS CLI, consulta la sezione [Creazione di un endpoint di interfaccia](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) nella *Guida per l'utente di Amazon VPC*.

**Nota**  
 Quando crei un endpoint, specifica Step Functions come servizio a cui desideri connettere il tuo VPC. Nella console Amazon VPC, i nomi dei servizi variano in base alla AWS regione. **Ad esempio, se scegli US East (Virginia settentrionale), il nome del servizio per Standard Workflows ed Express Workflows è com.amazonaws.us-east-1.states e il nome di servizio per Synchronous Express Workflows è **com.amazonaws.us-east-1.sync-states**.**

**Nota**  
[È possibile utilizzare gli endpoint VPC senza sovrascrivere l'endpoint nell'SDK tramite DNS privato.](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) Tuttavia, se desideri sovrascrivere l'endpoint nell'SDK for Synchronous Express Workflows, devi impostare la configurazione su. `DisableHostPrefixInjection` `true` Esempio (Java SDK V2):   

```
SfnClient.builder()
  .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com"))
  .overrideConfiguration(ClientOverrideConfiguration.builder()
    .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true))
    .build())
  .build();
```

*Per informazioni sulla creazione e configurazione di un endpoint utilizzando CloudFormation, consulta la VPCEndpoint risorsa [AWS: :EC2::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) nella User Guide.CloudFormation *

## Politiche degli endpoint Amazon VPC
<a name="vpc-endpoint-policy"></a>

Per controllare l'accesso alla connettività a Step Functions, puoi allegare una policy per gli endpoint AWS Identity and Access Management (IAM) durante la creazione di un endpoint Amazon VPC. Puoi creare regole IAM complesse collegando più policy per gli endpoint. Per ulteriori informazioni, consulta:
+  [Policy degli endpoint di Amazon Virtual Private Cloud per Step Functions](#vpc-iam) 
+  [Creazione di autorizzazioni granulari per utenti non amministratori in Step Functions](concept-create-iam-advanced.md) 
+  [Controllo dell'accesso ai servizi con endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

## Policy degli endpoint di Amazon Virtual Private Cloud per Step Functions
<a name="vpc-iam"></a>

Puoi creare una policy di endpoint Amazon VPC per Step Functions in cui specifichi quanto segue:
+ Il principale che può eseguire azioni.
+ Le azioni che possono essere eseguite.
+ Le risorse in cui è possibile eseguire le operazioni.

L'esempio seguente mostra una policy per gli endpoint di Amazon VPC che consente a un utente di creare macchine a stati e nega a tutti gli altri utenti l'autorizzazione a eliminare le macchine a stati. La policy di esempio concede inoltre l'autorizzazione di esecuzione a tutti gli utenti .

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
              "states:ListExecutions", "states:StartExecution", "states:StopExecution", "states:DescribeExecution"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Principal": "*"
        },
        {
            "Action": "states:CreateStateMachine",
            "Resource": "*",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::123456789012:user/MyUser"
            }
        },
        {
            "Action": "states:DeleteStateMachine",
            "Resource": "*",
            "Effect": "Deny",
            "Principal": "*"
        }
    ]
}
```

Per ulteriori informazioni sulla creazione delle policy di endpoint, consulta: 
+  [Creazione di autorizzazioni granulari per utenti non amministratori in Step Functions](concept-create-iam-advanced.md) 
+  [Controllo dell'accesso ai servizi con endpoint VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

# In che modo Step Functions genera policy IAM per servizi integrati
<a name="service-integration-iam-templates"></a>

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](integrate-optimized.md) 
+ 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
<a name="connect-iam-dynamic-static"></a>

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
<a name="connect-iam-sync-async"></a>

Le attività che utilizzano il pattern [Run a Job (.sync)](connect-to-resource.md#connect-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 per`ecs: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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html). 

## Risoluzione dei problemi relativi ai flussi di lavoro.sync bloccati
<a name="polling-events-troubleshooting"></a>

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 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html) di una regola. 

## Autorizzazioni per l'annullamento dei flussi di lavoro
<a name="iam-cancel-tasks"></a>

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](connect-to-resource.md#connect-sync).

**Scopri di più sui modelli di integrazione**  
 Per ulteriori informazioni sulle attività sincrone, consulta[Scopri i modelli di integrazione dei servizi in Step Functions](connect-to-resource.md).

## Policy IAM per macchine a stati Step Functions dedicate esclusivamente alle attività
<a name="activities-iam"></a>

Per una macchina a stati che ha solo `Activity` attività o nessuna attività, utilizza una policy IAM che neghi l'accesso a tutte le azioni e le risorse.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

Per ulteriori informazioni sull'utilizzo delle attività ` Activity `, consulta [Scopri di più su Activities in Step Functions](concepts-activities.md).

# Politiche IAM per l'utilizzo degli stati della mappa distribuita
<a name="iam-policies-eg-dist-map"></a>

Quando crei flussi di lavoro con la console Step Functions, Step Functions può generare automaticamente policy IAM basate sulle risorse nella definizione del flusso di lavoro. Le policy generate includono i privilegi minimi necessari per consentire al ruolo della macchina a stati di richiamare l'azione `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API per *lo stato della mappa distribuita* e accedere alle AWS risorse, come i bucket e gli oggetti Amazon S3 e le funzioni Lambda.

Ti consigliamo di includere solo le autorizzazioni necessarie nelle tue policy IAM. Ad esempio, se il tuo flusso di lavoro include uno `Map` stato in modalità Distribuita, limita le tue policy allo specifico bucket e cartella Amazon S3 che contiene i tuoi dati.

**Importante**  
Se specifichi un bucket Amazon S3 e un oggetto, o prefisso, con un [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) a una coppia chiave-valore esistente nell'input *dello stato della mappa distribuita*, assicurati di aggiornare le policy IAM per il tuo flusso di lavoro. Definisci le policy fino ai nomi dei bucket e degli oggetti in cui il percorso si risolve in fase di esecuzione.

## Esempio di policy IAM per l'esecuzione di uno stato della mappa distribuita
<a name="iam-policy-run-dist-map"></a>

Quando includi *uno stato della mappa distribuita* nei flussi di lavoro, Step Functions necessita delle autorizzazioni appropriate per consentire al ruolo della macchina a stati di richiamare l'azione `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API per lo stato della mappa *distribuita*.

*Il seguente esempio di policy IAM concede i privilegi minimi richiesti al ruolo della macchina a stati per l'esecuzione dello stato della mappa distribuita.*

**Nota**  
Assicurati di sostituirlo `stateMachineName` con il nome della macchina a stati in cui stai utilizzando lo stato *Distributed Map*. Ad esempio, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

## Esempio di policy IAM per redriving una mappa distribuita
<a name="iam-policy-redrive-dist-map"></a>

È possibile riavviare le esecuzioni di workflow secondarie non riuscite in una mappa eseguita dal [redriving](redrive-executions.md)flusso di lavoro [principale](state-map-distributed.md#dist-map-orchestrate-parallel-workloads-key-terms). Un flusso di lavoro redriven principale con redrives tutti gli stati non riusciti, inclusa Distributed Map. Assicurati che il tuo ruolo di esecuzione disponga dei privilegi minimi necessari per consentirgli di richiamare l'azione `[RedriveExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_RedriveExecution.html)` API sul flusso di lavoro principale.

*Il seguente esempio di policy IAM concede i privilegi minimi richiesti al ruolo di macchina a stati per redriving uno stato di Distributed Map.*

**Nota**  
Assicurati di sostituirlo `stateMachineName` con il nome della macchina a stati in cui stai utilizzando lo stato *Distributed Map*. Ad esempio, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:RedriveExecution"
      ],
      "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachineName/myMapRunLabel:*"
    }
  ]
}
```

## Esempi di policy IAM per la lettura dei dati dai set di dati di Amazon S3
<a name="iam-policy-eg-item-reader"></a>

Gli esempi seguenti mostrano le tecniche per concedere i privilegi minimi necessari per accedere ai set di dati Amazon S3 utilizzando [ListObjectsle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) azioni V2 e API. [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)

**Example condizione utilizzando un oggetto Amazon S3 come set di dati**  
La seguente condizione concede i privilegi minimi per accedere agli oggetti in una `processImages` cartella di un bucket Amazon S3.  

```
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": { 
      "s3:prefix": [ "processImages" ]
   }
}
```

**Example utilizzando un file CSV come set di dati**  
L'esempio seguente mostra le azioni necessarie per accedere a un file CSV denominato. `ratings.csv`  

```
"Action": [ "s3:GetObject" ],
"Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv"
   ]
```

**Example utilizzo di un inventario Amazon S3 come set di dati**  
Di seguito sono riportati esempi di risorse per un manifesto di inventario e file di dati di Amazon S3.  

```
"Resource": [
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json",
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*"
   ]
```

**Example utilizzo di ListObjects V2 per limitarsi al prefisso di una cartella**  
Quando si utilizza [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), verranno generate due politiche. Una è necessaria per consentire l'**elenco** dei contenuti del bucket (`ListBucket`) e un'altra policy consentirà il **recupero degli oggetti** nel bucket (). `GetObject`   
Di seguito sono riportati esempi di azioni, risorse e una condizione:  

```
"Action": [ "s3:ListBucket" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": {
      "s3:prefix": [ "/path/to/your/json/" ]
   }
}
```

```
"Action": [ "s3:GetObject" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]
```
Nota che non `GetObject` verrà applicato alcun ambito e utilizzerai un carattere jolly (`*`) per l'oggetto.

## Esempio di policy IAM per la scrittura di dati in un bucket Amazon S3
<a name="iam-policy-eg-result-writer"></a>

Il seguente esempio di policy IAM concede i privilegi minimi richiesti per scrivere i risultati dell'esecuzione del flusso di lavoro secondario in una cartella denominata *csvJobs* in un bucket Amazon S3 utilizzando l'azione API. `[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)`

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*"
            ]
        }
    ]
}
```

### Autorizzazioni IAM per bucket Amazon S3 AWS KMS key crittografato
<a name="multiupload-dmap-result-policy"></a>

*Lo stato della mappa distribuito* utilizza caricamenti in più parti per scrivere i risultati dell'esecuzione del flusso di lavoro secondario in un bucket Amazon S3. Se il bucket è crittografato utilizzando una AWS Key Management Service (AWS KMS) chiave, devi includere anche le autorizzazioni per eseguire la IAM chiave e le `kms:Decrypt` azioni sulla chiave. `kms:Encrypt` `kms:GenerateDataKey` Queste autorizzazioni sono obbligatorie perché Amazon S3 deve decrittografare e leggere i dati dalle parti di file crittografate prima di completare il caricamento in più parti.

Il seguente esempio di policy IAM concede l'`kms:Decrypt`autorizzazione e `kms:Encrypt` le `kms:GenerateDataKey` azioni sulla chiave utilizzata per crittografare il bucket Amazon S3.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}
```

Per ulteriori informazioni, consulta [Caricamento di un file di grandi dimensioni su Amazon S3 con la crittografia utilizzando una AWS KMS key](https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/) nel *Knowledge Center di AWS *.

Se il tuo utente o ruolo IAM è lo Account AWS stesso diKMS key, devi disporre di queste autorizzazioni sulla policy chiave. Se il tuo utente o ruolo IAM appartiene a un account diverso da quelloKMS key, devi disporre delle autorizzazioni sia sulla policy chiave che sul tuo utente o ruolo IAM.

# Creazione di policy IAM basate su tag in Step Functions
<a name="tag-based-policies"></a>

Step Functions supporta le politiche basate sui tag. Ad esempio, è possibile limitare l'accesso a tutte le risorse Step Functions che includono un tag con la chiave `environment` e il valore`production`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "states:TagResource",
                "states:UntagResource",
                "states:DeleteActivity",
                "states:DeleteStateMachine",
                "states:StopExecution"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/environment": "production"}
            }
        }
    ]
}
```

Questa policy `Deny` (Nega) la possibilità di eliminare lo stato di attività o di macchine, arrestare esecuzioni e aggiungere o eliminare i nuovi tag per tutte le risorse che sono state contrassegnate come `environment/production`.

Per l'autorizzazione basata su tag, le risorse di esecuzione di una macchina a stati, come illustrato nell'esempio seguente, ereditano i tag associati a una macchina a stati.

```
arn:partition:states:region:account-id:execution:<StateMachineName>:<ExecutionId>
```

Quando si chiama [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)o si APIs specifica la risorsa di esecuzione ARN, Step Functions utilizza i tag associati alla macchina a stati per accettare o rifiutare la richiesta durante l'esecuzione dell'autorizzazione basata su tag. Ciò consente di consentire o negare l'accesso alle esecuzioni delle macchine a stati a livello di macchina a stati.

Per ulteriori informazioni sul tagging, consulta:
+ [Etichettatura di macchine a stati e attività in Step Functions](sfn-best-practices.md#concepts-tagging)
+ [Controllo degli accessi tramite tag IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)

# Risoluzione dei problemi di identità e accesso in Step Functions
<a name="security_iam_troubleshoot"></a>

Utilizza le seguenti informazioni per aiutarti a diagnosticare e risolvere i problemi più comuni che potresti riscontrare quando lavori con Step Functions e IAM.

**Topics**
+ [Non sono autorizzato a eseguire un'azione in Step Functions](#security_iam_troubleshoot-no-permissions)
+ [Non sono autorizzato a eseguire iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Voglio consentire a persone esterne a me di accedere Account AWS alle mie risorse Step Functions](#security_iam_troubleshoot-cross-account-access)

## Non sono autorizzato a eseguire un'azione in Step Functions
<a name="security_iam_troubleshoot-no-permissions"></a>

Se ricevi un errore che indica che non disponi dell'autorizzazione per eseguire un'operazione, le tue policy devono essere aggiornate in modo che ti sei consentito eseguire tale operazione.

Il seguente esempio di errore si verifica quando l'utente `mateojackson` prova a utilizzare la console per visualizzare i dettagli relativi a una risorsa `my-example-widget` fittizia, ma non dispone di autorizzazioni `states:GetWidget` fittizie.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: states:GetWidget on resource: my-example-widget
```

In questo caso, la policy deve essere aggiornata in modo che Mateo possa accedere alla risorsa `my-example-widget` mediante l'operazione `states:GetWidget`.

Se hai bisogno di aiuto, contatta il tuo AWS amministratore. L’amministratore è la persona che ti ha fornito le credenziali di accesso.

## Non sono autorizzato a eseguire iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se ricevi un messaggio di errore indicante che non sei autorizzato a eseguire l'`iam:PassRole`azione, le tue politiche devono essere aggiornate per consentirti di trasferire un ruolo a Step Functions.

Alcuni Servizi AWS consentono di trasferire un ruolo esistente a quel servizio invece di creare un nuovo ruolo di servizio o un ruolo collegato al servizio. Per eseguire questa operazione, è necessario disporre delle autorizzazioni per trasmettere il ruolo al servizio.

Il seguente errore di esempio si verifica quando un utente IAM denominato `marymajor` tenta di utilizzare la console per eseguire un'azione in Step Functions. Tuttavia, l’azione richiede che il servizio disponga delle autorizzazioni concesse da un ruolo di servizio. Mary non dispone delle autorizzazioni per trasmettere il ruolo al servizio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

In questo caso, le policy di Mary devono essere aggiornate per poter eseguire l’operazione `iam:PassRole`.

Se hai bisogno di aiuto, contatta il tuo AWS amministratore. L’amministratore è la persona che ti ha fornito le credenziali di accesso.

## Voglio consentire a persone esterne a me di accedere Account AWS alle mie risorse Step Functions
<a name="security_iam_troubleshoot-cross-account-access"></a>

È possibile creare un ruolo con il quale utenti in altri account o persone esterne all’organizzazione possono accedere alle tue risorse. È possibile specificare chi è attendibile per l’assunzione del ruolo. Per i servizi che supportano politiche basate sulle risorse o liste di controllo degli accessi (ACLs), puoi utilizzare tali politiche per concedere alle persone l'accesso alle tue risorse.

Per maggiori informazioni, consulta gli argomenti seguenti:
+ Per sapere se Step Functions supporta queste funzionalità, vedere[Come AWS Step Functions funziona con IAM](security_iam_service-with-iam.md).
+ Per scoprire come fornire l'accesso alle tue risorse su tutto Account AWS ciò che possiedi, consulta [Fornire l'accesso a un utente IAM in un altro Account AWS di tua proprietà](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) nella *IAM User Guide*.
+ Per scoprire come fornire l'accesso alle tue risorse a terze parti Account AWS, consulta [Fornire l'accesso a soggetti Account AWS di proprietà di terze parti](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) nella *Guida per l'utente IAM*.
+ Per informazioni su come fornire l'accesso tramite la federazione delle identità, consulta [Fornire l'accesso a utenti autenticati esternamente (federazione delle identità)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) nella *Guida per l'utente IAM*.
+ Per informazioni sulle differenze di utilizzo tra ruoli e policy basate su risorse per l’accesso multi-account, consulta [Accesso a risorse multi-account in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) nella *Guida per l’utente IAM*.