

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

# Riferimento alla policy JSON IAM
<a name="reference_policies"></a>

Questa sezione presenta la sintassi, le descrizioni e gli esempi dettagliati di elementi, variabili e logica di valutazione delle policy JSON in IAM. Per ulteriori informazioni generali, consulta [Panoramica delle policy JSON](access_policies.md#access_policies-json).

Questo riferimento include le seguenti sezioni.
+  [Documentazione di riferimento degli elementi delle policy JSON IAM](reference_policies_elements.md): ulteriori informazioni sugli elementi che è possibile utilizzare durante la creazione di una policy. Visualizzare ulteriori esempi di policy e ulteriori informazioni su condizioni, tipi di dati supportati e il modo in cui vengono utilizzati in vari servizi. 
+ [Logica di valutazione delle policy](reference_policies_evaluation-logic.md)— Questa sezione descrive AWS le richieste, come vengono autenticate e come vengono AWS utilizzate le politiche per determinare l'accesso alle risorse. 
+ [Sintassi del linguaggio della policy JSON IAM](reference_policies_grammar.md): questa sezione presenta una sintassi formale per il linguaggio utilizzato per creare le policy in IAM.
+ [AWS politiche gestite per le funzioni lavorative](access_policies_job-functions.md): questa sezione elenca tutte le policy gestite di AWS che mappano direttamente a funzioni lavorative nel settore IT. Utilizzare queste policy per concedere le autorizzazioni necessarie per eseguire le attività che ci si aspetta da qualcuno in una determinata funzione lavorativa. Queste policy consolidano le autorizzazioni per molti servizi in una singola policy.
+ [AWS chiavi di contesto della condizione globale](reference_policies_condition-keys.md)— Questa sezione include un elenco di tutte le chiavi di condizione AWS globali che è possibile utilizzare per limitare le autorizzazioni in una policy IAM.
+ [chiavi contestuali IAM e AWS STS condition](reference_policies_iam-condition-keys.md)— Questa sezione include un elenco di tutte le chiavi IAM e di AWS STS condizione che è possibile utilizzare per limitare le autorizzazioni in una policy IAM.
+ [Azioni, risorse e chiavi di condizione per AWS i servizi](reference_policies_actions-resources-contextkeys.html): questa sezione presenta un elenco di tutte le operazioni AWS API che è possibile utilizzare come autorizzazioni in una policy IAM. Include anche le chiavi di condizione specifiche del servizio che possono essere utilizzate per ottimizzare ulteriormente la richiesta.

# Documentazione di riferimento degli elementi delle policy JSON IAM
<a name="reference_policies_elements"></a>

I documenti delle policy JSON sono costituiti da elementi. Gli elementi vengono elencati qui nell'ordine generale in cui vengono utilizzati in una policy. L'ordine degli elementi non ha importanza, ad esempio l'elemento `Resource` può venire prima dell'elemento `Action`. Non devi specificare alcun elemento `Condition` nella policy. Per ulteriori informazioni sulla struttura generale e lo scopo di un documento di policy JSON, consulta la pagina [Panoramica delle policy JSON](access_policies.md#access_policies-json).

Alcuni elementi della policy JSON sono reciprocamente esclusivi. Questo significa che non puoi creare una policy che utilizza entrambi. Ad esempio, non è possibile utilizzare `Action` e `NotAction` nella stessa dichiarazione di policy. Altre coppie che si escludono reciprocamente sono `Principal`/`NotPrincipal` e `Resource`/`NotResource`. 

I dettagli di ciò che va a comporre una policy variano per ciascun servizio, a seconda di quali operazioni il servizio rende disponibili, quali tipi di risorse contiene e così via. Quando stai scrivendo delle policy per un servizio specifico, è utile consultare esempi di policy per quel servizio. Per un elenco di tutti i servizi che supportano IAM e per i collegamenti alla documentazione di quei servizi che illustrano IAM e le policy, consulta [AWS servizi che funzionano con IAM](reference_aws-services-that-work-with-iam.md).

 Quando crei o modifichi una policy JSON, IAM può eseguire la convalida delle policy per facilitare la creazione di una policy efficace. IAM identificherà gli errori di sintassi JSON, mentre IAM Access Analyzer fornisce ulteriori controlli delle policy con suggerimenti che consentono di perfezionare ulteriormente le policy. Per ulteriori informazioni sulla convalida delle policy, consulta [Convalida delle policy IAM](access_policies_policy-validator.md). Per ulteriori informazioni cui controlli delle policy di IAM Access Analyzer e sui suggerimenti utili, consulta [Convalida delle policy di IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

**Topics**
+ [Version](reference_policies_elements_version.md)
+ [Id](reference_policies_elements_id.md)
+ [Statement](reference_policies_elements_statement.md)
+ [Sid](reference_policies_elements_sid.md)
+ [Effect](reference_policies_elements_effect.md)
+ [Principal](reference_policies_elements_principal.md)
+ [NotPrincipal](reference_policies_elements_notprincipal.md)
+ [Action](reference_policies_elements_action.md)
+ [NotAction](reference_policies_elements_notaction.md)
+ [Resource](reference_policies_elements_resource.md)
+ [NotResource](reference_policies_elements_notresource.md)
+ [Condition](reference_policies_elements_condition.md)
+ [Variabili e tag](reference_policies_variables.md)
+ [Tipi di dati supportati](reference_policies_elements_datatypes.md)

# Elementi delle policy JSON IAM: Version
<a name="reference_policies_elements_version"></a>

**Chiarimento**  
Questo elemento della policy JSON `Version` è diverso da una *versione della policy*. L'elemento di policy `Version` viene utilizzato all'interno di una policy e definisce la versione del linguaggio di policy. Diversamente, una versione della policy viene creata quando si apportano modifiche alla policy gestita dal cliente in IAM. La policy modificata non viene sovrascritta a quella precedente. IAM crea invece una nuova versione della policy gestita. Per informazioni sul supporto per versioni multiple disponibile per le policy gestite, consultare [Controllo delle versioni delle policy IAM](access_policies_managed-versioning.md).

L'elemento della policy `Version` specifica le regole sintattiche di linguaggio che devono essere utilizzate per elaborare una policy. Per utilizzare tutte le funzionalità disponibili della policy, includi il seguente elemento `Version` **all'esterno** dell'elemento `Statement` in tutte le policy.

------
#### [ JSON ]

****  

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

------

IAM supporta i seguenti valori degli elementi `Version`:
+ `2012-10-17`. Questa è la versione corrente del linguaggio della policy e deve sempre includere un elemento `Version` ed essere impostato su `2012-10-17`. In caso contrario, non è possibile utilizzare caratteristiche come [variabili di policy](reference_policies_variables.md) introdotte con questa versione.
+ `2008-10-17`. Questa è una versione precedente del linguaggio della policy. Potresti vedere questa versione su policy esistenti meno recenti. Non utilizzare questa versione per le nuove policy o quando si aggiornano policy esistenti. Le caratteristiche più recenti, come variabili di policy, non funzioneranno con la tua policy. Ad esempio, le variabili tipo `${aws:username}` non saranno riconosciute come variabili e verranno trattate come stringhe letterali nella policy.

# Elementi delle policy JSON IAM: Id
<a name="reference_policies_elements_id"></a>

L'elemento `Id` specifica un identificatore opzionale per la policy. L'ID viene utilizzato in modo diverso in servizi diversi. L'ID  è consentito nelle policy basate su risorse, ma non nelle policy basate sulle identità.

Per i servizi che consentono di impostare un elemento `ID`, consigliamo di utilizzare un UUID (GUID) per il valore o incorporare un UUID come parte dell'ID per garantire l'univocità. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

**Nota**  
Alcuni AWS servizi (ad esempio Amazon SQS o Amazon SNS) potrebbero richiedere questo elemento e avere requisiti di unicità per esso. Per informazioni specifiche per servizio sulla scrittura di policy, consultare la documentazione per il servizio in uso.

# Elementi delle policy JSON IAM: Statement
<a name="reference_policies_elements_statement"></a>

L'elemento `Statement` è l'elemento principale per una policy. Questa elemento è obbligatorio. L'elemento `Statement` può contenere una singola istruzione o una matrice di singole istruzioni. Ogni singolo blocco di istruzioni deve essere racchiuso tra parentesi graffe \$1 \$1. In caso di istruzioni multiple, l'array deve essere racchiuso tra parentesi quadre [ ].

```
"Statement": [{...},{...},{...}]
```

L'esempio seguente mostra una policy che contiene una serie di tre istruzioni all'interno di un singolo elemento `Statement`. La policy consente di accedere alla propria "cartella home" nella console Amazon S3. La policy include la variabile `aws:username`, che viene sostituita durante la valutazione della policy con il nome utente dalla richiesta. Per ulteriori informazioni, consulta [Introduzione](reference_policies_variables.md#policy-vars-intro). 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {"StringLike": {"s3:prefix": [
        "",
        "home/",
        "home/${aws:username}/"
      ]}}
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```

------

# Elementi delle policy JSON IAM: Sid
<a name="reference_policies_elements_sid"></a>

Puoi fornire un `Sid` (ID istruzione) come identificativo facoltativo per l'istruzione della policy. Puoi assegnare un valore `Sid` a ogni istruzione in una matrice di istruzioni. È possibile utilizzare il valore `Sid` come descrizione per l'istruzione della policy. In servizi che consentono di specificare un elemento `ID`, ad esempio SQS e SNS, il valore `Sid` è semplicemente un ID secondario dell'ID del documento di policy. In IAM, il valore `Sid` deve essere univoco all'interno di una policy JSON.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExampleStatementID",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

L'elemento `Sid` supporta lettere maiuscole ASCII (A-Z), lettere minuscole (a-z) e numeri (0-9). 

IAM non utilizza il `Sid` nell'API IAM. Non puoi recuperare una determinata istruzione in base a questo ID.

**Nota**  
Alcuni AWS servizi (ad esempio Amazon SQS o Amazon SNS) potrebbero richiedere questo elemento e avere requisiti di unicità per esso. Per informazioni specifiche del servizio sulla scrittura di policy, consulta la documentazione per il servizio in uso.

# Elementi delle policy JSON IAM: Effect
<a name="reference_policies_elements_effect"></a>

L'elemento `Effect` è obbligatorio e specifica se l'istruzione determina un consenso o un rifiuto esplicito. I valori validi di `Effect` sono `Allow` e `Deny`. Il valore `Effect` prevede la distinzione tra lettere maiuscole e minuscole. 

```
"Effect":"Allow"
```

Come impostazione predefinita, l'accesso alle risorse è negato. Per consentire l'accesso a una risorsa, è necessario impostare l'elemento `Effect` su `Allow`. Per ignorare un consenso (ad esempio, per ignorare un consenso altrimenti valido), è necessario impostare l'elemento `Effect` su `Deny`. Per ulteriori informazioni, consulta [Logica di valutazione delle policy](reference_policies_evaluation-logic.md).

# AWS Elementi della policy JSON: Principal
<a name="reference_policies_elements_principal"></a>

Utilizzare l'elemento `Principal` in una policy JSON basata sulle risorse per specificare il principale a cui è consentito o negato l'accesso a una risorsa. 

Nelle [policy basate sulle risorse](access_policies_identity-vs-resource.md) devi utilizzare l'elemento `Principal`. Diversi servizi supportano le policy basate sulle risorse, tra cui IAM. Il tipo di policy basata sulle risorse IAM è una policy di attendibilità del ruolo. Nei ruoli IAM, utilizza l'elemento `Principal` nella policy di attendibilità del ruolo per specificare chi può assumere il ruolo. Per l'accesso tra account, è necessario specificare l'identificatore a 12 cifre dell'account affidabile. Per capire se i principali negli account esterni alla zona di attendibilità (organizzazione o account attendibile) dispongono dell'accesso per assumere i ruoli, consulta [Cos'è IAM Access Analyzer?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

**Nota**  
Dopo aver creato il ruolo, è possibile modificare l'account in "\$1" per consentire a tutti di assumere il ruolo. In questo caso, è consigliabile limitare gli utenti che possono accedere al ruolo attraverso altri mezzi, ad esempio un elemento `Condition` che limita l'accesso solo a determinati indirizzi IP. Non permettere che il ruolo sia accessibile a tutti.

Altri esempi di risorse che supportano le policy basate sulle risorse includono un bucket Amazon S3 o AWS KMS key.

Non puoi usare l'elemento `Principal` in una policy basata su identità Le policy basate su identità sono policy di autorizzazione che si collegano a identità IAM (utenti, gruppi o ruoli). In questi casi, il principale è implicito nell'identità dove è collegata la policy.

**Topics**
+ [Come specificare un principale](#Principal_specifying)
+ [Account AWS presidi](#principal-accounts)
+ [Principali ruolo IAM](#principal-roles)
+ [Principali della sessione come ruolo](#principal-role-session)
+ [Principali federati OIDC](#principal-federated-web-identity)
+ [Principali federati SAML](#principal-saml)
+ [Principali dell'utente IAM](#principal-users)
+ [Principi fondamentali di Centro identità IAM](#principal-identity-users)
+ [AWS STS principi utente federati](#sts-session-principals)
+ [AWS presidi del servizio](#principal-services)
+ [AWS principali di servizio nelle regioni che accettano l'adesione](#principal-services-in-opt-in-regions)
+ [Tutti i principali](#principal-anonymous)
+ [Ulteriori informazioni](#Principal_more-info)

## Come specificare un principale
<a name="Principal_specifying"></a>

È possibile specificare un principale nell'elemento `Principal` di una policy basata sulle risorse o in chiavi di condizione che supportano i principali.

In una policy è possibile specificare una delle seguenti entità:
+ Account AWS e utente root
+ Ruoli IAM
+ Sessioni come ruolo 
+ Utenti IAM
+ Principali utente federato 
+ AWS servizi
+ Tutti i principali

Non è possibile identificare un gruppo di utenti come principale in una policy (ad esempio una policy basata sulle risorse) perché i gruppi si riferiscono alle autorizzazioni, non all'autenticazione, e i principali sono entità IAM autenticate.

È possibile specificare più di un principale per ciascuno dei tipi di entità nelle sezioni seguenti utilizzando un array. Gli array possono richiedere uno o più valori. Quando si specifica più di un principale in un elemento, si concedono le autorizzazioni a ciascun principale. Questo è un `OR` logico e non un `AND` logico, perché si viene autenticati come un principale alla volta. Se includi più di un valore, utilizza parentesi quadre (`[` e `]`) e delimita con le virgole ogni voce per l'array. La seguente policy di esempio definisce le autorizzazioni per l'account 123456789012 o per l'account 555555555555.

```
"Principal" : { 
"AWS": [ 
  "123456789012",
  "555555555555" 
  ]
}
```

**Nota**  
Non è possibile utilizzare un carattere jolly per associare parte di un nome di un principale o di un ARN. 

## Account AWS presidi
<a name="principal-accounts"></a>

È possibile specificare Account AWS gli identificatori nell'`Principal`elemento di una politica basata sulle risorse o nelle chiavi di condizione che supportano i principali. In questo modo l'autorità viene delegata all'account. Quando consenti l'accesso a un altro account, un amministratore di tale account deve concedere l'accesso a un'identità (utente o ruolo IAM) in tale account. Quando si specifica un Account AWS, è possibile utilizzare l'account ARN (arn:aws:iam: :root*account-ID*) o un modulo abbreviato costituito dal prefisso seguito dall'ID dell'account. `"AWS":`

Ad esempio, fornendo un account ID di `123456789012`, è possibile utilizzare uno dei seguenti metodi per specificare l'account nell'elemento `Principal`:

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

```
"Principal": { "AWS": "123456789012" }
```

L'ARN dell'account e l'ID dell'account abbreviato si comportano allo stesso modo: entrambi delegano le autorizzazioni all'account. L'utilizzo dell'ARN dell'account nell'elemento `Principal` non limita le autorizzazioni solo per l'utente root dell'account. 

**Nota**  
Quando salvi una policy basata sulle risorse che include l'ID dell'account abbreviato, il servizio potrebbe convertirlo nell'ARN del principale. Ciò non modifica la funzionalità della policy.

Alcuni AWS servizi supportano opzioni aggiuntive per specificare l'intestazione di un account. Ad esempio, Amazon S3 ti consente di specificare un [ID utente canonico](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId) utilizzando il formato seguente:

```
"Principal": { "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }
```

È inoltre possibile specificarne più di uno Account AWS(o un ID utente canonico) come principale utilizzando un array. Ad esempio, è possibile specificare un principale in una policy del bucket utilizzando tutti e tre i metodi.

```
"Principal": { 
  "AWS": [
    "arn:aws:iam::123456789012:root",
    "999999999999"
  ],
  "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
}
```

## Principali ruolo IAM
<a name="principal-roles"></a>

È possibile specificare il ruolo principale IAM ARNs nell'`Principal`elemento di una policy basata sulle risorse o nelle chiavi di condizione che supportano i principali. I ruoli IAM sono identità. In IAM, le identità sono risorse a cui è possibile assegnare autorizzazioni. I ruoli si affidano a un'altra identità autenticata per assumere tale ruolo. Ciò include un principale in AWS o un utente di un provider di identità esterno (IdP). Quando un principal o un'identità assume un ruolo, ricevono credenziali di sicurezza temporanee con le autorizzazioni del ruolo assunto. *Quando utilizzano tali credenziali di sessione per eseguire operazioni in AWS, diventano responsabili della sessione di ruolo.*

Quando si specifica un principale del ruolo in una policy basata sulle risorse, le autorizzazioni effettive per il principale sono limitate da qualsiasi tipo di policy che limita le autorizzazioni per il ruolo. Ciò include le policy di sessione e i limiti delle autorizzazioni. Per ulteriori informazioni su come vengono valutate le autorizzazioni effettive per una sessione come ruolo, consulta [Logica di valutazione delle policy](reference_policies_evaluation-logic.md).

Per specificare l'ARN del ruolo nell'elemento `Principal`, utilizza questo formato:

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:role/role-name" }
```

**Importante**  
Se l’elemento `Principal` in una policy di attendibilità del ruolo contiene un ARN che punta a un determinato ruolo IAM, allora l’ARN si trasforma nell’ID principale univoco del ruolo quando si salva la policy. Ciò aiuta a mitigare il rischio che qualcuno aumenti i propri privilegi rimuovendo e ricreando il ruolo. Questa ID nella console non è normalmente presente, in quanto IAM usa una trasformazione inversa verso l'ARN del ruolo quando la policy di affidabilità viene visualizzata. Tuttavia, se si elimina il ruolo, la relazione viene interrotta. La policy non è più applicabile, anche se si ricrea il ruolo perché il nuovo ruolo ha un nuovo ID principale che non corrisponde all'ID principale archiviato nella policy di affidabilità. Quando ciò accade, l'ID principale viene visualizzato nelle politiche basate sulle risorse perché non è più AWS possibile mapparlo su un ARN valido. Il risultato finale è che se si elimina e si ricrea un ruolo referenziato in un elemento `Principal` della policy di attendibilità, è necessario modificare il ruolo nella policy per sostituire l'ID principale con il nome ARN corretto. L'ARN si trasforma nuovamente nel nuovo ID principale del ruolo quando si salva la policy. Per ulteriori informazioni, consulta [Understanding sulla gestione AWS dei ruoli IAM eliminati](https://repost.aws/articles/ARSqFcxvd7R9u-gcFD9nmA5g/understanding-aws-s-handling-of-deleted-iam-roles-in-policies) nelle politiche.

In alternativa, è possibile specificare il principale del ruolo come principale in una policy basata sulle risorse oppure [creare una policy di ampia autorizzazione](#principal-anonymous) che usa la chiave di condizione `aws:PrincipalArn`. Quando si utilizza questa chiave, al principale della sessione come ruolo vengono concesse le autorizzazioni in base all'ARN del ruolo assunto e non all'ARN della sessione risultante. Poiché AWS non converte la chiave ARNs di condizione in IDs, le autorizzazioni concesse al ruolo ARN persistono se si elimina il ruolo e quindi si crea un nuovo ruolo con lo stesso nome. I tipi di policy basati su identità, come i limiti delle autorizzazioni o le policy di sessione, non limitano le autorizzazioni concesse tramite la chiave di condizione `aws:PrincipalArn` con un carattere jolly (\$1) nell'elemento `Principal`, a meno che le policy basate su identità non contengano un rifiuto esplicito.

## Principali della sessione come ruolo
<a name="principal-role-session"></a>

È possibile specificare le sessioni come ruolo nell'elemento `Principal` di una policy basata sulle risorse o in chiavi in condizione che supportano i principali. Quando un principal o un'identità assume un ruolo, ricevono credenziali di sicurezza temporanee con le autorizzazioni del ruolo assunto. *Quando utilizzano tali credenziali di sessione per eseguire operazioni AWS, diventano responsabili della sessione di ruolo.*

Il formato utilizzato per un responsabile della sessione di ruolo dipende dall' AWS STS operazione utilizzata per assumere il ruolo.

**Importante**  
AWS consiglia di utilizzare i [role principal IAM](#principal-roles) nelle policy anziché quelli delle sessioni di ruolo, laddove possibile. Se necessario, utilizza `Condition` istruzioni e chiavi di condizione per definire ulteriormente l'accesso.

Per specificare l'ARN principale della sessione di ruolo nell'`Principal`elemento, utilizzate il seguente formato:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:assumed-role/role-name/role-session-name" }
```

Inoltre, gli amministratori possono progettare un processo per controllare il modo di emissione delle sessioni come ruolo. Ad esempio, possono fornire una soluzione con un clic per gli utenti che creano un nome della sessione prevedibile. Se l'amministratore compie questa operazione, è possibile utilizzare i principali della sessione come ruolo nelle policy o nelle chiavi di condizione. In caso contrario, è possibile specificare l'ARN del ruolo come principale nella chiave di condizione `aws:PrincipalArn`. Il modo in cui si specifica il ruolo come principale può modificare le autorizzazioni effettive per la sessione risultante. Per ulteriori informazioni, consulta [Principali ruolo IAM](#principal-roles). 

## Principali federati OIDC
<a name="principal-federated-web-identity"></a>

Un principal federato OIDC è il principale utilizzato quando si chiama l' AWS STS `AssumeRoleWithWebIdentity`API con un token web JSON (JWT) da un IDP conforme a OIDC, noto anche come OpenID Provider (OP), per richiedere credenziali temporanee. AWS [Un principal federato OIDC può rappresentare un IDP OIDC nel tuo AWS account o i 4 provider di identità integrati:Login with Amazon,, e Amazon Cognito. GoogleFacebook](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html)

Gli utenti, i carichi di lavoro o i sistemi a cui è stato rilasciato un JWT dal proprio IDP OIDC possono effettuare chiamate `AssumeRoleWithWebIdentity` utilizzando JWT per richiedere credenziali di AWS sicurezza temporanee per un ruolo IAM configurato per considerare attendibile l'IDP OIDC che ha emesso il JWT. Il JWT può essere un ID token, un token di accesso o un token JWT fornito con qualsiasi altro metodo purché soddisfi i [requisiti elencati da AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html#manage-oidc-provider-prerequisites). Per ulteriori informazioni, consulta [Scenari comuni](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_federation_common_scenarios.html) e [Richiesta di credenziali tramite un provider OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).

Utilizza questo tipo principale nella tua policy di affidabilità dei ruoli per consentire o negare le autorizzazioni alle chiamate `AssumeRoleWIthWebIdentity` utilizzando un IDP OIDC esistente nel tuo o uno dei quattro integrati. Account AWS IDPs Per specificare l'ARN principale federato OIDC nell'`Principal`elemento di una policy di trust dei ruoli, utilizza uno dei seguenti quattro formati per l'OIDC integrato: IDPs

```
"Principal": { "Federated": "cognito-identity.amazonaws.com" }
```

```
"Principal": { "Federated": "www.amazon.com" }
```

```
"Principal": { "Federated": "graph.facebook.com" }
```

```
"Principal": { "Federated": "accounts.google.com" }
```

Quando utilizzi un provider OIDC che aggiungi al tuo account, ad esempio, specifichi l'ARN del provider nella politica di fiducia del tuo ruolo. GitHub Questa configurazione ti consente di scrivere policy IAM che controllano l’accesso in modo specifico per gli utenti autenticati tramite il tuo provider di identità personalizzato.

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/full-OIDC-identity-provider-URL" }
```

Ad esempio, se GitHub è il provider di identità web attendibile, l’ARN della sessione del ruolo OIDC nell’elemento `Principal` di una policy di attendibilità dei ruoli utilizza il seguente formato:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/tokens.actions.githubusercontent.com" }
```

Per ulteriori informazioni, consulta [Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services).

I principali federati OIDC non sono supportati in tipi di policy diversi dalle policy di attendibilità dei ruoli.

## Principali federati SAML
<a name="principal-saml"></a>

Un principale *federato SAML è un principale* utilizzato quando si chiama l' AWS STS `AssumeRoleWithSAML`API per richiedere AWS credenziali temporanee utilizzando un'asserzione SAML. È possibile utilizzare un gestore dell’identità digitale (IdP) SAML esterno per accedere e quindi assumere un ruolo IAM utilizzando questa operazione. Simile a`AssumeRoleWithWebIdentity`, `AssumeRoleWithSAML` non richiede credenziali per l'autenticazione. AWS Invece, gli utenti si autenticano prima con il proprio provider di identità SAML, quindi effettuano la chiamata `AssumeRoleWithSAML` API utilizzando la loro asserzione SAML o vengono reindirizzati alla pagina di accesso/SAML per AWS accedere a. Console di gestione AWS Per ulteriori informazioni su quali principali possono assumere un ruolo utilizzando questa operazione, consulta [Confronta le AWS STS credenziali](id_credentials_sts-comparison.md).

Utilizza questo tipo di principale nella policy di attendibilità del ruolo per consentire o negare l’autorizzazione in base al provider di identità SAML attendibile. Per specificare l'ARN della sessione del ruolo dell'identità Web nell'elemento `Principal` di una policy di attendibilità dei ruoli, utilizza questo formato:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:saml-provider/provider-name" }
```

## Principali dell'utente IAM
<a name="principal-users"></a>

Puoi specificare gli utenti IAM nell'elemento `Principal` di una policy basata sulle risorse o nelle chiavi della condizione che supportano i principali.

**Nota**  
In un elemento `Principal`, la parte del nome utente dell'[*Amazon Resource Name*(ARN)](reference_identifiers.md#identifiers-arns) fa distinzione tra maiuscole e minuscole.

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/user-name" }
```

```
"Principal": {
  "AWS": [
    "arn:aws:iam::AWS-account-ID:user/user-name-1", 
    "arn:aws:iam::AWS-account-ID:user/user-name-2"
  ]
}
```

Quando si specificano gli utenti in un elemento `Principal`, non è possibile utilizzare un carattere jolly (`*`) che indica "tutti gli utenti". I principali devono sempre nominare utenti determinati. 

**Importante**  
Se l'elemento `Principal` in una policy di attendibilità del ruolo contiene un nome ARN che punta a un determinato utente o IAM, allora IAM trasforma l'ARN nell'ID principale univoco dell'utente quando la policy viene salvata. Ciò aiuta a mitigare il rischio che qualcuno aumenti i propri privilegi rimuovendo e ricreando il ruolo o l'utente. Questa ID nella console non è normalmente presente, in quanto c'è anche una trasformazione inversa verso il nome ARN dell'utente quando la policy di affidabilità viene visualizzata. Tuttavia, se si elimina l'utente, la relazione viene interrotta. La policy non è più applicabile, anche se viene ricreato l'utente. Questo perché il nuovo utente ha un nuovo ID principale che non corrisponde all'ID archiviato nella policy di affidabilità. Quando ciò accade, l'ID principale viene visualizzato nelle politiche basate sulle risorse perché non è più AWS possibile mapparlo su un ARN valido. Il risultato è che se si elimina e si ricrea un utente o referenziato in un elemento `Principal` della policy di attendibilità, è necessario modificare il ruolo per sostituire l'ID principale non corretto con il nome ARN corretto. IAM trasforma nuovamente l'ARN nel nuovo ID principale dell'utente quando si salva la policy.

## Principi fondamentali di Centro identità IAM
<a name="principal-identity-users"></a>

In Centro identità IAM, il principio di una policy basata sulle risorse deve essere definito come principale dell' Account AWS . Per specificare l'accesso, fai riferimento all'ARN del ruolo del set di autorizzazioni nel blocco delle condizioni. Per ulteriori dettagli, consulta la sezione [Referenziare i set di autorizzazioni nelle policy delle risorse, in Amazon EKS e in AWS KMS](https://docs.aws.amazon.com/singlesignon/latest/userguide/referencingpermissionsets.html) nella *Guida per l'utente di Centro identità IAM*.

## AWS STS principi utente federati
<a name="sts-session-principals"></a>

È possibile specificare le *sessioni come utente federato* nell'elemento `Principal` di una policy basata sulle risorse o in chiavi di condizione che supportano i principali.

**Importante**  
AWS consiglia di limitare l'uso delle sessioni utente AWS STS federate. Invece, promuove l’uso di [ruoli IAM](IAM/latest/UserGuide/tutorial_cross-account-with-roles.html).

Un user principal AWS STS federato viene creato tramite l'`GetFederationToken`operazione richiamata con credenziali IAM di lunga durata. Le autorizzazioni dell’utente federato sono l’intersezione tra il principale che ha effettuato la chiamata `GetFederationToken` e le policy della sessione passate come parametri all’API `GetFederationToken`.

In AWS, gli utenti IAM o un utente Utente root dell'account AWS possono autenticarsi utilizzando chiavi di accesso a lungo termine. Per ulteriori informazioni su quali principali possono eseguire la federazione utilizzando questa operazione, consulta [Confronta le AWS STS credenziali](id_credentials_sts-comparison.md).
+ **Utente federato IAM**: un utente IAM esegue la federazione utilizzando l’operazione `GetFederationToken`, che si traduce in una sessione come utente federato per quell’utente IAM.
+ **Utente root federato**: un utente root esegue la federazione usando l’operazione `GetFederationToken`, che si traduce in una sessione come utente federato per quell’utente root.

Quando un utente IAM o un utente root richiede credenziali temporanee per AWS STS utilizzare questa operazione, inizia una sessione utente federata temporanea. L'ARN di questa sessione si basa sull'identità originale federata.

Per specificare l'ARN della sessione come utente federato nell'elemento `Principal`, utilizza questo formato:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:federated-user/user-name" }
```

## AWS presidi del servizio
<a name="principal-services"></a>

È possibile specificare AWS i servizi nell'`Principal`elemento di una politica basata sulle risorse o in chiavi di condizione che supportano i principali. Un *principale del servizio* è un identificatore per un servizio. 

*[I ruoli IAM che possono essere assunti da un AWS servizio sono chiamati ruoli di servizio.](id_roles.md#iam-term-service-role)* I ruoli di servizio devono includere una policy di affidabilità. Le *Policy di affidabilità* sono policy basate su risorse collegate a un ruolo che definisce quali principali possono assumere il ruolo. Alcuni ruoli di servizio hanno policy di affidabilità predefinite. Tuttavia, in alcuni casi, è necessario specificare il principale del servizio nella policy di affidabilità. Il principale del servizio in una policy IAM non può essere `"Service": "*"`.

**Importante**  
L'identificatore di un principale del servizio include il nome del servizio ed è solitamente nel formato seguente:  
`service-name.amazonaws.com`

Il principale del servizio è definito dal servizio. Puoi trovare il principale del servizio aprendo [AWS servizi che funzionano con IAM](reference_aws-services-that-work-with-iam.md), controllando se il servizio ha impostato **Sì** nella colonna **Ruolo collegato ai servizi** e aprendo il collegamento **Sì** per visualizzare la documentazione del ruolo collegato a tale servizio. Trova la sezione **Autorizzazioni del ruolo collegato ai servizi** per quel servizio per visualizzare il principale del servizio

L'esempio seguente mostra una policy che può essere collegata a un ruolo del servizio. Questa policy consente a due servizi, Amazon ECS e Elastic Load Balancing, di assumere il ruolo. I servizi possono eseguire qualsiasi attività concesse da una policy di autorizzazioni assegnata al ruolo (non visualizzato). Per specificare più principali del servizio, non si specificano due elementi `Service`, è possibile averne solo uno. Utilizzare invece una serie di principali del servizio come il valore di un elemento singolo `Service`.

```
"Principal": {
    "Service": [
        "ecs.amazonaws.com",
        "elasticloadbalancing.amazonaws.com"
   ]
}
```

## AWS principali di servizio nelle regioni che accettano l'adesione
<a name="principal-services-in-opt-in-regions"></a>

Puoi lanciare risorse in diverse AWS regioni e in alcune di esse devi aderire. Per un elenco completo delle regioni a cui devi aderire, consulta [Gestire AWS le regioni](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) nella *Riferimenti generali di AWS*guida.

Quando un AWS servizio in una regione opt-in effettua una richiesta all'interno della stessa regione, il formato del nome principale del servizio viene identificato come la versione non regionalizzata del nome principale del servizio:

`service-name.amazonaws.com`

Quando un AWS servizio in una regione opt-in invia una richiesta interregionale a un'altra regione, il formato del nome principale del servizio viene identificato come la versione regionalizzata del nome principale del servizio:

`service-name.{region}.amazonaws.com`

Ad esempio, si consideri un argomento Amazon SNS situato nella Regione `ap-southeast-1` e un bucket Amazon S3 nella Regione di adesione `ap-east-1`. Supponiamo che si desideri configurare le notifiche bucket S3 per pubblicare messaggi nell'argomento SNS. Per consentire al servizio S3 di inviare messaggi all'argomento SNS, è necessario concedere l'autorizzazione `sns:Publish` del principale del servizio S3 tramite la policy di accesso basata sulle risorse dell'argomento.

Se si specifica la versione non regionalizzata del principale del servizio S3 `s3.amazonaws.com`, nella policy di accesso all'argomento, la richiesta `sns:Publish` dal bucket all'argomento avrà esito negativo. L'esempio seguente specifica il principale del servizio S3 non regionalizzato nell'elemento della policy `Principal` della policy di accesso all'argomento SNS.

```
"Principal": { "Service": "s3.amazonaws.com" }
```

Poiché il bucket si trova in una regione di adesione e la richiesta viene effettuata al di fuori della stessa regione, il principale del servizio S3 appare come nome del principale del servizio regionalizzato, `s3.ap-east-1.amazonaws.com`. È necessario utilizzare il nome principale del servizio regionalizzato quando un AWS servizio in una regione opt-in invia una richiesta a un'altra regione. Dopo aver specificato il nome del principale del servizio regionalizzato, se il bucket effettua una richiesta `sns:Publish` all'argomento SNS situato in un'altra regione, la richiesta avrà esito positivo. L'esempio seguente specifica il principale del servizio S3 regionalizzato nell'elemento della policy `Principal` della policy di accesso all'argomento SNS.

```
"Principal": { "Service": "s3.ap-east-1.amazonaws.com" }
```

Le policy di risorse o gli elenchi di autorizzazioni basati sui principali dei servizi per le richieste tra regioni da una regione di adesione a un'altra regione avranno esito positivo solo se si specifica il nome del principale del servizio regionalizzato.

**Nota**  
Per le policy di attendibilità dei ruoli IAM, consigliamo di utilizzare il nome del principale del servizio non regionalizzato. Le risorse IAM sono globali e quindi lo stesso ruolo può essere utilizzato in qualsiasi regione.

## Tutti i principali
<a name="principal-anonymous"></a>

Puoi utilizzare un carattere jolly (\$1) per specificare tutti i principali nell'elemento `Principal` di una policy basata sulle risorse o nelle chiavi della condizione che supportano tali entità. [Policy basate sulle risorse](access_policies.md#policies_resource-based) *concedono* le autorizzazioni e le [chiavi della condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) vengono utilizzate per limitare le condizioni di un'istruzione della policy.

**Importante**  
Ti consigliamo di non utilizzare un carattere jolly (\$1) nell'elemento `Principal` di una policy basata sulle risorse con un effetto `Allow` a meno che tu non intenda concedere un accesso pubblico o anonimo. In caso contrario, specifica i principali, i servizi o gli account AWS previsti nell'elemento `Principal`, quindi limita ulteriormente l'accesso nell'elemento `Condition`. Ciò vale in special modo per le policy di attendibilità del ruolo IAM, perché consentono ad altri principali di diventare un principale nel tuo account.

Per le policy basate sulle risorse, l'utilizzo di un carattere jolly (\$1) con un effetto `Allow` concede l'accesso a tutti gli utenti, compresi gli utenti anonimi (accesso pubblico). Per gli utenti IAM e i principali del ruolo all'interno del tuo account non sono richieste altre autorizzazioni. Per i principali di altri account, devono inoltre disporre di autorizzazioni basate su identità nel proprio account che consentano loro di accedere alla tua risorsa. Questo è chiamato [accesso tra account](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).

Per gli utenti anonimi, i seguenti elementi sono equivalenti:

```
"Principal": "*"
```

```
"Principal" : { "AWS" : "*" }
```

Non è possibile utilizzare un carattere jolly per associare parte di un nome di un principale o di un ARN.

L'esempio seguente mostra una policy basata sulle risorse che può essere utilizzata al posto di [AWS Elementi della policy JSON: NotPrincipal](reference_policies_elements_notprincipal.md) per negare esplicitamente tutti i principali, *eccetto* quelli specificati nell'elemento `Condition`. Questa policy deve essere [aggiunta a un bucket Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/add-bucket-policy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UsePrincipalArnInsteadOfNotPrincipalWithDeny",
      "Effect": "Deny",
      "Action": "s3:*",
      "Principal": "*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:user/user-name"
        }
      }
    }
  ]
}
```

------

## Ulteriori informazioni
<a name="Principal_more-info"></a>

Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Esempi di policy di bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) nella *Guida per l'utente di Amazon Simple Storage Service (Amazon S3)*
+ [Policy di esempio per Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/UsingIAMwithSNS.html#ExamplePolicies_SNS) nella *Guida per gli sviluppatori di Amazon Simple Notification Service*
+ [Policy di esempio per Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) nella *Guida per gli sviluppatori di Amazon Simple Queue Service*
+ [Policy delle chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) nella *Guida per gli sviluppatori di AWS Key Management Service *
+ [Identificatori di account](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) nella *Riferimenti generali di AWS*
+ [Federazione OIDC](id_roles_providers_oidc.md)

# AWS Elementi della policy JSON: NotPrincipal
<a name="reference_policies_elements_notprincipal"></a>

L’elemento `NotPrincipal` utilizza `"Effect":"Deny"` per negare l’accesso a tutti i principali ***tranne*** il principale specificato nell’elemento `NotPrincipal`. Un principale può essere un utente IAM, un utente AWS STS federato, un ruolo IAM, una sessione di ruolo presunta Account AWS, un AWS servizio o un altro tipo principale. Per ulteriori informazioni sui principali, consulta [AWS Elementi della policy JSON: Principal](reference_policies_elements_principal.md).

`NotPrincipal` deve essere usato con `"Effect":"Deny"`. L'uso con `"Effect":"Allow"` non è supportato. 

**Importante**  
Si sconsiglia l’uso di `NotPrincipal` per nuove policy basate sulle risorse come parte della strategia di sicurezza e autorizzazione. Quando utilizzi `NotPrincipal`, la risoluzione dei problemi legati agli effetti di più tipi di policy può essere difficile. Con gli operatori di condizione ARN, si consiglia invece di utilizzare la chiave di contesto `aws:PrincipalArn`.

## Punti chiave
<a name="notprincipal-key-points"></a>
+ L’elemento `NotPrincipal` è supportato nelle policy basate sulle risorse per alcuni servizi AWS , tra cui gli endpoint VPC. Le policy basate su risorse sono policy che vengono incorporate direttamente in una risorsa. Non puoi utilizzare l'elemento `NotPrincipal` in una policy basata sull'identità IAM o in una policy di attendibilità del ruolo IAM.
+ Non utilizzare istruzioni di policy basate sulle risorse che includono un elemento di policy `NotPrincipal` con effetto `Deny` per gli utenti o i ruoli IAM ai quali è collegata una policy con limite delle autorizzazioni. L'elemento `NotPrincipal` con effetto `Deny` rifiuterà sempre qualsiasi principale IAM al quale è collegata una policy con limite delle autorizzazioni, indipendentemente dai valori specificati nell'elemento `NotPrincipal`. Ciò fa sì che alcuni utenti o ruoli IAM che altrimenti avrebbero accesso alla risorsa perdano l'accesso. Ti consigliamo di modificare le istruzioni di policy basate sulle risorse di modo che, per limitare l'accesso, utilizzino l'operatore di condizione [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) con la chiave di contesto [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn) anziché l'elemento `NotPrincipal`. Per ulteriori informazioni sui limiti delle autorizzazioni, consulta la pagina [Limiti delle autorizzazioni per le entità IAM](access_policies_boundaries.md).
+ Quando si utilizza `NotPrincipal`, è necessario specificare anche l’ARN dell’account del principale non rifiutato. In caso contrario, la policy potrebbe rifiutare l'accesso all'intero account contenente il principale. A seconda del servizio che si include nella policy, AWS potrebbe convalidare prima l'account e poi l'utente. Se viene valutato un utente con ruolo presunto (qualcuno che utilizza un ruolo), AWS potrebbe convalidare prima l'account, poi il ruolo e poi l'utente assunto. L'utente con ruolo assunto viene identificato tramite il nome della sessione del ruolo specificato quando l'utente ha assunto il ruolo. Pertanto, è fortemente consigliabile includere esplicitamente l'ARN di un account utente oppure includere sia l'ARN di un ruolo sia l'ARN dell'account che contiene quel ruolo.
+ L’elemento `NotPrincipal` non è supportato nelle policy di controllo dei servizi (SCP) e nelle policy di controllo delle risorse (RCP).

## Alternative all’elemento `NotPrincipal`
<a name="notprincipal-alternatives"></a>

Quando si gestisce il controllo degli accessi in AWS, può verificarsi la necessità di negare esplicitamente a tutti i responsabili l'accesso a una risorsa, ad eccezione di uno o più principali specificati dall'utente. AWS consiglia di utilizzare un'istruzione Deny con tasti contestuali delle condizioni globali per un controllo più preciso e una risoluzione dei problemi più semplice. Gli esempi seguenti mostrano approcci alternativi che utilizzano operatori di condizione come `StringNotEquals` o `ArnNotEquals` per negare l’accesso a tutti i principali, ad eccezione di quelli specificati nell’elemento Condizione.

## Scenario di esempio che utilizza un ruolo IAM
<a name="notprincipal-alternative-role"></a>

Puoi utilizzare una policy basata sulle risorse con un’istruzione Nega per impedire a tutti i ruoli IAM, ad eccezione di quelli specificati nell’elemento Condizione, di accedere alle tue risorse o di manipolarle. Questo approccio segue il principio AWS di sicurezza secondo cui un'esplicita deny ha sempre la precedenza su qualsiasi istruzione di autorizzazione e aiuta a mantenere il principio del privilegio minimo nell'infrastruttura. AWS 

Invece di usare `NotPrincipal`, consigliamo di utilizzare un’istruzione Nega con chiavi di contesto di condizione globali e l’operatore di condizione come [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) per consentire esplicitamente a un ruolo IAM l’accesso alle tue risorse. L’esempio seguente impiega [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) per consentire esplicitamente al ruolo `read-only-role` di accedere ai bucket Amazon S3 nella cartella `Bucket_Account_Audit`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyCrossAuditAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::Bucket_Account_Audit",
        "arn:aws:s3:::Bucket_Account_Audit/*"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:role/read-only-role"
        }
      }
    }
  ]
}
```

------

## Scenario di esempio che utilizza un principale del servizio
<a name="notprincipal-alternative-service-principal"></a>

È possibile utilizzare un’istruzione Nega per impedire a tutti i principali del servizio, ad eccezione di quelli specificati nell’elemento `Condition`, di accedere alle risorse o di manipolarle. Questo approccio è particolarmente utile quando è necessario implementare controlli di accesso granulari o stabilire limiti di sicurezza tra diversi servizi e applicazioni nell’ambiente AWS .

Invece di usare `NotPrincipal`, consigliamo di utilizzare un’istruzione Nega con chiavi di contesto di condizione globali e l’operatore di condizione [`StringNotEquals`](reference_policies_elements_condition_operators.md#Conditions_String) per consentire esplicitamente a un principale del servizio l’accesso alle tue risorse. L’esempio seguente impiega `aws:PrincipalServiceName` per consentire esplicitamente al principale del servizio AWS CodeBuild di accedere ai bucket Amazon S3 nella cartella `BUCKETNAME`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyNotCodeBuildAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::BUCKETNAME",
        "arn:aws:s3:::BUCKETNAME/*"
      ],
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:PrincipalServiceName": "codebuild.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Elementi delle policy JSON IAM: Action
<a name="reference_policies_elements_action"></a>

L'elemento `Action` descrive l'operazione o le operazioni specifiche che saranno concesse o negate. Le istruzioni devono includere un elemento `Action` o un elemento `NotAction`. Ogni AWS servizio dispone di un proprio set di azioni che descrivono le attività che è possibile eseguire con tale servizio. [Ad esempio, l'elenco delle azioni per Amazon S3 è disponibile in [Specificying Permissions in a Policy nella](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html)*Amazon Simple Storage Service User Guide*, l'elenco delle azioni per Amazon EC2 è disponibile nel riferimento alle API di Amazon EC2 e l'elenco delle azioni per AWS Identity and Access Management è disponibile nel [riferimento alle API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html) IAM.](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) Per trovare l'elenco delle operazioni per altri servizi, consulta la [documentazione](https://aws.amazon.com/documentation) di riferimento alle API per il servizio.

AWS fornisce inoltre informazioni di riferimento sui servizi in formato JSON per semplificare l'automazione dei flussi di lavoro di gestione delle policy. Con le informazioni di riferimento del servizio, è possibile accedere alle azioni, alle risorse e alle chiavi di condizione disponibili tramite file leggibili Servizi AWS dalla macchina. Per ulteriori informazioni, consulta [Simplified Servizio AWS information for programmatic access](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html) nella documentazione di riferimento sull’autorizzazione dei servizi.

È possibile specificare un valore utilizzando un namespace come prefisso dell’operazione (`iam`, `ec2` `sqs`, `sns`, `s3`, ecc.) seguito dal nome dell’operazione da consentire o negare. Il nome deve corrispondere a un'operazione che è supportata dal servizio. Il prefisso e il nome dell'operazione non fanno distinzione tra maiuscole e minuscole. Ad esempio, `iam:ListAccessKeys` è equivalente a `IAM:listaccesskeys`. I seguenti esempi mostrano gli elementi `Action` per diversi servizi.

**Operazione di Amazon SQS**

```
"Action": "sqs:SendMessage"
```

**Operazione Amazon EC2**

```
"Action": "ec2:StartInstances"
```

**Operazione IAM**

```
"Action": "iam:ChangePassword"
```

**Operazioni di Amazon S3**

```
"Action": "s3:GetObject"
```

Puoi specificare valori multipli per l'elemento `Action`.

```
"Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "ec2:StartInstances", "iam:ChangePassword", "s3:GetObject" ]
```

Puoi utilizzare caratteri jolly con abbinamento a più caratteri (`*`) e caratteri jolly con abbinamento a carattere singolo (`?`) per consentire l'accesso a tutte le azioni offerte dallo specifico prodotto. AWS Ad esempio, il seguente elemento `Action` si applica a tutte le operazioni S3.

```
"Action": "s3:*"
```

Puoi anche utilizzare caratteri jolly (`*` o `?`) come parte del nome dell’operazione. Ad esempio, il seguente elemento `Action` si applica a tutte le operazioni IAM che includono la stringa `AccessKey`, incluso `CreateAccessKey`, `DeleteAccessKey`, `ListAccessKeys` e `UpdateAccessKey`.

```
"Action": "iam:*AccessKey*"
```

Alcuni servizi ti consentono di limitare le operazioni disponibili. Ad esempio, Amazon SQS consente di rendere disponibile solo un sottoinsieme di tutte le operazioni Amazon SQS possibili. In questo caso, il carattere jolly `*` non ti permette il controllo completo della coda; ti permette solo il sottoinsieme di operazioni che hai condiviso. Per ulteriori informazioni, consulta [Informazioni sulle autorizzazioni](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes) nella *Guida per gli sviluppatori di Amazon Simple Storage Service*.

# Elementi delle policy JSON IAM: NotAction
<a name="reference_policies_elements_notaction"></a>

`NotAction` è un elemento di policy avanzato che corrisponde esplicitamente a tutte le operazioni *tranne* quelle specificamente elencate. L'utilizzo di `NotAction` può determinare una policy più breve dal momento che è possibile elencare solo poche operazioni che non devono corrispondere, anziché includere un lungo elenco di operazioni che devono corrispondere. Le azioni specificate in non `NotAction` sono influenzate dall'effetto `Allow` o `Deny` contenuto in una istruzione della policy. Questo significa a sua volta che tutte le operazioni o i servizi applicabili che non sono elencati sono consentiti se utilizzi l'effetto `Allow`. Inoltre, tali operazioni o servizi non elencati vengono negati se utilizzi l'effetto `Deny`. Quando utilizzi `NotAction` con l'elemento `Resource`, fornisci l'ambito della policy. In questo modo si AWS determinano le azioni o i servizi applicabili. Per ulteriori informazioni, consulta la policy di esempio seguente. 

**NotAction con Allow** 

È possibile utilizzare l'`NotAction`elemento in un'istruzione con `"Effect": "Allow"` per fornire l'accesso a tutte le azioni di un AWS servizio, ad eccezione delle azioni specificate in`NotAction`. È possibile utilizzarlo con l'elemento `Resource` per fornire l'ambito della policy, limitando le operazioni consentite a quelle che possono essere eseguite sulla risorsa specificata.

L'esempio seguente consente agli utenti di accedere a tutte le operazioni Amazon S3 che possono essere eseguite su qualsiasi risorsa S3 *eccetto* l'eliminazione di un bucket. Inoltre, questa policy non consente operazioni in altri servizi, perché le operazioni di altri servizi non sono applicabili alle risorse S3.

```
"Effect": "Allow",
"NotAction": "s3:DeleteBucket",
"Resource": "arn:aws:s3:::*",
```

È possibile che talvolta si desideri consentire l'accesso a un numero elevato di operazioni. Utilizzando l'elemento `NotAction` si inverte efficacemente l'istruzione, determinando un elenco più breve di operazioni. Ad esempio, poiché AWS dispone di così tanti servizi, potresti voler creare una policy che consenta all'utente di fare tutto tranne accedere alle azioni IAM.

L'esempio seguente consente agli utenti di accedere a ogni azione in ogni AWS servizio tranne IAM.

```
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
```

Va prestata attenzione all'utilizzo dell'elemento `NotAction` e `"Effect": "Allow"` nella stessa istruzione o in un'istruzione diversa nella policy. `NotAction` corrisponde a tutti i servizi e le operazioni che non sono esplicitamente elencati o applicabili alla risorsa specificata e può finire col concedere agli utenti più autorizzazioni del previsto.

**NotAction con Deny**

Puoi utilizzare l'elemento `NotAction` in un'istruzione con `"Effect": "Deny"` per negare l'accesso a tutte le risorse elencate tranne le operazioni specificate nell'elemento `NotAction`. Questa combinazione non consente gli elementi elencati ma invece nega esplicitamente le operazioni non elencate. Devi comunque consentire le operazioni che desideri consentire.

Il seguente esempio condizionale nega l'accesso alle operazioni non IAM se l'utente non ha eseguito l'accesso utilizzando l'autenticazione MFA. Se l'utente ha eseguito l'accesso con l'autenticazione MFA, il test `"Condition"` non riesce e l'istruzione `"Deny"` finale non produce effetti. Nota, tuttavia, che questa istruzione non concederebbe all'utente l'accesso ad alcuna operazione, ma negherebbe solamente in modo esplicito tutte le altre operazioni eccetto le operazioni IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyAllUsersNotUsingMFA",
        "Effect": "Deny",
        "NotAction": "iam:*",
        "Resource": "*",
        "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}}
    }]
}
```

------

Per una policy di esempio che nega l'accesso alle operazioni al di fuori di regioni specifiche, ad eccezione delle operazioni di servizi specifici, consulta [AWS: nega l'accesso in AWS base alla regione richiesta](reference_policies_examples_aws_deny-requested-region.md).

# Elementi delle policy JSON IAM: Resource
<a name="reference_policies_elements_resource"></a>

In una istruzione di policy IAM, l'elemento `Resource` definisce l'oggetto o gli oggetti a cui si applica l'istruzione. Le istruzioni devono includere un elemento `Resource` o un elemento `NotResource`.

Specifica una risorsa utilizzando un nome della risorsa Amazon (ARN). Il formato dell'ARN dipende dalla Servizio AWS risorsa specifica a cui ti riferisci. Sebbene il formato ARN vari, si utilizza sempre un ARN per identificare una risorsa. Per ulteriori informazioni sul formato di ARNs, vedere[IAM ARNs](reference_identifiers.md#identifiers-arns). Per informazioni su come specificare una risorsa, consulta la documentazione relativa al servizio per la quale desideri scrivere un'istruzione.

**Nota**  
Alcuni Servizi AWS non consentono di specificare azioni per singole risorse. In questi casi, tutte le azioni elencate nell'elemento `Action` o `NotAction` si applicano a tutte le risorse di quel servizio. In questo caso, viene utilizzato il carattere jolly (`*`) nell'elemento `Resource`.

L'esempio seguente si riferisce a una determinata coda Amazon SQS.

```
"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"
```

L'esempio seguente si riferisce all'utente IAM denominato `Bob` in un Account AWS.

**Nota**  
Nell'elemento `Resource`, il nome utente IAM prevede una distinzione tra lettere minuscole e maiuscole.

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"
```

## Utilizzo di caratteri jolly nella risorsa ARNs
<a name="reference_policies_elements_resource_wildcards"></a>

È possibile utilizzare caratteri jolly (`*` e `?`) all'interno di singoli segmenti di un ARN (le parti separate da due punti) per rappresentare:
+ Qualsiasi combinazione di caratteri (`*`)
+ Qualsiasi carattere singolo (`?`)

È possibile utilizzare più caratteri `*` o `?` in ogni segmento. Se il carattere jolly `*` è l'ultimo carattere del segmento dell'ARN di una risorsa, può espandersi fino a superare i limiti dei due punti. Consigliamo di utilizzare i caratteri jolly (`*` e `?`) all'interno dei segmenti dell'ARN separati da due punti.

**Nota**  
Non puoi utilizzare un carattere jolly nel segmento dei servizi che identifica il prodotto. AWS Per ulteriori informazioni sui segmenti degli ARN, consulta [Identifica AWS le risorse con Amazon Resource Names (ARNs)](reference-arns.md)

L'esempio seguente si riferisce a tutti gli utenti IAM il cui percorso è `/accounting`. 

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"
```

L'esempio seguente si riferisce a tutti gli elementi all'interno di un determinato bucket Amazon S3.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
```

Il carattere asterisco (`*`) può espandersi per sostituire tutto all'interno di un segmento, inclusi caratteri come una barra (`/`) che potrebbero sembrare un delimitatore all'interno di un determinato spazio dei nomi del servizio. Ad esempio, considera il seguente ARN di Amazon S3 come la stessa logica di espansione con caratteri jolly si applica a tutti i servizi.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"
```

I caratteri jolly nell'ARN si applicano a tutti i seguenti oggetti nel bucket, non solo al primo oggetto elencato.

```
amzn-s3-demo-bucket/1/test/object.jpg
amzn-s3-demo-bucket/1/2/test/object.jpg
amzn-s3-demo-bucket/1/2/test/3/object.jpg 
amzn-s3-demo-bucket/1/2/3/test/4/object.jpg
amzn-s3-demo-bucket/1///test///object.jpg
amzn-s3-demo-bucket/1/test/.jpg
amzn-s3-demo-bucket//test/object.jpg
amzn-s3-demo-bucket/1/test/
```

Considera gli ultimi due oggetti dell'elenco precedente. Il nome di un oggetto Amazon S3 può iniziare o terminare validamente con il carattere barra (`/`) del delimitatore convenzionale. Mentre `/` funziona come delimitatore, non vi è alcun significato specifico quando questo carattere viene utilizzato all'interno dell'ARN di una risorsa. Viene trattato come qualsiasi altro carattere valido. L'ARN non corrisponde ai seguenti oggetti:

```
amzn-s3-demo-bucket/1-test/object.jpg
amzn-s3-demo-bucket/test/object.jpg
amzn-s3-demo-bucket/1/2/test.jpg
```

## Specifica di più risorse
<a name="reference_policies_elements_resource_multiple-resources"></a>

È possibile specificare più risorse nell'`Resource`elemento utilizzando una matrice di. ARNs L'esempio seguente si riferisce a due tabelle DynamoDB.

```
"Resource": [
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table",
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table"
]
```

## Utilizzo di variabili politiche nella risorsa ARNs
<a name="reference_policies_elements_resource_policy-variables"></a>

Nell'elemento `Resource`, puoi utilizzare le [variabili di policy](reference_policies_variables.md) JSON nella parte dell'ARN che identifica la risorsa specifica (ovvero nella parte finale di ARN). Ad esempio, puoi utilizzare la chiave `{aws:username}` come parte di una risorsa ARN per indicare che l'attuale nome dell'utente deve essere incluso come parte del nome della risorsa. L'esempio seguente mostra come puoi utilizzare la chiave `{aws:username}` in un elemento `Resource`. La policy consente l'accesso a una tabella Amazon DynamoDB che corrisponde al nome dell'utente corrente.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/${aws:username}"
    }
}
```

------

Per ulteriori informazioni sulle variabili di policy JSON, consultare la pagina [Elementi delle policy IAM: variabili e tag](reference_policies_variables.md).

# Elementi delle policy JSON IAM: NotResource
<a name="reference_policies_elements_notresource"></a>

`NotResource` è un elemento della policy avanzato che corrisponde esplicitamente a tutte le risorse tranne quelle specificate. L'utilizzo di `NotResource` può risultare in una policy di durata inferiore elencando solo poche risorse che non devono corrispondere, anziché includere un lungo elenco di risorse che corrisponderanno. Ciò è particolarmente utile per le policy che si applicano all'interno di un singolo servizio AWS . 

Ad esempio, immaginate di disporre di un gruppo denominato `HRPayroll`. I membri di `HRPayroll` non devono avere il permesso di accedere a qualsiasi risorsa Amazon S3 ad eccezione della cartella `Payroll` nel bucket `HRBucket`. La policy seguente rifiuta esplicitamente l'accesso a tutte le risorse Amazon S3 eccetto a quelle elencate. Tuttavia, questa policy non concede all'utente l'accesso a nessuna risorsa.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}
```

------

Di solito, per negare esplicitamente l'accesso a una risorsa è necessario scrivere una policy che utilizza `"Effect":"Deny"` e che include un elemento `Resource` che elenca ogni cartella individualmente. Tuttavia, in tal caso, ogni volta che aggiungi una cartella a `HRBucket` o una risorsa ad Amazon S3 che non deve essere accessibile, è necessario aggiungere il suo nome all’elenco nell’elemento `Resource`. Se si utilizza invece un elemento `NotResource`, agli utenti viene automaticamente negato l'accesso a nuove cartelle a meno che non si aggiungano i nomi delle cartelle all'elemento `NotResource`. 

Quando si utilizza `NotResource`, è necessario tenere presente che le risorse specificate in questo elemento sono le *uniche* risorse a non essere limitate. Questo, a sua volta, limita tutte le risorse che si applicano all'operazione. Nell'esempio precedente, la policy riguarda solo le operazioni di Amazon S3 e quindi solo le risorse di Amazon S3. Se l’elemento `Action` avesse incluso anche operazioni di Amazon EC2, la policy avrebbe rifiutato l’accesso a qualunque risorsa EC2 non specificata nell’elemento `NotResource`. Per sapere quali azioni in un servizio consentono di specificare l'ARN di una risorsa, [consulta Azioni, risorse e chiavi AWS di condizione](reference_policies_actions-resources-contextkeys.html) per i servizi.

## NotResource con altri elementi
<a name="notresource-element-combinations"></a>

Non bisognerebbe **mai** utilizzare insieme gli elementi `"Effect": "Allow"`, `"Action": "*"` e `"NotResource": "arn:aws:s3:::HRBucket"`. Questa affermazione è molto pericolosa, perché consente tutte le azioni AWS su tutte le risorse tranne il bucket `HRBucket` S3. Ciò consentirebbe addirittura a un utente di aggiungere al proprio profilo una policy che gli consenta di accedere a `HRBucket`. Non bisogna farlo. 

Va prestata attenzione all'utilizzo dell'elemento `NotResource` e `"Effect": "Allow"` nella stessa istruzione o in un'istruzione diversa nella policy. `NotResource` consente tutti i servizi e risorse che non sono elencati in modo esplicito e può concedere agli utenti più autorizzazioni del previsto. L'utilizzo dell'elemento `NotResource` e `"Effect": "Deny"` nella stessa istruzione nega i servizi e le risorse che non sono elencati in modo esplicito.

# Elementi delle policy JSON IAM: Condition
<a name="reference_policies_elements_condition"></a>

L'elemento `Condition` (o *blocco* `Condition`) consente di specificare le condizioni di attivazione di una policy. L’elemento `Condition` è facoltativo. Nell'elemento `Condition` è possibile creare espressioni in cui utilizzare [operatori condizionali](reference_policies_elements_condition_operators.md) (uguale a, meno di, e altri) per confrontare le chiavi di contesto e i valori della policy rispetto alle chiavi e ai valori del contesto della richiesta. Per ulteriori informazioni sul contesto della richiesta, consultare [Componenti di una richiesta](intro-structure.md#intro-structure-request).

```
"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
```

La chiave di contesto specificata in una condizione della policy può essere una [chiave di contesto della condizione globale](reference_policies_condition-keys.md) o una chiave di condizione specifica del servizio. Le chiavi di contesto della condizione globale presentano il prefisso `aws:`. Le chiavi di contesto specifiche del servizio presentano il prefisso del servizio. Ad esempio, Amazon EC2 consente di scrivere una condizione utilizzando la chiave di contesto `ec2:InstanceType`, univoca per quel servizio. Per visualizzare le chiavi di contesto IAM specifiche del servizio con il prefisso `iam:`, consulta [chiavi contestuali IAM e AWS STS condition](reference_policies_iam-condition-keys.md).

I *nomi* delle chiavi di contesto non fanno distinzione tra maiuscole e minuscole. Ad esempio, se si include la chiave di contesto `aws:SourceIP` è identico al test per la chiave `AWS:SourceIp`. La distinzione tra maiuscole e minuscole dei *valori* delle chiavi di contesto dipende dall'[operatore di condizione](reference_policies_elements_condition_operators.md) utilizzato. Ad esempio, la seguente condizione include l'operatore `StringEquals` per rendere possibile la corrispondenza solo delle richieste effettuate da `john`. Agli utenti denominati `John` viene negato l'accesso.

```
"Condition" : { "StringEquals" : { "aws:username" : "john" }}
```

Le seguenti condizione utilizza l'operatore [`StringEqualsIgnoreCase`](reference_policies_elements_condition_operators.md#Conditions_String) per corrispondere agli utenti denominati `john` o `John`.

```
"Condition" : { "StringEqualsIgnoreCase" : { "aws:username" : "john" }}
```

Alcune chiavi di contesto supportano le coppie chiave-valore che consentono di specificare parte del nome della chiave. Gli esempi includono la chiave di [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md#condition-keys-requesttag)contesto AWS KMS [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context), la e la chiave di [`ResourceTag/tag-key`](reference_policies_condition-keys.md#condition-keys-resourcetag)contesto supportate da più servizi.
+ Se utilizzi la chiave di contesto `ResourceTag/tag-key` per un servizio come [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#amazon-ec2-keys), devi specificare un nome di chiave per la `tag-key`. 
+ **I nomi delle chiavi non fanno distinzione tra maiuscole e minuscole.** Questo significa che se specifichi `"aws:ResourceTag/TagKey1": "Value1"` nell'elemento condizione della policy, la condizione corrisponderà a una chiave di tag della risorsa denominata `TagKey1` o `tagkey1`, ma non a entrambe.
+ AWS i servizi che supportano questi attributi potrebbero consentire di creare più nomi di chiavi che differiscono solo in base alle maiuscole e alle minuscole. Ad esempio, è possibile applicare un tag a un'istanza Amazon EC2 con `ec2=test1` e `EC2=test2`. Quando utilizzi una condizione come `"aws:ResourceTag/EC2": "test1"` per consentire l'accesso alla risorsa, il nome della chiave corrisponde a entrambi i tag, ma solo a un valore. Questo può causare errori di condizione imprevisti.

**Importante**  
Come best practice, verifica che i membri del tuo account seguano una convenzione di denominazione coerente quando assegnano nomi agli attributi di coppie chiave- valore. Alcuni esempi includono tag o contesti di crittografia AWS KMS . È possibile imporlo utilizzando la chiave di [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys)contesto per l'etichettatura o la [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys)per il contesto di AWS KMS crittografia.
+ Per un elenco di tutti gli operatori di condizione e per una descrizione del funzionamento di ciascun operatore, consulta [Operatori di condizione](reference_policies_elements_condition_operators.md)
+ Se non è diversamente specificato, tutte le chiavi di contesto possono avere valori multipli. Per ulteriori informazioni sulla gestione delle chiavi di contesto che dispongono di più valori, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys)
+ Per un elenco di tutte le chiavi di contesto disponibili a livello globale, consulta [AWS chiavi di contesto della condizione globale](reference_policies_condition-keys.md).
+ Per le chiavi di contesto delle condizioni definite da ciascun servizio, consulta [Azioni, risorse e chiavi di condizione per i AWS](reference_policies_actions-resources-contextkeys.html) servizi.

## Il contesto della richiesta
<a name="AccessPolicyLanguage_RequestContext"></a>

Quando un [principale](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) effettua una [richiesta](intro-structure.md#intro-structure-request) a AWS, AWS raccoglie le informazioni sulla richiesta in un contesto di richiesta. Il contesto della richiesta include informazioni sul principale, sulle risorse, sulle operazioni e su altre proprietà dell’ambiente. La valutazione delle policy confronta le proprietà nella policy con le proprietà inviate nella richiesta per valutare e autorizzare le operazioni che è possibile eseguire in AWS.

È possibile utilizzare l'elemento `Condition` di una policy JSON per testare chiavi di contesto specifiche rispetto al contesto della richiesta. Ad esempio, puoi creare una policy che utilizzi la chiave [aws: CurrentTime](reference_policies_condition-keys.md#condition-keys-currenttime) context per [consentire a un utente di eseguire azioni solo entro un intervallo di date specifico](reference_policies_examples_aws-dates.md).

L’esempio seguente mostra una rappresentazione del contesto della richiesta quando Martha Rivera invia una richiesta per disattivare il suo dispositivo MFA.

```
Principal: AROA123456789EXAMPLE
Action: iam:DeactivateMFADevice
Resource: arn:aws:iam::user/martha
Context:
  – aws:UserId=AROA123456789EXAMPLE:martha
  – aws:PrincipalAccount=1123456789012
  – aws:PrincipalOrgId=o-example
  – aws:PrincipalARN=arn:aws:iam::1123456789012:assumed-role/TestAR
  – aws:MultiFactorAuthPresent=true
  – aws:MultiFactorAuthAge=2800
  – aws:CurrentTime=...
  – aws:EpochTime=...
  – aws:SourceIp=...
```

Il contesto della richiesta viene confrontato con una policy che consente agli utenti di rimuovere il proprio dispositivo di autenticazione a più fattori (MFA), ma solo se è stato effettuato l’accesso utilizzando l’MFA nell’ultima ora (3600 secondi).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "AllowRemoveMfaOnlyIfRecentMfa",
        "Effect": "Allow",
        "Action": [
            "iam:DeactivateMFADevice"
        ],
        "Resource": "arn:aws:iam::*:user/${aws:username}",
        "Condition": {
            "NumericLessThanEquals": {"aws:MultiFactorAuthAge": "3600"}
        }
    }
}
```

------

In questo esempio, la policy corrisponde al contesto della richiesta: l’operazione è la stessa, la risorsa corrisponde al carattere jolly “\$1” e il valore per `aws:MultiFactorAuthAge` è 2800, che è inferiore a 3600, quindi la policy consente questa richiesta di autorizzazione.

AWS valuta ogni chiave di contesto nella policy e restituisce un valore *vero* o *falso*. Una chiave di contesto che non è presente nella richiesta è considerata una mancata corrispondenza.

Il contesto della richiesta può restituire i seguenti valori:
+ **True**: se il richiedente ha effettuato l'accesso utilizzando MFA nell'ultima ora o meno, la condizione restituisce *true*.
+ **False**: se il richiedente ha effettuato l'accesso utilizzando MFA più di un'ora fa, la condizione restituisce *false*.
  + **Non presente**: se il richiedente ha effettuato una richiesta utilizzando le proprie chiavi di accesso utente IAM nell' AWS API AWS CLI or, la chiave non è presente. In questo caso, la chiave non è presente e non viene restituita la corrispondenza.

**Nota**  
In alcuni casi, quando il valore della chiave della condizione non è presente, la condizione può comunque restituire True. Ad esempio, se si aggiunge il qualificatore `ForAllValues`, la richiesta restituisce True se la chiave di contesto non è inclusa nella richiesta. Per evitare che le chiavi di contesto mancanti o con valori vuoti vengano valutate come True, puoi includere l’[Operatore di condizione Null](reference_policies_elements_condition_operators.md#Conditions_Null) nella tua policy con un valore `false` per verificare che la chiave di contesto esista e che il suo valore non sia Null.

## Il blocco condizione
<a name="AccessPolicyLanguage_ConditionBlock"></a>

L'esempio seguente mostra il formato di base di un elemento `Condition`:

```
"Condition": {"StringLike": {"s3:prefix": ["jane/*"]}}
```

Un valore dalla richiesta è rappresentato da una chiave di contesto, in questo caso `s3:prefix`. Il valore della chiave di contesto viene confrontato con un valore specificato come valore letterale, ad esempio `jane/*`. Il tipo di confronto da eseguire viene specificato dall'[operatore di condizione](reference_policies_elements_condition_operators.md) (in questo caso, `StringLike`). Puoi creare condizioni che confrontano stringhe, date, numeri e altro ancora, utilizzando tipiche comparazioni booleane come ad esempio "uguale a", "maggiore di" e "minore di". Se utilizzi [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String) o [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN), puoi utilizzare una [variabile di policy](reference_policies_variables.md) nel valore della chiave di contesto. L'esempio seguente include la variabile `aws:username`. 

```
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
```

In alcuni casi, le chiavi di contesto possono contenere più valori. Ad esempio, una richiesta ad Amazon DynamoDB potrebbe richiedere la restituzione o l'aggiornamento di più attributi di una tabella. Una policy per l'accesso alle tabelle di DynamoDB può includere la chiave `dynamodb:Attributes` che contiene tutti gli attributi elencati nella richiesta. Puoi testare i vari attributi nella richiesta a fronte di un elenco di attributi consentiti in una policy, utilizzando operatori predefiniti nell'elemento `Condition`. Per ulteriori informazioni, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

Quando la policy viene valutata durante una richiesta, AWS sostituisce la chiave con il valore corrispondente della richiesta. (In questo esempio, AWS utilizzerebbe la data e l'ora della richiesta.) Dopo la valutazione della condizione, viene restituito un risultato True o False, che viene poi utilizzato per decidere se la policy nel suo complesso deve consentire o rifiutare la richiesta. 

### Valori multipli in una condizione
<a name="Condition-multiple-conditions"></a>

Un elemento `Condition` può contenere più operatori di condizioni, ciascuno delle quali può includere a sua volta più coppie chiave-valore. L'immagine seguente illustra questo scenario. 

![\[diagrammi a blocchi dell'operatore a due condizioni. Il primo blocco include due segnaposto con chiavi di contesto, ciascuno con più valori. Il secondo blocco di condizione include una chiave di contesto con più valori.\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block.diagram.png)


Per ulteriori informazioni, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

# Elementi della policy JSON IAM: operatori di condizione
<a name="reference_policies_elements_condition_operators"></a>

<a name="topiclist"></a>

Utilizzare gli operatori di condizione nell'elemento `Condition` per confrontare chiave e valore nella policy con i valori nel contesto della richiesta. Per ulteriori informazioni sull'elemento `Condition`, consultare [Elementi delle policy JSON IAM: Condition](reference_policies_elements_condition.md).

L'operatore di condizione che è possibile utilizzare in una policy dipende dalla chiave di condizione scelta. È possibile scegliere una chiave di condizione globale o una chiave di condizione specifica del servizio. Per informazioni su quale operatore di condizione è possibile utilizzare per una chiave di condizione globale, consultare [AWS chiavi di contesto della condizione globale](reference_policies_condition-keys.md). Per sapere quale operatore di condizione è possibile utilizzare per una chiave di condizione specifica del servizio, consulta [Azioni, risorse e chiavi di condizione per AWS i servizi](reference_policies_actions-resources-contextkeys.html) e scegli il servizio che desideri visualizzare.

**Importante**  
Se la chiave specificata in una condizione di policy non è presente nel contesto della richiesta, i valori non corrispondono e la condizione è *false*. Se la condizione di policy richiede che la chiave sia *non* abbinata, ad esempio `StringNotLike` o `ArnNotLike` e la chiave giusta non è presente, la condizione è *true*. [Questa logica si applica a tutti gli operatori di condizione tranne... IfExists](#Conditions_IfExists)e [Null check](#Conditions_Null). Questi operatori testano se la chiave è presente (esiste) nel contesto della richiesta.

Gli operatori di condizione possono essere raggruppati nelle seguenti categorie:
+ [Stringa](#Conditions_String)
+ [Numerici](#Conditions_Numeric)
+ [Data e ora](#Conditions_Date)
+ [Booleano](#Conditions_Boolean)
+ [Binary](#Conditions_BinaryEquals)
+ [IP address (Indirizzo IP)](#Conditions_IPAddress)
+ [Amazon Resource Name (ARN)](#Conditions_ARN) (disponibile solo per alcuni servizi)
+ [... IfExists](#Conditions_IfExists)(verifica se il valore della chiave esiste come parte di un altro controllo)
+ [Verifica Null](#Conditions_Null) (controlla se il valore della chiave esiste come controllo autonomo)

## Operatori di condizione stringa
<a name="Conditions_String"></a>

Gli operatori di condizioni stringa consentono di creare elementi `Condition` che limitano l'accesso in base al confronto con una chiave con un valore di stringa.
+  **Variabili di policy**: [supportate](reference_policies_variables.md)
+ **Caratteri jolly**: [supportati](#Conditions_String-wildcard)


****  

| Operatore di condizione | Description | 
| --- | --- | 
|   `StringEquals`   |  Corrispondenza esatta, con distinzione maiuscole/minuscole  | 
|   `StringNotEquals`   |  Corrispondenza negativa  | 
|   `StringEqualsIgnoreCase`   |  Corrispondenza esatta, senza distinzione maiuscole/minuscole  | 
|   `StringNotEqualsIgnoreCase`   |  Corrispondenza negativa, senza distinzione maiuscole/minuscole  | 
|   `StringLike`   | Corrispondenza con distinzione maiuscole/minuscole. I valori possono includere una corrispondenza con più caratteri jolly (\$1) e un singolo carattere jolly (?) in qualsiasi punto della stringa. Per ottenere corrispondenze di stringhe parziali devi specificare caratteri jolly.   Se una chiave contiene più valori, `StringLike` può essere qualificato con gli operatori su set: `ForAllValues:StringLike` e `ForAnyValue:StringLike`. Per ulteriori informazioni, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).   | 
|   `StringNotLike`   |  Corrispondenza negativa, con distinzione maiuscole/minuscole. I valori possono includere una corrispondenza con più caratteri jolly (\$1) o un singolo carattere jolly (?) in qualsiasi punto della stringa.  | 

**Example operatore di condizione stringa**  
Ad esempio, l'istruzione seguente contiene un elemento `Condition` che utilizza la chiave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) per specificare che il principale che effettua la richiesta deve essere contrassegnato con la categoria di processo `iamuser-admin`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalTag/job-category": "iamuser-admin"
            }
        }
    }
}
```
Se la chiave specificata in una condizione di policy non è presente nel contesto della richiesta, i valori non corrispondono. In questo esempio, la chiave `aws:PrincipalTag/job-category` è presente nel contesto della richiesta se il principale utilizza un utente IAM con tag collegati. È inclusa anche per un principale che utilizza un ruolo IAM con tag collegati o tag di sessione. Se un utente senza il tag tenta di visualizzare o modificare una chiave di accesso, la condizione restituisce `false` e la richiesta viene negata implicitamente da questa istruzione.  
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – iamuser-admin</pre>  |  Match | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – dev-ops</pre>  | Nessuna corrispondenza | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  |  `aws:PrincipalTag/job-category` non è presente nel contesto della richiesta.  | Nessuna corrispondenza | 

**Example utilizzo di una variabile di policy con un operatore di condizione stringa**  
Nell'esempio seguente viene utilizzato l'operatore di condizione `StringLike` per eseguire il confronto con una [variabile di policy](reference_policies_variables.md) per creare una policy che consente a un utente IAM di utilizzare la console Amazon S3 per gestire la propria "directory principale" in un bucket Amazon S3. La policy consente le operazioni specificate in un bucket S3 a condizione che `s3:prefix` corrisponda a uno qualsiasi dei modelli specificati.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "",
            "home/",
            "home/${aws:username}/"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```
La tabella seguente mostra come AWS valuta questa politica per diversi utenti in base al [aws:username](reference_policies_condition-keys.md#condition-keys-username) valore nel contesto della richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  | <pre>aws:username:<br />  – martha_rivera</pre>  | <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/martha_rivera/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  <pre>aws:username:<br />  – nikki_wolf</pre>  |  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/nikki_wolf/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  `aws:username` non è presente nel contesto della richiesta.  | Nessuna corrispondenza | 
Per un esempio di una policy che mostra come usare l'elemento `Condition` per limitare l'accesso alle risorse in base a un ID applicazione e un ID utente per la federazione OIDC, consulta [Amazon S3: consente agli utenti di Amazon Cognito di accedere a oggetti nel relativo bucket](reference_policies_examples_s3_cognito-bucket.md). 

### Operatori di condizione stringa multivalore
<a name="conditions_string_multivalued"></a>

Se una chiave nella richiesta contiene più valori, gli operatori di stringa possono essere qualificati con gli operatori dell’insieme `ForAllValues` e `ForAnyValue`. Per ulteriori informazioni sulla logica di valutazione di più chiavi o valori di contesto, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operatore di condizione | Description | 
| --- | --- | 
|  `ForAllValues:StringEquals` `ForAllValues:StringEqualsIgnoreCase`  |  Tutti i valori per la chiave di condizione nella richiesta devono corrispondere ad almeno uno dei valori della policy.  | 
|  `ForAnyValue:StringEquals` `ForAnyValue:StringEqualsIgnoreCase`  |  Almeno un valore per la chiave di condizione nella richiesta deve corrispondere a uno dei valori della policy.  | 
|  `ForAllValues:StringNotEquals` `ForAllValues:StringNotEqualsIgnoreCase`  |  Corrispondenza negativa. Nessuno dei valori per la chiave di contesto nella richiesta può corrispondere a nessuno dei valori della chiave di contesto della policy.  | 
|  `ForAnyValue:StringNotEquals` `ForAnyValue:StringNotEqualsIgnoreCase`  |  Corrispondenza negativa. Almeno un valore per la chiave di contesto nella richiesta NON deve corrispondere a uno dei valori nella chiave di contesto della policy.  | 
|  `ForAllValues:StringLike`  |  Tutti i valori per la chiave di condizione nella richiesta devono corrispondere ad almeno uno dei valori della policy.  | 
|  `ForAnyValue:StringLike`  |  Almeno un valore per la chiave di condizione nella richiesta deve corrispondere a uno dei valori della policy.  | 
|  `ForAllValues:StringNotLike`  |  Corrispondenza negativa. Nessuno dei valori per la chiave di contesto nella richiesta può corrispondere a nessuno dei valori della chiave di contesto della policy.  | 
|  `ForAnyValue:StringNotLike`  |  Corrispondenza negativa. Almeno un valore per la chiave di contesto nella richiesta NON deve corrispondere a uno dei valori nella chiave di contesto della policy.  | 

**Example utilizzo di `ForAnyValue` con un operatore di condizione stringa**  
Questo esempio mostra come creare una policy basata sull'identità che consenta di utilizzare l'operazione `CreateTags` di Amazon EC2 per assegnare tag a un'istanza. Quando utilizzi `StringEqualsIgnoreCase`, puoi collegare i tag solo se il tag contiene la chiave `environment` con i valori `preprod` o `storage`. Quando aggiungi `IgnoreCase` all’operatore, consenti a qualsiasi utilizzo delle maiuscole del valore del tag esistente, ad esempio `preprod`, `Preprod` e `PreProd`, di risultare True.  
Quando aggiungi il modificatore `ForAnyValue` con la chiave di condizione [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys), almeno un valore della chiave di tag nella richiesta deve corrispondere al valore `environment`. Il confronto `ForAnyValue` fa distinzione tra maiuscole e minuscole, il che impedisce agli utenti di utilizzare le maiuscole e minuscole errate per la chiave del tag, ad esempio utilizzare `Environment` invece che `environment`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2:*:*:instance/*",
    "Condition": {
      "StringEqualsIgnoreCase": {
        "aws:RequestTag/environment": [
          "preprod",
          "storage"
        ]
      },
      "ForAnyValue:StringEquals": {
        "aws:TagKeys": "environment"
      }
    }
  }
}
```
 La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.   


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – costcenter<br />aws:RequestTag/environment:<br />  – PreProd</pre>  | Match  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – Environment<br />aws:RequestTag/Environment:<br />  – preprod</pre>  | Nessuna corrispondenza  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – costcenter<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Nessuna corrispondenza  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  `aws:TagKeys` non è presente nel contesto della richiesta. <pre>aws:RequestTag/environment:<br />  – storage</pre>  | Nessuna corrispondenza  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre> `aws:RequestTag/environment` non è presente nel contesto della richiesta.  | Nessuna corrispondenza  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  `aws:TagKeys` non è presente nel contesto della richiesta. `aws:RequestTag/environment` non è presente nel contesto della richiesta.  | Nessuna corrispondenza  | 

### Corrispondenza dei caratteri jolly
<a name="Conditions_String-wildcard"></a>

Gli operatori di condizioni di stringa eseguono una corrispondenza senza modello che non impone un formato predefinito. Gli operatori di condizione ARN e Date sono un sottoinsieme di operatori di stringa che impongono una struttura al valore della chiave della condizione.

Ti consigliamo di utilizzare operatori di condizione che corrispondono ai valori con cui stai confrontando le chiavi. Ad esempio, è necessario utilizzare [Operatori di condizione stringa](#Conditions_String) quando si confrontano le chiavi con i valori delle stringhe. Allo stesso modo, è necessario utilizzare [Operatori di condizione con Amazon Resource Name (ARN)](#Conditions_ARN) quando si confrontano le chiavi con i valori ARN.

**Example**  
In questo esempio viene illustrato come creare un limite intorno alle risorse nell’organizzazione. La condizione di questa policy nega l'accesso alle azioni di Amazon S3 a meno che la risorsa a cui si accede non si trovi in un insieme specifico di unità organizzative OUs () in. AWS Organizations Un percorso AWS Organizations è una rappresentazione testuale della struttura dell’entità di un’organizzazione.  
La condizione richiede che `aws:ResourceOrgPaths` contenga uno dei percorsi di unità organizzative elencati. Poiché `aws:ResourceOrgPaths` si tratta di una condizione multivalore, la politica utilizza l'`ForAllValues:StringNotLike`operatore per confrontare i valori di con `aws:ResourceOrgPaths` l'elenco contenuto OUs nella politica.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:ResourceOrgPaths": [
            "o-acorg/r-acroot/ou-acroot-mediaou/",
            "o-acorg/r-acroot/ou-acroot-sportsou/*"
          ] 
        }
      }
    }
  ]
}
```
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-sportsou/costcenter/</pre>  | Match | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-mediaou/costcenter/</pre>  | Nessuna corrispondenza | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  |  Nessun `aws:ResourceOrgPaths:` nella richiesta.  | Nessuna corrispondenza | 

## Operatori di condizione numerici
<a name="Conditions_Numeric"></a>

Gli operatori di condizione numerici consentono di creare elementi `Condition` che limitano l'accesso in base al confronto di una chiave con un valore intero o decimale.
+  **Variabili di policy**: non supportate
+ **Caratteri jolly**: non supportati


****  

| Operatore di condizione | Description | 
| --- | --- | 
|   `NumericEquals`   |  Corrispondenza  | 
|   `NumericNotEquals`   |  Corrispondenza negativa  | 
|   `NumericLessThan`   |  Corrispondenza "Minore di"  | 
|   `NumericLessThanEquals`   |  Corrispondenza "Minore di o uguale a"  | 
|   `NumericGreaterThan`   |  Corrispondenza "Maggiore di"  | 
|   `NumericGreaterThanEquals`   |  Corrispondenza "Maggiore di o uguale a"  | 

Ad esempio, la seguente istruzione contiene un elemento `Condition` che utilizza l'operatore di condizione `NumericLessThanEquals` con la chiave `s3:max-keys` per specificare che il richiedente può elencare *fino a* oggetti in `amzn-s3-demo-bucket` alla volta.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {"NumericLessThanEquals": {"s3:max-keys": "10"}}
  }
}
```

------

Se la chiave specificata in una condizione di policy non è presente nel contesto della richiesta, i valori non corrispondono. In questo esempio, la chiave `s3:max-keys` è sempre presente nella richiesta quando si esegue l'operazione `ListBucket`. Se questa policy consentiva tutte le operazioni Amazon S3, saranno consentite solo le operazioni che includono la chiave di contesto `max-keys` con un valore minore o uguale a 10. 

## Operatori di condizione data
<a name="Conditions_Date"></a>

Gli operatori Date Condition consentono di creare `Condition` elementi che limitano l'accesso in base al confronto di una chiave con un date/time valore. Utilizza questi operatori di condizione con la chiave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) o la chiave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime). È necessario specificare date/time i valori con una delle [implementazioni W3C dei formati di data ISO 8601 o in base all'](http://www.w3.org/TR/NOTE-datetime)ora epoch (UNIX). 
+  **Variabili di policy**: non supportate
+ **Caratteri jolly**: non supportati


****  

| Operatore di condizione | Description | 
| --- | --- | 
|   `DateEquals`   |  Corrispondenza con una data specifica  | 
|   `DateNotEquals`   |  Corrispondenza negativa  | 
|   `DateLessThan`   |  Corrispondenza prima di una determinata data e ora  | 
|   `DateLessThanEquals`   |  Corrispondenza a una determinata data e ora  | 
|   `DateGreaterThan`   |  Corrispondenza dopo una determinata data e ora  | 
|   `DateGreaterThanEquals`   |  Corrispondenza a una determinata data e ora o successiva  | 

Ad esempio, l’istruzione seguente contiene un elemento `Condition` che utilizza l’operatore di condizione `DateGreaterThan` con la chiave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime). Questa condizione specifica che le credenziali di sicurezza temporanee utilizzate per effettuare la richiesta sono state emesse nel 2020. Questa policy può essere aggiornata ogni giorno a livello di codice per garantire che i membri dell'account utilizzino nuove credenziali.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "DateGreaterThan": {
                "aws:TokenIssueTime": "2020-01-01T00:00:01Z"
            }
        }
    }
}
```

------

Se la chiave specificata in una condizione di policy non è presente nel contesto della richiesta, i valori non corrispondono. La chiave `aws:TokenIssueTime` è presente nel contesto della richiesta solo quando il principale utilizza le credenziali temporanee per effettuare la richiesta. La chiave non è presente nelle AWS CLI richieste AWS API o AWS SDK effettuate utilizzando le chiavi di accesso. In questo esempio, se un utente IAM prova a visualizzare o modificare una chiave di accesso, la richiesta viene rifiutata.

## Operatori di condizione booleani
<a name="Conditions_Boolean"></a>

Le condizioni booleane consentono di creare elementi `Condition` che limitano l’accesso in base al confronto con una chiave con valore `true` o `false`.

Se una chiave contiene più valori, gli operatori booleani possono essere qualificati con gli operatori dell’insieme `ForAllValues` e `ForAnyValue`. Per ulteriori informazioni sulla logica di valutazione di più chiavi o valori di contesto, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+  **Variabili di policy**: [supportate](reference_policies_variables.md)
+ **Caratteri jolly**: non supportati


****  

| Operatore di condizione | Description | 
| --- | --- | 
|   `Bool`   |  Corrispondenza booleana  | 
|   `ForAllValues:Bool`   |  Da utilizzare con il tipo di dati array di valori booleani. Tutti i valori booleani inclusi nei valori chiave di contesto devono corrispondere ai valori booleani della policy. Per evitare che gli operatori `ForAllValues` valutino come Consentita una chiave di contesto mancante o con valore vuoto, puoi includere nella policy l’[Operatore di condizione Null](#Conditions_Null).  | 
|   `ForAnyValue:Bool`   |  Da utilizzare con il tipo di dati array di valori booleani. Almeno uno dei valori booleani nella chiave di contesto deve corrispondere ai valori booleani della policy.  | 

**Example operatore di condizione booleana**  
La seguente policy basata sull’identità utilizza l’operatore di condizione `Bool` con la chiave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) per negare la replica degli oggetti e dei tag degli oggetti nel bucket di destinazione e i rispettivi contenuti se la richiesta non è su SSL.  
Questa policy non consente alcuna operazione. Utilizza questa policy in combinazione con altre policy che consentono operazioni specifiche.   
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "BooleanExample",
      "Action": "s3:ReplicateObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – false</pre>  | Match | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – true</pre>  | Nessuna corrispondenza | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  |  `aws:SecureTransport` non è presente nel contesto della richiesta.  | Nessuna corrispondenza | 

## Operatori di condizione binari
<a name="Conditions_BinaryEquals"></a>

L’operatore di condizione `BinaryEquals` consente di creare elementi `Condition` che testano i valori di chiave in formato binario. Viene effettuato un confronto del valore del byte di chiave specificato per il byte con una rappresentazione codificata in [base 64](https://en.wikipedia.org/wiki/Base64) nella policy. Se la chiave specificata in una condizione di policy non è presente nel contesto della richiesta, i valori non corrispondono.
+  **Variabili di policy**: non supportate
+ **Caratteri jolly**: non supportati

```
"Condition" : {
  "BinaryEquals": {
    "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="
  }
}
```


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – QmluYXJ5VmFsdWVJbkJhc2U2NA==</pre>  | Match | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – ASIAIOSFODNN7EXAMPLE</pre>  | Nessuna corrispondenza | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  |  `key` non è presente nel contesto della richiesta.  | Nessuna corrispondenza | 

## Operatori di condizione con indirizzo IP
<a name="Conditions_IPAddress"></a>

Gli operatori di condizione degli indirizzi IP consentono di creare `Condition` elementi che limitano l'accesso in base al confronto di una chiave con un IPv6 indirizzo IPv4 o o un intervallo di indirizzi IP. È possibile utilizzare questi operatori con la chiave [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip). Il valore deve essere nel formato CIDR standard (ad esempio, 203.0.113.0/24 o 2001:: 1234:5678: :/64). DB8 Se si specifica un indirizzo IP senza il prefisso di instradamento associato, IAM utilizza il valore predefinito di prefisso `/32`.

Alcuni AWS servizi supportano l'utilizzo di:: per rappresentare un intervallo di 0. IPv6 Per sapere se un servizio supporta IPv6, consulta la documentazione relativa a quel servizio.
+  **Variabili di policy**: non supportate
+ **Caratteri jolly**: non supportati


****  

| Operatore di condizione | Description | 
| --- | --- | 
|   `IpAddress`   |  L'indirizzo o l'intervallo IP specificato  | 
|   `NotIpAddress`   |  Tutti gli indirizzi IP tranne l'indirizzo o l'intervallo IP specificato  | 

**Example Operatore di condizione con indirizzo IP**  
La seguente istruzione utilizza l’operatore di condizione `IpAddress` con la chiave `aws:SourceIp` per specificare che la richiesta deve provenire dall’intervallo IP da 203.0.113.0 a 203.0.113.255.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "203.0.113.0/24"
            }
        }
    }
}
```
La chiave di condizione `aws:SourceIp` risolve l'indirizzo IP da cui ha origine la richiesta. Se le richieste provengono da un'istanza Amazon EC2, `aws:SourceIp` viene valutato con l'indirizzo IP pubblico dell'istanza.   
Se la chiave specificata in una condizione di policy non è presente nel contesto della richiesta, i valori non corrispondono. La chiave `aws:SourceIp` è sempre presente nel contesto della richiesta, tranne quando il richiedente utilizza un endpoint VPC per effettuare la richiesta. In questo caso, la condizione restituisce `false` e la richiesta è implicitamente rifiutata da questa istruzione.  
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 203.0.113.1</pre>  | Match | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 198.51.100.1</pre>  | Nessuna corrispondenza | 
L'esempio seguente mostra come combinare IPv4 più IPv6 indirizzi per coprire tutti gli indirizzi IP validi dell'organizzazione. Ti consigliamo di aggiornare le politiche della tua organizzazione con gli intervalli di IPv6 indirizzi in aggiunta agli IPv4 intervalli di indirizzi già disponibili per garantire che i criteri continuino a funzionare durante la transizione IPv6.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "someservice:*",
    "Resource": "*",
    "Condition": {
      "IpAddress": {
        "aws:SourceIp": [
          "203.0.113.0/24",
          "2001:DB8:1234:5678::/64"
        ]
      }
    }
  }
}
```
La chiave di condizione `aws:SourceIp` funziona solo in una policy JSON se si chiama l'API testata direttamente come utente. Se si utilizza invece un servizio per chiamare il servizio di destinazione per conto dell'utente, il servizio di destinazione visualizza l'indirizzo IP del servizio chiamante anziché l'indirizzo IP dell'utente originario. Ciò può accadere, ad esempio, se si utilizza AWS CloudFormation per chiamare Amazon EC2 per creare istanze per tuo conto. Attualmente non è disponibile alcun modo per passare l'indirizzo IP di origine tramite un servizio di chiamata al servizio di destinazione per la valutazione in una policy JSON. Per questi tipi di chiamate API di servizi, non utilizzare la chiave di condizione `aws:SourceIp`.

## Operatori di condizione con Amazon Resource Name (ARN)
<a name="Conditions_ARN"></a>

Gli operatori di condizione con ARN (Amazon Resource Name) consentono di creare elementi `Condition` che limitano l'accesso in base al confronto di una chiave con un ARN. L'ARN è considerato una stringa.
+  **Variabili di policy**: [supportate](reference_policies_variables.md)
+ **Caratteri jolly**: [supportati](reference_policies_elements_resource.md#reference_policies_elements_resource_wildcards)


****  

| Operatore di condizione | Description | 
| --- | --- | 
|   `ArnEquals`, `ArnLike`  |  Corrispondenza con distinzione maiuscole/minuscole dell'ARN. Ciascuno dei sei componenti delimitati da due punti dell'ARN viene verificato separatamente e ognuno di essi può includere più caratteri jolly (\$1) o un singolo carattere jolly (?) corrispondenti. Gli operatori di condizione `ArnEquals` e `ArnLike` si comportano allo stesso modo.  | 
|   `ArnNotEquals`, `ArnNotLike`  |  Corrispondenza negativa per l'ARN. Gli operatori di condizione `ArnNotEquals` e `ArnNotLike` si comportano allo stesso modo.  | 

**Example Operatore di condizione ARN**  
Nell'esempio di policy basata sulle risorse riportato di seguito viene illustrata una policy collegata a una coda Amazon SQS a cui si desidera inviare messaggi SNS. La policy autorizza Amazon SNS a inviare messaggi alla coda (o alle code) di propria scelta, ma solo se il servizio invia i messaggi per conto di un determinato argomento (o argomenti) di Amazon SNS. È possibile specificare la coda nel campo `Resource` e l'argomento Amazon SNS come valore per la chiave `SourceArn`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": {
            "Service": "sns.amazonaws.com"
        },
        "Action": "SQS:SendMessage",
        "Resource": "arn:aws:sqs:us-east-1:123456789012:QUEUE-ID",
        "Condition": {
            "ArnEquals": {
                "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:TOPIC-ID"
            }
        }
    }
}
```
La chiave [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) è presente nel contesto della richiesta solo se una risorsa attiva un servizio per chiamare un altro servizio per conto del proprietario della risorsa. Se un utente IAM prova a eseguire direttamente questa operazione, la condizione restituisce `false` e la richiesta viene rifiutata implicitamente da questa istruzione.  
La tabella seguente mostra come AWS valuta questa politica in base ai valori chiave della condizione nella richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:123456789012:TOPIC-ID</pre>  | Match | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:777788889999:TOPIC-ID</pre>  | Nessuna corrispondenza | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  |  `aws:SourceArn` non è presente nel contesto della richiesta.  | Nessuna corrispondenza | 

### Operatori di condizione ARN multivalore
<a name="conditions_arn_multivalued"></a>

Se una chiave nella richiesta contiene più valori, gli operatori ARN possono essere qualificati con gli operatori dell’insieme `ForAllValues` e `ForAnyValue`. Per ulteriori informazioni sulla logica di valutazione di più chiavi o valori di contesto, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operatore di condizione | Description | 
| --- | --- | 
|  `ForAllValues:ArnEquals` `ForAllValues:ArnLike`  |  Tutti gli elementi ARNs presenti nel contesto della richiesta devono corrispondere ad almeno uno dei modelli ARN della policy.  | 
|  `ForAnyValue:ArnEquals` `ForAnyValue:ArnLike`  |  Almeno un ARN nel contesto della richiesta deve corrispondere a uno dei modelli ARN della policy.  | 
|  `ForAllValues:ArnNotEquals` `ForAllValues:ArnNotLike`  |  Corrispondenza negativa. Nessuno di quelli ARNs presenti nel contesto della richiesta può corrispondere a nessun pattern ARN di stringhe nella tua policy.  | 
|  `ForAnyValue:ArnNotEquals` `ForAnyValue:ArnNotLike`  |  Corrispondenza negativa. Almeno un ARN nel contesto della richiesta NON deve corrispondere a nessuno dei modelli ARN della policy.  | 

**Example utilizzo di `ForAllValues` con un operatore di condizione ARN**  
L'esempio seguente utilizza `ForAllValues:ArnLike` per creare o aggiornare una fonte di consegna logica per i log di Amazon CloudWatch Logs. Il blocco condition include la chiave condition [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys)per filtrare la risorsa generatrice di log ARNs passata nella richiesta. Utilizzando questo operatore di condizione, tutti gli ARNs elementi della richiesta devono corrispondere ad almeno un ARN nella policy.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "logs:PutDeliverySource",
            "Resource": "arn:aws:logs:us-east-1:123456789012:delivery-source:*",
            "Condition": {
                "ForAllValues:ArnLike": {
                    "logs:LogGeneratingResourceArns": [
                        "arn:aws:cloudfront::123456789012:distribution/*",
                        "arn:aws:cloudfront::123456789012:distribution/support*"
                    ]
                }
            }
        }
    ]
}
```
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter</pre>  | Match | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/support2025</pre>  | Match | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/admin</pre>  | Nessuna corrispondenza | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:777788889999:distribution/costcenter</pre>  | Nessuna corrispondenza | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  |  `logs:LogGeneratingResourceArns` non è presente nel contesto della richiesta.  | Match  | 
Il qualificatore `ForAllValues` restituisce True se non ci sono chiavi di contesto nella richiesta o se i valori delle chiavi si riducono a un set di dati Null, ad esempio una stringa vuota. Per evitare che le chiavi di contesto mancanti o con valori vuoti vengano valutate come True, puoi includere l’[Operatore di condizione Null](#Conditions_Null) nella tua policy con un valore `false` per verificare che la chiave di contesto esista e che il suo valore non sia Null.

## ... IfExists operatori di condizionamento
<a name="Conditions_IfExists"></a>

È possibile aggiungere `IfExists` alla fine di qualsiasi nome operatore di condizione ad eccezione della condizione `Null`, ad esempio `StringLikeIfExists`. Questa aggiunta ha lo scopo di dichiarare che "se la chiave di policy è presente nel contesto della richiesta, la chiave deve essere elaborata come specificato nella policy". Se la chiave non è presente, l'elemento della condizione viene valutato come "true". Altri elementi di condizione nell'istruzione possono comunque risultare in una mancata corrispondenza, ma non una chiave mancante se verificata tramite `...IfExists`. Se stai utilizzando un elemento `"Effect": "Deny"` con un operatore di condizione negato come `StringNotEqualsIfExists`, la richiesta viene comunque negata anche se manca la chiave di condizione.

**Esempio di utilizzo di `IfExists`**

Molte chiavi di condizione descrivono informazioni su un determinato tipo di risorsa e sono presenti solo quando si accede a tale tipo di risorsa. Queste chiavi di condizione non sono presenti in altri tipi di risorse. Questo non causa problemi se l'istruzione della policy si applica a un solo tipo di risorsa. Tuttavia, esistono casi in cui una singola istruzione può essere applicata a più tipi di risorse, ad esempio quando l'istruzione della policy fa riferimento a operazioni di più servizi o quando una determinata operazione all'interno di un servizio accede a diversi tipi di risorse all'interno dello stesso servizio. In questi casi, l'inclusione di una chiave di condizione che si applica solo a una delle risorse nell'istruzione della policy può causare un errore dell'elemento `Condition` nell'istruzione della policy in modo tale che l'elemento `"Effect"` dell'istruzione non si applichi.

Ad esempio, considerare il seguente esempio di policy:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "THISPOLICYDOESNOTWORK",
    "Effect": "Allow",
    "Action": "ec2:RunInstances",
    "Resource": "*",
    "Condition": {"StringLike": {"ec2:InstanceType": [
      "t1.*",
      "t2.*",
      "m3.*"
    ]}}
  }
}
```

------

Lo *scopo* della policy precedente è di consentire all'utente di avviare qualsiasi istanza di tipo `t1`, `t2` o `m3`. Tuttavia, l'avvio di un'istanza richiede l'accesso a molte risorse oltre all'istanza stessa; ad esempio, immagini, coppie di chiavi, gruppi di sicurezza e così via. L'intera istruzione viene valutata rispetto a ogni risorsa necessaria per avviare l'istanza. Queste risorse aggiuntive non includono la chiave di condizione `ec2:InstanceType`, pertanto il controllo `StringLike` ha esito negativo e all'utente non è concessa la possibilità di avviare *nessun* tipo di istanza. 

Per risolvere questo problema, utilizzare l'operatore di condizione `StringLikeIfExists`. In questo modo, il test viene effettuato solo se la chiave di condizione esiste. È possibile leggere la policy seguente come: "Se la risorsa da verificare include una chiave di condizione "`ec2:InstanceType`", permettere l'operazione solo se il valore della chiave inizia con `t1.`, `t2.` o `m3.`. Se la risorsa verificata non include quella chiave di condizione, non preoccuparti". L'asterisco (\$1) nei valori della chiave della condizione, se utilizzato con l'operatore di condizione `StringLikeIfExists`, viene interpretato come un jolly per ottenere corrispondenze parziali tra le stringhe. L'istruzione `DescribeActions` include le azioni necessarie per visualizzare l'istanza nella console.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RunInstance",
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
        "StringLikeIfExists": {
          "ec2:InstanceType": [
            "t1.*",
            "t2.*",
            "m3.*"
          ]
        }
      }
    },
    {
      "Sid": "DescribeActions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeVpcs",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – t1.micro</pre>  | Match | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – m2.micro</pre>  | Nessuna corrispondenza | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  |  `ec2:InstanceType` non è presente nel contesto della richiesta.  | Match | 

## Operatore di condizione per verificare la presenza di chiavi di condizione
<a name="Conditions_Null"></a>

Utilizza un operatore di condizione `Null` per verificare se una chiave di condizione è presente o meno al momento dell'autorizzazione. Nell'istruzione della policy, utilizza `true` (la chiave non esiste, è null) o `false` (la chiave esiste e il suo valore non è null).

Puoi utilizzare una [variabile di policy](reference_policies_variables.md) con l'operatore di condizione `Null`.

Ad esempio, è possibile utilizzare questo operatore di condizione per determinare se un utente sta utilizzando credenziali temporanee oppure le proprie credenziali per effettuare una richiesta. Se l'utente utilizza credenziali temporanee, la chiave `aws:TokenIssueTime` è presente e ha un valore. L’esempio seguente mostra una condizione che indica che l’utente deve utilizzare credenziali temporanee (la chiave non può essere assente) affinché l’utente possa utilizzare l’API Amazon EC2.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"ec2:*",
      "Effect":"Allow",
      "Resource":"*",
      "Condition":{"Null":{"aws:TokenIssueTime":"false"}}
  }
}
```

------

# Condizioni con più chiavi di contesto o valori
<a name="reference_policies_condition-logic-multiple-context-keys-or-values"></a>

Puoi utilizzare l'elemento `Condition` di una policy per testare più chiavi di contesto o valori per una singola chiave di contesto in una richiesta. Quando effettui una richiesta a AWS, a livello di codice o tramite Console di gestione AWS, la richiesta include informazioni sul tuo principale, sull'operazione, sui tag e altro ancora. Puoi utilizzare le chiavi di contesto per testare i valori delle chiavi di contesto corrispondenti nella richiesta, con le chiavi di contesto specificate nella condizione della policy. Per ulteriori informazioni e i dati inclusi in una richiesta, consulta [Il contesto della richiesta](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext).

**Topics**
+ [Logica di valutazione per condizioni con più chiavi di contesto o valori](#reference_policies_multiple-conditions-eval)
+ [Logica di valutazione per gli operatori di negazione della condizione di corrispondenza](#reference_policies_multiple-conditions-negated-matching-eval)

## Logica di valutazione per condizioni con più chiavi di contesto o valori
<a name="reference_policies_multiple-conditions-eval"></a>

Un elemento `Condition` può contenere più operatori di condizione e ciascun operatore di condizione può includere a sua volta più coppie chiave-valore. La maggior parte delle chiavi di contesto supporta l'utilizzo di più valori, se non diversamente specificato.
+ Se la tua policy contiene più [operatori di condizione](reference_policies_elements_condition_operators.md), questi vengono valutati utilizzando un `AND` logico.
+ Se la policy contiene più chiavi di contesto collegate a un singolo operatore di condizione, le chiavi di contesto vengono valutate utilizzando un `AND` logico.
+ Se un singolo operatore di condizione include valori multipli per una chiave di contesto, questi valori sono valutato con un `OR` logico.
+ Se un singolo operatore di condizione di corrispondenza negata include valori multipli per una chiave di contesto, questi valori vengono valutati con un `NOR` logico. 

Tutte le chiavi di contesto in un blocco di elementi condizionali devono essere risolte in true per richiamare il `Allow` desiderato o l’effetto `Deny`. La figura seguente illustra la logica di valutazione per una condizione con più operatori di condizione e coppie chiave-valore di contesto.

![\[Blocco condizione che mostra in che modo AND e OR vengono applicati a più chiavi di contesto e valori\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_2.diagram.png)


Ad esempio, la seguente policy del bucket S3 illustra come la figura precedente è rappresentata in una policy. Il blocco condizione utilizza operatori di condizione `StringEquals` e `ArnLike` e chiavi di contesto `aws:PrincipalTag` e`aws:PrincipalArn`. Per richiamare l'effetto `Allow` o `Deny` desiderato, tutte le chiavi di contesto nel blocco di condizione devono restituire il valore true. L'utente che effettua la richiesta deve avere entrambe le chiavi tag principali, *dipartimento* e *ruolo*, che includono uno dei valori chiave dei tag specificati nella policy. Inoltre, l'ARN principale dell'utente che effettua la richiesta deve corrispondere a uno dei valori `aws:PrincipalArn` specificati nella policy da valutare come true.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn: <br />  arn:aws:iam::222222222222:user/Mary</pre>  |  **Partita** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nessuna corrispondenza** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nessuna corrispondenza** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  |  `aws:PrincipalTag/role` non è presente nel contesto della richiesta. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nessuna corrispondenza**  | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | `aws:PrincipalTag` non è presente nel contesto della richiesta. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nessuna corrispondenza**  | 

## Logica di valutazione per gli operatori di negazione della condizione di corrispondenza
<a name="reference_policies_multiple-conditions-negated-matching-eval"></a>

Alcuni [operatori di condizione,](reference_policies_elements_condition_operators.md) ad esempio `StringNotEquals` o `ArnNotLike`, usano la corrispondenza negata per confrontare le coppie chiave-valore di contesto nella tua policy con le coppie chiave-valore di contesto in una richiesta. Quando più valori sono elencati in una singola chiave di contesto in una policy con operatori di negazione della condizione di corrispondenza le autorizzazioni efficaci funzionano come un `NOR` logico. Nella corrispondenza negata, un `NOR` o `NOT OR` restituisce true solo se tutti i valori restituiscono false.

La figura seguente illustra la logica di valutazione per una condizione con più operatori di condizione e coppie chiave-valore di contesto. La figura include un operatore di negazione della condizione di corrispondenza per la chiave di contesto 3.

![\[Blocco di condizioni che mostra come AND e OR vengono applicati a più chiavi e valori di contesto quando viene utilizzato un operatore di negazione della condizione di corrispondenza.\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_Negated_NOR_2.diagram.png)


Ad esempio, la seguente policy del bucket S3 illustra come la figura precedente è rappresentata in una policy. Il blocco condizione utilizza operatori di condizione `StringEquals` e `ArnNotLike` e chiavi di contesto `aws:PrincipalTag` e`aws:PrincipalArn`. Per richiamare l'effetto `Allow` o `Deny` desiderato, tutte le chiavi di contesto nel blocco di condizione devono restituire il valore true. L'utente che effettua la richiesta deve avere entrambe le chiavi tag principali, *dipartimento* e *ruolo*, che includono uno dei valori chiave dei tag specificati nella policy. Poiché l’operatore di condizione `ArnNotLike` utilizza la corrispondenza negata, l’ARN principale dell’utente che effettua la richiesta deve corrispondere a uno dei valori `aws:PrincipalArn` specificati nella policy da valutare come true.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnNotLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki<br /></pre>  |  **Partita** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Nessuna corrispondenza** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nessuna corrispondenza** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | >`aws:PrincipalTag/role` non è presente nel contesto della richiesta. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nessuna corrispondenza** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | `aws:PrincipalTag` non è presente nel contesto della richiesta. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Nessuna corrispondenza**  | 

# Chiavi di contesto a valore singolo vs multivalore
<a name="reference_policies_condition-single-vs-multi-valued-context-keys"></a>

La differenza tra le chiavi di contesto a valore singolo e multivalore dipende dal numero di valori nel [contesto della richiesta](intro-structure.md#intro-structure-request) e non dal numero di valori nella condizione della policy.
+ Le chiavi del contesto con condizione *a valore singolo* hanno al massimo un valore nel contesto della richiesta. Ad esempio, quando si etichettano le risorse AWS, ogni tag di risorsa viene memorizzato come coppia chiave-valore. Poiché una chiave di tag di risorsa può avere un solo valore di tag, [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) è una chiave di contesto a valore singolo. Non utilizzare operatori con una chiave di contesto a valore singolo.
+ Le chiavi di contesto con condizione *multivalore* possono avere più di un valore nel contesto della richiesta. Ad esempio, quando tagghi le risorse AWS, puoi includere più coppie chiave-valore di tag in un'unica richiesta. Pertanto, [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) è una chiave di contesto multivalore. Le chiavi di contesto multivalore richiedono un operatore di condizione.

Ad esempio, una richiesta può provenire al massimo da un endpoint VPC, quindi [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce) è una chiave di contesto a valore singolo. Poiché un servizio può avere più di un nome del principale di servizio appartenente al servizio, [aws:PrincipalServiceNamesList](reference_policies_condition-keys.md#condition-keys-principalservicenameslist) è una chiave di contesto multivalore.

**Importante**  
La differenza tra le chiavi di contesto della condizione a valore singolo e multivalore dipende dal numero di valori nel contesto della richiesta e non dal numero di valori nella condizione della policy.

## Punti chiave
<a name="reference_policies_condition-key-points"></a>
+ Le classificazione *valore singolo* e *multivalore* sono incluse nella descrizione di ciascuna chiave di contesto della condizione come *tipo di valore* nell'[AWS chiavi di contesto della condizione globale](reference_policies_condition-keys.md)argomento.
+ Le chiavi di contesto multivalore nella [documentazione di riferimento per l’autorizzazione del servizio](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) utilizzano un prefisso `ArrayOf` seguito dal tipo di categoria dell’operatore di condizione, come `ArrayOfString` o`ArrayOfARN`, che indica che la richiesta può includere più valori per una chiave di contesto della condizione.
+ Puoi utilizzare qualsiasi chiave di contesto a valore singolo disponibile come variabile di policy, ma non è possibile utilizzare una chiave di contesto multivalore come variabile di policy. Per ulteriori informazioni sulle variabili di policy, consultare [Elementi delle policy IAM: variabili e tag](reference_policies_variables.md).
+ Quando si utilizzano chiavi di contesto che includono coppie chiave-valore, è importante notare che anche se possono esserci più valori tag-chiave, ogni `tag-key` può avere un solo valore.
  + [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag), [aws:RequestTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-requesttag) e [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) sono chiavi di contesto a valore singolo.
  + [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) definisce quali tag-chiavi sono consentiti in una richiesta ma non include i valori tag-chiave. Poiché è possibile includere più coppie chiave-valore dei tag in una richiesta, `aws:TagKeys` è una chiave di contesto multivalore.
+ Le chiavi di contesto multivalore richiedono un operatore di condizione. Non utilizzare operatori di condizione `ForAllValues` o `ForAnyValue` chiavi di contesto a valore singolo. L'utilizzo di operatori di set di condizioni con chiavi di contesto a valore singolo può portare a policy eccessivamente permissive.

## Operatori dell’insieme per le chiavi di contesto multivalore
<a name="reference_policies_condition-multi-valued-context-keys"></a>

Per confrontare la chiave di contesto della condizione con una chiave di [contesto di richiesta](intro-structure.md#intro-structure-request) con più valori chiave, devi utilizzare gli operatori di insiemi `ForAllValues` o `ForAnyValue`. Questi operatori di insieme sono usati per paragonare due insiemi di valori, ad esempio il set di tag in una richiesta e il set di tag in una condizione della policy.

I qualificatori `ForAllValues` e `ForAnyValue` aggiungono funzionalità di operazione di insieme all'operatore di condizione, in modo che tu possa testare chiavi di contesto della richiesta multivalore con più chiavi di contesto multiple in una condizione della policy. Inoltre, se includi una chiave di contesto di stringa multivalore nella policy con un carattere jolly o una variabile, devi utilizzare anche l'[operatore di condizione](reference_policies_elements_condition_operators.md#Conditions_String) `StringLike`. I valori multipli delle chiavi di condizione devono essere racchiusi tra parentesi quadre come in un [array](reference_policies_grammar.md#policies-grammar-json), ad esempio `"Key2":["Value2A", "Value2B"]`.

### ForAllValues
<a name="reference_policies_condition-forallvalues"></a>

Il qualificatore `ForAllValues` verifica se il valore di ogni membro del contesto della richiesta è corrispondente all’operatore di condizione che segue il qualificatore. La condizione restituisce `true` se ogni valore della chiave di contesto nella richiesta corrisponde a un valore della chiave di contesto nella policy. Restituisce `true` anche se non ci sono chiavi di contesto nella richiesta.

**Importante**  
Fai attenzione se usi `ForAllValues` con un effetto `Allow` perché ciò può essere eccessivamente permissivo se la presenza di chiavi di contesto mancanti nel contesto della richiesta è imprevista. Dovresti sempre includere l’operatore di condizione [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) nella tua policy con un valore `false` per verificare se la chiave di contesto esiste e il suo valore non è Null. Per vedere un esempio, consulta [Controllo dell'accesso in base alle chiavi di tag](access_tags.md#access_tags_control-tag-keys).

#### Esempio ForAllValues di operatore set
<a name="reference_policies_condition-forallvalues-example"></a>

Nell'esempio seguente, ForAllValues viene utilizzato con aws: TagKeys per consentire agli utenti di eliminare tag specifici assegnati a un'istanza EC2. Questa policy consente agli utenti di eliminare solo i tag `environment` e `cost-center`. Puoi eliminarli separatamente o insieme. I tag-chiavi nella richiesta devono corrispondere esattamente alle chiavi specificate nella policy.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                },
                "Null": {
                    "aws:TagKeys": "false"
                }
            }
        }
    ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Partita**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Incontro**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Incontro**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Nessuna corrispondenza**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  |  `aws:TagKeys` non è presente nel contesto della richiesta.  |  **Nessuna corrispondenza**  | 

Nota che nell’ultimo esempio, il risultato è “No Match” perché il controllo della condizione Null impedisce la corrispondenza quando manca la chiave di contesto. Questa è una best practice per evitare policy eccessivamente permissive.

### ForAnyValue
<a name="reference_policies_condition-foranyvalue"></a>

Il qualificatore `ForAnyValue` verifica se almeno un membro del set di valori di richiesta è corrispondente ad almeno un membro del set di valori delle chiavi di condizione della policy. La condizione restituisce `true` se uno qualsiasi dei valori della chiave di contesto nella richiesta corrisponde a un valore qualsiasi della chiave di contesto nella policy. Se non esiste alcuna chiave di contesto corrispondente o se la chiave non esiste, la condizione restituisce `false`.

**Importante**  
Quando si usa `ForAnyValue` con un effetto `Deny`, se la chiave di contesto non è presente nella richiesta, la policy viene valutata come **Nessuna corrispondenza**. Per un comportamento coerente, aggiungi un controllo esplicito [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null) delle condizioni nella tua policy per verificare se la chiave di contesto esiste. Per informazioni dettagliate, vedi [Operatore di condizione per verificare la presenza di chiavi di condizione](reference_policies_elements_condition_operators.md#Conditions_Null).

#### Esempio ForAnyValue di operatore di set
<a name="reference_policies_condition-foranyvalue-example"></a>

Nell'esempio seguente, ForAnyValue viene utilizzato con aws: TagKeys per consentire agli utenti di eliminare tag specifici assegnati a un'istanza EC2. Questa policy consente agli utenti di eliminare i tag di un’istanza se le chiavi di tag specificate nella richiesta includono `environment` o `cost-center`. La richiesta può includere chiavi di tag aggiuntive oltre a quelle specificate nella policy, ma deve includere almeno una delle chiavi specificate per soddisfare la condizione.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                }
            }
        }
    ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Partita**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Incontro**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Incontro**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Incontro**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – dept</pre>  |  **Nessuna corrispondenza**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  |  `aws:TagKeys` non è presente nel contesto della richiesta.  |  **Nessuna corrispondenza**  | 

# Esempi di policy delle condizioni
<a name="reference_policies_condition_examples"></a>

Nelle policy IAM, puoi specificare più valori per chiavi di contesto sia a valore singolo che multivalore per il confronto con il contesto della richiesta. La seguente serie di esempi di policy mostra le condizioni delle policy con più chiavi e valori di contesto.

**Nota**  
Per inviare una policy e includerla in questa guida di riferimento, utilizza il pulsante **Feedback** in fondo a questa pagina. Per esempi di policy basate su identità IAM, consulta [Esempi di policy basate su identità IAM](access_policies_examples.md).

## Esempi di policy relativi alle condizioni: chiavi di contesto a valore singolo
<a name="reference_policies_condition_example_library_single-valued"></a>
+ Più blocchi di condizioni con chiavi di contesto a valore singolo. ([Visualizza questo esempio](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-1).)
+ Un blocco di condizioni con più chiavi e valori di contesto a valore singolo. ([Visualizza questo esempio](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-2).)

## Esempi di policy relativi alle condizioni: chiavi di contesto multivalore
<a name="reference_policies_condition_example_library_multi-valued"></a>
+ Policy di negazione con operatore del set di condizione `ForAllValues`. ([Visualizza questo esempio](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-1).)
+ Policy di negazione con operatore del set di condizione `ForAnyValue`. ([Visualizza questo esempio](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-2).)

# Esempi chiave di contesto multivalore
<a name="reference_policies_condition_examples-multi-valued-context-keys"></a>

La seguente serie di esempi di policy mostra come creare condizioni politicy con chiavi di contesto multivalore.

## Esempio: politica di rifiuto con operatore di set di condizioni ForAllValues
<a name="reference_policies_condition_examples-multi-valued-context-keys-1"></a>

Gli esempi seguenti mostrano come utilizzare una policy basata sull’identità per negare l’uso di operazioni di tagging IAM quando nella richiesta sono inclusi prefissi specifici della chiave di tag. I valori per [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys) includono un carattere jolly (\$1) per la corrispondenza parziale delle stringhe. La policy include l’operatore dell’insieme `ForAllValues` con la chiave di contesto `aws:TagKeys` perché la chiave di contesto della richiesta può includere più valori. Affinché la chiave di contesto `aws:TagKeys` corrisponda, ogni valore nel contesto della richiesta deve corrispondere ad almeno un valore presente nella policy.

L’operatore dell’insieme `ForAllValues` restituisce True anche se non ci sono chiavi di contesto nella richiesta.

Puoi evitare che le chiavi di contesto mancanti o le chiavi di contesto con valori vuoti vengano valutate come True includendo un operatore di condizione `Null` nella tua policy con un valore `false` per verificare se la chiave di contesto nella richiesta esiste e il suo valore non è Null. Per ulteriori informazioni, consulta [Operatore di condizione per verificare la presenza di chiavi di condizione](reference_policies_elements_condition_operators.md#Conditions_Null).

**Importante**  
Questa policy non consente alcuna operazione. Utilizza questa policy in combinazione con altre policy che consentono operazioni specifiche.

**Example Negazione di un singolo valore di condizione della policy per una chiave di contesto multivalore**  
Nel seguente esempio, la policy nega le richieste in cui i valori di `aws:TagKeys` nella richiesta non includono il prefisso **key1**. Il contesto della richiesta può avere più valori, ma a causa dell’operatore dell’insieme di condizioni `ForAllValues`, tutti i valori chiave del tag nel contesto della richiesta devono iniziare con il prefisso **key1**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": "key1*"
        }
      }
    }
  ]
}
```
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta. Per un’istruzione Nega, una Corrispondenza è Negata e una Mancata corrispondenza è Non negata, quindi può essere consentita da un’altra istruzione.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Nessuna corrispondenza** Può essere consentito da un’altra istruzione. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Nessuna corrispondenza** Può essere consentito da un’altra istruzione. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key2:audit</pre>  | **Partita** | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | `aws:TagKeys` non è presente nel contesto della richiesta.  | **Incontro** | 

**Example Negazione di più valori di condizione della policy per una chiave di contesto multivalore**  
Nell’esempio seguente, la policy nega le richieste in cui i valori `aws:TagKeys` della richiesta non includono il prefisso **key1** o **key2** Il contesto della richiesta può avere più valori, ma a causa dell’operatore dell’insieme di condizioni `ForAllValues`, tutti i valori chiave del tag nel contesto della richiesta devono iniziare con il prefisso **key1** o **key2**.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": [
            "key1*",
            "key2*"
          ]
        }
      }
    }
  ]
}
```
La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta. Per un’istruzione Nega, una Corrispondenza è Negata e una Mancata corrispondenza è Non negata, quindi può essere consentita da un’altra istruzione.  


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Nessuna corrispondenza** Può essere consentito da un’altra istruzione. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Nessuna corrispondenza** Può essere consentito da un’altra istruzione. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key2:audit</pre>  | **Nessuna corrispondenza** Può essere consentito da un’altra istruzione. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key3:legal</pre>  | **Partita**  | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | `aws:TagKeys` non è presente nel contesto della richiesta.  | **Incontro** | 

## Esempio: politica di rifiuto con operatore di set di condizioni ForAnyValue
<a name="reference_policies_condition_examples-multi-valued-context-keys-2"></a>

Il seguente esempio di policy basata sull'identità nega la creazione di istantanee dei volumi di istanza EC2 se alcune istantanee sono contrassegnate con una delle chiavi di tag specificate nella policy,`environment`o`webserver`. La policy include l’operatore dell’insieme `ForAnyValue` con la chiave di contesto `aws:TagKeys` perché la chiave di contesto della richiesta può includere più valori. Se la richiesta di etichettatura include uno dei valori chiave dei tag specificati nella policy, la `aws:TagKeys` chiave di contesto restituisce true richiamando l'effetto della policy di negazione.

**Importante**  
Questa policy non consente alcuna operazione. Utilizza questa policy in combinazione con altre policy che consentono operazioni specifiche.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:CreateSnapshots"
      ],
      "Resource": "arn:aws:ec2:us-west-2::snapshot/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": "webserver"
        }
      }
    }
  ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta. Per un’istruzione Nega, una Corrispondenza è Negata e una Mancata corrispondenza è Non negata, quindi può essere consentita da un’altra istruzione.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – webserver</pre>  | **Partita** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – webserver<br />  – test</pre>  |  **Incontro** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – test</pre>  | **Nessuna corrispondenza** Può essere consentito da un’altra istruzione. | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | `aws:TagKeys` non è presente nel contesto della richiesta.  | **Nessuna corrispondenza** Può essere consentito da un’altra istruzione.  | 

# Esempi di policy della chiave di contesto a valore singolo
<a name="reference_policies_condition_examples-single-valued-context-keys"></a>

La seguente serie di esempi di policy mostra come creare condizioni nella policy con chiavi di contesto a valore singolo.

## Esempio: più blocchi di condizioni con chiavi di contesto a valore singolo
<a name="reference_policies_condition_examples-single-valued-context-keys-1"></a>

Quando un blocco di condizioni contiene più condizioni, ognuna con una singola chiave di contesto, tutte le chiavi di contesto devono risolversi in true per l’effetto `Allow` o `Deny` che si desidera richiamare. Quando si utilizzano operatori per la condizione di corrispondenza negata, la logica di valutazione del valore della condizione viene invertita.

Il seguente esempio consente agli utenti di creare volumi EC2 e applicare tag a tali volumi durante la creazione del volume. Il contesto della richiesta deve includere un valore per la chiave di contesto `aws:RequestTag/project` e il valore della chiave di contesto `aws:ResourceTag/environment` può essere qualsiasi cosa tranne la produzione.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
      "Condition": {
        "StringLike": {
          "aws:RequestTag/project": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/environment": "production"
        }
      }
    }
  ]
}
```

------

Il contesto della richiesta deve includere un tag-valore del progetto e non può essere creato affinché una risorsa di produzione richiami l’effetto `Allow`. Il seguente volume EC2 è stato creato correttamente perché il nome del progetto è `Feature3` con un tag della risorsa `QA`.

```
aws ec2 create-volume \
    --availability-zone us-east-1a \
    --volume-type gp2 \
    --size 80 \
    --tag-specifications 'ResourceType=volume,Tags=[{Key=project,Value=Feature3},{Key=environment,Value=QA}]'
```

## Esempio: un blocco di condizioni con più chiavi di contesto a valore singolo
<a name="reference_policies_condition_examples-single-valued-context-keys-2"></a>

Quando un blocco di condizioni contiene più chiavi di contesto e ogni chiave di contesto ha valori multipli, ogni chiave di contesto deve risolversi in true in almeno un valore chiave per l’effetto `Allow` o `Deny` che si desidera richiamare. Quando si utilizzano operatori per la condizione di corrispondenza negata, la logica di valutazione del valore della chiave di contesto viene invertita.

L'esempio seguente consente agli utenti di avviare ed eseguire attività sui cluster Amazon Elastic Container Service.
+ Il contesto della richiesta deve includere`production` **O** `prod-backup` per la `aws:RequestTag/environment` chiave di contesto **E**.
+ La chiave di contesto `ecs:cluster` assicura che le attività vengano eseguite su entrambi i cluster `default1` **O** `default2` ARN ECS.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:RunTask",
        "ecs:StartTask"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": [
            "production",
            "prod-backup"
          ]
        },
        "ArnEquals": {
          "ecs:cluster": [
            "arn:aws:ecs:us-east-1:111122223333:cluster/default1",
            "arn:aws:ecs:us-east-1:111122223333:cluster/default2"
          ]
        }
      }
    }
  ]
}
```

------

La tabella seguente mostra come AWS valuta questa politica in base ai valori della chiave di condizione nella richiesta.


| Condizione della policy | Contesto della richiesta | Risultato | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default1</pre>  | Match | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:prod-backup<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Match | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: webserver:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Nessuna corrispondenza | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  |  `aws:RequestTag` non è presente nel contesto della richiesta. <pre>ecs:cluster<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Nessuna corrispondenza | 

# Elementi delle policy IAM: variabili e tag
<a name="reference_policies_variables"></a>

Usa le variabili di policy AWS Identity and Access Management (IAM) come segnaposto quando non conosci il valore esatto di una risorsa o di una chiave di condizione quando scrivi la policy.

**Nota**  
Se AWS non riesci a risolvere una variabile, l'intera istruzione potrebbe non essere valida. Ad esempio, se utilizzi la variabile `aws:TokenIssueTime`, questa viene risolta in un valore solo quando il richiedente è stato autenticato tramite le credenziali temporanee (un ruolo IAM). [Per evitare che le variabili causino istruzioni non valide, usa il... IfExists operatore di condizione](reference_policies_elements_condition_operators.md#Conditions_IfExists).

**Topics**
+ [Introduzione](#policy-vars-intro)
+ [Utilizzo delle variabili nelle policy](#policy-vars-using-variables)
+ [Tag come variabili di policy](#policy-vars-tags)
+ [Casi in cui è possibile utilizzare le variabili di policy](#policy-vars-wheretouse)
+ [Variabili di policy senza valore](#policy-vars-no-value)
+ [Richiesta di informazioni utilizzabili per le variabili di policy](#policy-vars-infotouse)
+ [Specifica dei valori di default](#policy-vars-default-values)
+ [Ulteriori informazioni](#policy-vars-formoreinfo)

## Introduzione
<a name="policy-vars-intro"></a>

Nelle policy IAM, numerose operazioni consentono di assegnare un nome a risorse specifiche per le quali si desidera controllare l'accesso. Ad esempio, la policy di seguito consente all'utente di elencare, leggere e scrivere gli oggetti nel bucket S3 `amzn-s3-demo-bucket` per i progetti `marketing`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["marketing/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/marketing/*"]
    }
  ]
}
```

------

In alcuni casi, potresti non conoscere il nome esatto della risorsa al momento di scrivere la policy. Puoi generalizzare la policy per renderla utilizzabile da molti utenti senza bisogno di effettuare una copia univoca per ciascun utente. Invece di creare una policy separata per ciascun utente, consigliamo di creare una singola policy di gruppo che funzioni per tutti gli utenti che appartengono a tale gruppo. 

## Utilizzo delle variabili nelle policy
<a name="policy-vars-using-variables"></a>

È possibile definire valori dinamici all'interno delle policy utilizzando *variabili di policy* che impostano i segnaposti in una policy.

Le variabili sono contrassegnate utilizzando un prefisso **`$`**seguito da una coppia di parentesi graffe (**`{ }`**) che includono il nome della variabile del valore della richiesta.

Quando la policy viene valutata, le variabili di policy vengono sostituite con valori provenienti dalle chiavi di contesto condizionali inoltrate nella richiesta. Le variabili possono essere utilizzate nelle [policy basate sull'identità, nelle policy delle risorse, nelle policy di controllo dei servizi, nelle policy di sessione](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) e nelle [policy degli endpoint VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html). Anche le policy basate sull'identità utilizzate come limiti delle autorizzazioni supportano le variabili di policy. 

Le chiavi di contesto delle condizioni globali possono essere utilizzate come variabili nelle richieste tra AWS i servizi. Anche le chiavi di condizione specifiche del servizio possono essere utilizzate come variabili quando interagiscono con le risorse AWS , ma sono disponibili soltanto quando le richieste vengono effettuate su risorse che le supportano. Per un elenco delle chiavi di contesto disponibili per ogni AWS servizio e risorsa, consulta il [https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html). In determinate circostanze, non è possibile inserire un valore nelle chiavi di contesto delle condizioni globali. Per ulteriori informazioni su ciascuna chiave, consulta [AWS global condition context keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

**Importante**  
I nomi delle chiavi non fanno distinzione tra maiuscole e minuscole. Ad esempio, `aws:CurrentTime` è uguale a `AWS:currenttime`.
È possibile utilizzare qualsiasi chiave di condizione a valore singolo come variabile. Non è possibile utilizzare una chiave della condizione multi-valore come variabile.

L'esempio seguente mostra una policy per un utente o un ruolo IAM che sostituisce il nome di una risorsa specifica con una variabile di policy. Puoi riutilizzare questa policy sfruttando i vantaggi della chiave di condizione `aws:PrincipalTag`. Quando questa policy viene valutata, `${aws:PrincipalTag/team}` consente le operazioni solo se il nome del bucket termina con il nome del team dal tag del principale `team`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["${aws:PrincipalTag/team}/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/team}/*"]
    }
  ]
}
```

------

La variabile viene contrassegnata utilizzando un prefisso `$` seguito da una coppia di parentesi graffe (`{ }`). All'interno dei caratteri `${ }` è possibile includere il nome del valore ricavato dalla richiesta da utilizzare nella policy. I valori che possono essere utilizzati sono descritti più avanti in questa pagina.

Per maggiori dettagli su questa chiave di condizione globale, consulta [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag) nell'elenco di chiavi di condizioni globali.

**Nota**  
Per usare le variabili di policy, è necessario che l'elemento `Version` sia incluso in una dichiarazione. Inoltre, la versione deve essere impostata su una versione che supporti le variabili di policy. Le variabili sono state introdotte a partire dalla versione `2012-10-17`. Le versioni precedenti del linguaggio di policy non supportano le variabili. Se l'elemento `Version` non viene incluso e impostato su una data appropriata, alcune variabili, come ad esempio `${aws:username}`, saranno trattate come stringhe letterali nella policy.   
Un elemento di policy `Version` è diverso da una versione di policy. L'elemento di policy `Version` viene utilizzato all'interno di una policy e definisce la versione del linguaggio di policy. Diversamente, viene creata una versione della policy quando si modifica una policy gestita dal cliente in IAM. La policy modificata non viene sovrascritta a quella precedente. IAM crea invece una nuova versione della policy gestita. Per ulteriori informazioni sull'elemento di policy `Version`, consultare [Elementi delle policy JSON IAM: Version](reference_policies_elements_version.md). Per ulteriori informazioni sulle versioni di policy, consultare [Controllo delle versioni delle policy IAM](access_policies_managed-versioning.md).

Una policy che consente a un principale di ottenere oggetti dal percorso /David di un bucket S3 è simile alla seguente:

------
#### [ JSON ]

****  

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

------

Se questa policy è collegata all'utente `David`, tale utente ottiene gli oggetti dal proprio bucket S3, ma potrebbe essere necessario creare una policy separata per ogni utente che include il nome dell'utente. Ciascuna policy dovrà quindi essere collegata ai singoli utenti.

Utilizzando una variabile di policy, è possibile creare policy che possono essere riutilizzate. La seguente policy consente a un utente di ottenere oggetti da un bucket Amazon S3 se il valore tag-chiave per `aws:PrincipalTag` corrisponde al valore del `owner` tag-chiave inviato nella richiesta. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Sid": "AllowUnlessOwnedBySomeoneElse",
    "Effect": "Allow",
    "Action": ["s3:GetObject"],    
    "Resource": ["*"],
    "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/owner": "${aws:PrincipalTag/owner}"
        }
      }
    }
  ]
}
```

------

Se utilizzi una variabile di policy al posto di un utente di questo tipo, non è necessaria una policy separata per ogni singolo utente. Nell'esempio seguente, la policy è collegata a un ruolo IAM assunto dai Product Manager tramite credenziali di sicurezza temporanee. Quando un utente richiede di aggiungere un oggetto Amazon S3, IAM sostituisce il valore del tag `dept` della richiesta corrente per la variabile `${aws:PrincipalTag}` e valuta la policy. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOnlyDeptS3Prefix",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/dept}/*"
            ]
        }
    ]
}
```

------

## Tag come variabili di policy
<a name="policy-vars-tags"></a>

In alcuni AWS servizi è possibile associare attributi personalizzati alle risorse create da tali servizi. Ad esempio, puoi applicare tag a bucket Amazon S3 o a utenti IAM. Questi tag sono coppie chiave-valore. È possibile definire il nome della chiave di tag e il valore associato al nome della chiave. Ad esempio, puoi creare un tag con una chiave **department** e un valore **Human Resources**. Per ulteriori informazioni sul tagging delle entità IAM, consulta [Tag per AWS Identity and Access Management le risorse](id_tags.md). Per informazioni sul tagging delle risorse create da altri servizi AWS , consulta la documentazione di tali servizi. Per ulteriori informazioni sull'utilizzo dell'editor di tag, consulta l'articolo relativo all'[utilizzo dell'editor di tag](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html) nella *Guida per l'utente della Console di gestione AWS *.

Puoi applicare tag alle risorse IAM per semplificare il rilevamento, l'organizzazione e il monitoraggio delle risorse IAM. Puoi inoltre applicare tag alle identità IAM per controllare l'accesso alle risorse o al tagging. Per ulteriori informazioni sull'uso dei tag per controllare l'accesso, consulta [Controllo dell'accesso a e per utenti e ruoli IAM mediante i tag](access_iam-tags.md). 

## Casi in cui è possibile utilizzare le variabili di policy
<a name="policy-vars-wheretouse"></a>

 Le variabili di policy possono essere utilizzate nell'elemento `Resource` e per confrontare stringhe nell'elemento `Condition`.

### Elemento risorsa
<a name="policy-vars-resourceelement"></a>

È possibile utilizzare una variabile criterio nell'elemento `Resource`, ma solo nella parte risorsa dell'ARN. Questa parte dell'ARN appare dopo i quinti due punti (:). Non è possibile utilizzare una variabile per sostituire parti dell'ARN prima dei quinti due punti, ad esempio il servizio o l'account. Per ulteriori informazioni sul formato ARN, consulta [IAM ARNs](reference_identifiers.md#identifiers-arns).

Per sostituire una parte di un ARN con un valore di tag, inserisci il prefisso e il nome della chiave in `${ }`. Ad esempio, il seguente elemento Risorsa si riferisce solo a un bucket con lo stesso nome del valore nel tag department dell'utente richiedente.

`"Resource": ["arn:aws::s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/department}"]`

Molte AWS risorse utilizzano queste risorse ARNs che contengono un nome creato dall'utente. La seguente policy IAM garantisce che solo gli utenti voluti con i valori di tag access-project, access-application e  access-environment corrispondenti possono modificare le relative risorse. Inoltre, utilizzando le [corrispondenze con carattere jolly \$1](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html), sono in grado di consentire suffissi personalizzati per i nomi delle risorse. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessBasedOnArnMatching",
      "Effect": "Allow",
      "Action": [
        "sns:CreateTopic",
        "sns:DeleteTopic"],      
      "Resource": ["arn:aws:sns:*:*:${aws:PrincipalTag/access-project}-${aws:PrincipalTag/access-application}-${aws:PrincipalTag/access-environment}-*"
      ]
    }
  ]
}
```

------

### Elemento condizione
<a name="policy-vars-conditionelement"></a>

È possibile utilizzare una variabile di criterio per i valori `Condition` in qualsiasi condizione che coinvolga gli operatori stringa o gli operatori ARN. Gli operatori stringa includono `StringEquals`, `StringLike` e `StringNotLike`. Gli operatori ARN includono `ArnEquals` e `ArnLike`. Non è possibile utilizzare una variabile di criterio con altri operatori, ad esempio `Numeric`, `Date`, `Boolean`, `Binary`, `IP Address` o `Null`. Per ulteriori informazioni sugli operatori delle condizioni, vedere [Elementi della policy JSON IAM: operatori di condizione](reference_policies_elements_condition_operators.md).

Quando fai riferimento a un tag in un'espressione dell'elemento `Condition`, utilizza il prefisso e il nome della chiave pertinenti come chiave di condizione. Quindi utilizza il valore che desideri testare nel valore della condizione.

Ad esempio, la seguente policy di esempio consente l'accesso completo agli utenti; ma solo se il tag `costCenter` è collegato all'utente. Il tag deve inotlre avere un valore pari a `12345` o `67890`. Se il tag non ha nessun valore o ha qualsiasi altro valore, la richiesta ha esito negativo.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:*user*"
       ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:ResourceTag/costCenter": [ "12345", "67890" ]
        }
      }
    }
  ]
}
```

------

## Variabili di policy senza valore
<a name="policy-vars-no-value"></a>

Quando le variabili di policy fanno riferimento a una chiave di contesto delle condizioni che non ha valore o non è presente nel contesto di autorizzazione per una richiesta, il valore è effettivamente nullo. Non esiste un valore uguale o simile. Le chiavi di contesto delle condizioni potrebbero non essere presenti nel contesto di autorizzazione quando:
+ Si utilizzano le chiavi di contesto delle condizioni specifiche del servizio nelle richieste inviate a risorse che non supportano tale chiave di condizione.
+ I tag sulle sessioni, sulle risorse, sulle richieste o sui principali IAM non sono presenti.
+ Altre circostanze, come specificate per ogni chiave di contesto delle condizioni globali alla pagina [AWS chiavi di contesto della condizione globale](reference_policies_condition-keys.md).

Quando si utilizza una variabile senza valore nell'elemento della condizione di una policy IAM, gli [Elementi della policy JSON IAM: operatori di condizione](reference_policies_elements_condition_operators.md) come `StringEquals` o `StringLike` non corrispondono e l'istruzione della policy non ha effetto.

Gli operatori di condizione invertiti come `StringNotEquals` o `StringNotLike` corrispondono a un valore nullo, poiché il valore della chiave di condizione che stanno verificando non corrisponde o non è uguale al valore effettivamente nullo.

Nel seguente esempio, per consentire l'accesso `aws:principaltag/Team` deve essere uguale a `s3:ExistingObjectTag/Team`. L'accesso è esplicitamente negato quando `aws:principaltag/Team` non è impostato. Se una variabile che non ha valore nel contesto di autorizzazione viene utilizzata come parte dell'elemento `Resource` o `NotResource` di una policy, la risorsa che include una variabile di policy senza valore non corrisponderà ad alcuna risorsa.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
    "Effect": "Deny", 
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringNotEquals": {
        "s3:ExistingObjectTag/Team": "${aws:PrincipalTag/Team}"
       }
      }
    }
  ]
}
```

------

## Richiesta di informazioni utilizzabili per le variabili di policy
<a name="policy-vars-infotouse"></a>

 È possibile utilizzare l'elemento `Condition` di una policy JSON per confrontare le chiavi nel [contesto della richiesta](reference_policies_evaluation-logic_policy-eval-reqcontext.md) con i valori chiave specificati nella policy. Quando si utilizza una variabile di politica, AWS sostituisce un valore della chiave di contesto della richiesta al posto della variabile nella politica.

### Valori della chiave dell'entità principale
<a name="principaltable"></a>

I valori per `aws:username`, `aws:userid` e `aws:PrincipalType` dipendono dal tipo di principale che ha avviato la richiesta. Ad esempio, la richiesta può essere effettuata utilizzando le credenziali di un utente IAM, di un ruolo IAM o dell' Utente root dell'account AWS. La seguente tabella mostra i valori di tali chiavi per i diversi tipi di principale. 


****  

| Principale | `aws:username` | `aws:userid` | `aws:PrincipalType` | 
| --- | --- | --- | --- | 
| Utente root dell'account AWS | (non presente) | Account AWS ID | Account | 
| Utente IAM | IAM-user-name | [ID univoco](reference_identifiers.md#identifiers-unique-ids) | User | 
| AWS STS utente federato principale | (non presente) | account:caller-specified-name | FederatedUser | 
| Principale federato OIDC Per informazioni sulle chiavi di policy disponibili quando utilizzi la federazione delle identità Web, consultare [Chiavi disponibili per la federazione AWS OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif).  | (non presente) |   *role-id*:*caller-specified-role-name*  dove `role-id` è l'[id univoco del ruolo](reference_identifiers.md#identifiers-unique-ids) ed caller-specified-role-name è specificato dal [RoleSessionName parametro](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html#API_AssumeRoleWithWebIdentity_RequestParameters) passato alla AssumeRoleWithWebIdentity richiesta.  | AssumedRole | 
| Principale federato SAML Per informazioni sulle chiavi di policy disponibili quando si usa la federazione SAML, consultare [Identificazione univoca degli utenti nella federazione basata su SAML](id_roles_providers_saml.md#CreatingSAML-userid).  | (non presente) |  *role-id*:*caller-specified-role-name* dove `role-id` è l'[id univoco del ruolo](reference_identifiers.md#identifiers-unique-ids) ed caller-specified-role-name è specificato dall'elemento Attribute con l'attributo [Name impostato su https://aws.amazon.com/SAML/ RoleSessionName attributes/](id_roles_providers_create_saml_assertions.md).  | AssumedRole | 
| Ruolo assunto | (non presente) |  *role-id*:*caller-specified-role-name* dove `role-id` è l'[id univoco del ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) ed caller-specified-role-name è specificato dal [RoleSessionName parametro](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters) passato alla richiesta. AssumeRole   | AssumedRole | 
| Ruolo assegnato a un'istanza Amazon EC2 | (non presente) |  *role-id*:*ec2-instance-id* dove `role-id` è l'[id univoco del ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) e l'id-istanza-ec2 è l'[identificativo univoco dell'istanza EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html).  | AssumedRole | 
| Chiamante anonimo (solo Amazon SQS, Amazon SNS e Amazon S3) | (non presente) | anonymous | Anonymous | 

Per gli elementi di questa tabella, nota quanto segue:
+ *non presente* significa che il valore non è riportato nelle informazioni della richiesta corrente e qualsiasi tentativo di trovare una corrispondenza avrà esito negativo e l'istruzione viene considerata non valida. 
+ *role-id*è un identificatore univoco assegnato a ciascun ruolo al momento della creazione. È possibile visualizzare l'ID del ruolo con il AWS CLI comando: `aws iam get-role --role-name rolename`
+ *caller-specified-name*e *caller-specified-role-name* sono nomi che vengono passati dal processo chiamante (ad esempio un'applicazione o un servizio) quando effettua una chiamata per ottenere credenziali temporanee.
+ *ec2-instance-id*è un valore assegnato all'istanza al momento dell'avvio e viene visualizzato nella pagina **Istanze** della console Amazon EC2. Puoi anche visualizzare l'ID dell'istanza eseguendo il AWS CLI comando: `aws ec2 describe-instances`

### Informazioni disponibili nelle richieste per i principali federati
<a name="policy-vars-infoWIF"></a>

I principali federati vengono autenticati utilizzando un sistema diverso da IAM. Ad esempio, un'azienda potrebbe disporre di un'applicazione da utilizzare internamente che effettua chiamate verso AWS. Fornire un'identità IAM a ogni utente dell'azienda che utilizza l'applicazione potrebbe risultare poco pratico. Al contrario, l'azienda può utilizzare un'applicazione proxy (livello intermedio) con una singola identità IAM, oppure un provider di identità (IdP) SAML. L'applicazione proxy o l'IdP SAML autentica i singoli utenti individuali tramite la rete aziendale. Un'applicazione proxy può quindi utilizzare la propria identità di IAM per ottenere credenziali di sicurezza provvisorie per i singoli utenti. Un IdP SAML può in effetti scambiare informazioni sull'identità AWS per credenziali di sicurezza temporanee. Le credenziali temporanee possono quindi essere utilizzate per accedere alle risorse. AWS 

Allo stesso modo, potresti creare un'applicazione per dispositivi mobili che richiede l'accesso alle risorse AWS . In questo caso, puoi ricorrere alla *federazione OIDC*, per fare in modo che l'app autentichi l'utente utilizzando un provider di identità conosciuto, come Login with Amazon, Amazon Cognito, Facebook o Google. A questo punto, l'applicazione potrà utilizzare le informazioni di autenticazione dell'utente fornite da tali provider per ottenere le credenziali di sicurezza temporanee per l'accesso alle risorse AWS . 

Il modo consigliato per utilizzare la federazione OIDC è sfruttare Amazon Cognito e i dispositivi mobili. AWS SDKs Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Guida per l'utente di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) 
+ [Scenari comuni per le credenziali temporanee](id_credentials_temp.md#sts-introduction)

### Caratteri speciali
<a name="policy-vars-specialchars"></a>

Alcune variabili di policy speciali e predefinite hanno valori fissi che consentono di rappresentare caratteri che altrimenti avrebbero un significato diverso. Se tali caratteri speciali fanno parte della stringa per cui stai cercando una corrispondenza e vengono inseriti letteralmente, il loro significato sarebbe frainteso. Ad esempio, se nella stringa inserisci un asterisco (\$1), questo non sarà interpretato come un semplice asterisco, ma come un carattere jolly corrispondente a tutti i caratteri. In tali casi, puoi utilizzare le seguenti variabili di policy predefinite:
+ **\$1\$1\$1\$1** - da usare quando devi inserire un asterisco (\$1).
+ **\$1\$1?\$1** - da usare quando devi inserire un punto interrogativo (?).
+ **\$1\$1\$1\$1** - da usare quando devi inserire il simbolo del dollaro (\$1).

Queste variabili di policy predefinite possono essere inserite in qualsiasi stringa in cui è possibile utilizzare le normali variabili di policy.

## Specifica dei valori di default
<a name="policy-vars-default-values"></a>

Per aggiungere un valore di default a una variabile, racchiudi il valore di default tra virgolette singole (`' '`) e separa il testo della variabile e il valore di default con una virgola e uno spazio (`, `).

Ad esempio, se a un principale è applicato un tag`team=yellow`, è possibile accedere al bucket Amazon S3 `ExampleCorp's` denominato `amzn-s3-demo-bucket-yellow`. Una policy con questa risorsa consente ai membri del team di accedere al bucket del team, ma non a quelli di altri team. Per gli utenti senza tag team, la policy imposta un valore di default di `company-wide` per il nome del bucket. Questi utenti possono accedere solo al bucket `amzn-s3-demo-bucket-company-wide` dove possono visualizzare informazioni generali, come le istruzioni per entrare a far parte di un team.

```
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket-${aws:PrincipalTag/team, 'company-wide'}"
```

## Ulteriori informazioni
<a name="policy-vars-formoreinfo"></a>

Per ulteriori informazioni sulle policy, consultare: 
+  [Politiche e autorizzazioni in AWS Identity and Access Management](access_policies.md) 
+  [Esempi di policy basate su identità IAM](access_policies_examples.md) 
+  [Documentazione di riferimento degli elementi delle policy JSON IAM](reference_policies_elements.md) 
+  [Logica di valutazione delle policy](reference_policies_evaluation-logic.md) 
+  [Federazione OIDC](id_roles_providers_oidc.md)

# Elementi della policy JSON IAM: tipi di dati supportati
<a name="reference_policies_elements_datatypes"></a>

Questa sezione elenca i tipi di dati che sono supportati quando si specificano valori in policy JSON. Il linguaggio della policy non supporta tutti i tipi per ciascun elemento della policy; per informazioni su ciascun elemento, consultare le sezioni precedenti.
+ Stringhe
+ Numeri (interi e valori a virgola mobile)
+ Booleano
+ Null
+ Elenchi
+ Mappe
+ Strutture (sono solo mappe nidificate)

La tabella seguente associa ogni tipo di dati alla serializzazione. Notare che tutte le policy devono essere in UTF-8. Per informazioni sui tipi di dati JSON, consulta [RFC 4627](https://datatracker.ietf.org/doc/html/rfc4627).


****  

| Tipo | JSON | 
| --- | --- | 
|  Stringa  |  Stringa  | 
|  Numero intero  |  Numero  | 
|  Float  |  Numero  | 
|  Booleano  |  true false  | 
|  Null  |  null  | 
|  Data  |  Stringa in linea con il [profilo W3C di ISO 8601](http://www.w3.org/TR/NOTE-datetime)  | 
|  IpAddress  |  Stringa in linea con [RFC 4632](https://datatracker.ietf.org/doc/html/rfc4632)  | 
|  List  |  Array  | 
|  Oggetto  |  Oggetto  | 

# Logica di valutazione delle policy
<a name="reference_policies_evaluation-logic"></a>

Quando un principale tenta di utilizzare l' Console di gestione AWS, l' AWS API o il AWS CLI, quel principale invia una *richiesta* a. AWS Quando un AWS servizio riceve la richiesta, AWS completa diversi passaggi per determinare se consentire o rifiutare la richiesta.

1. **Autenticazione**: autentica AWS innanzitutto il principale che effettua la richiesta, se necessario. Questo passaggio non è necessario per alcuni servizi, ad esempio Amazon S3, che consentono alcune richieste da parte di utenti anonimi.

1. **[Elaborazione del contesto della richiesta](reference_policies_evaluation-logic_policy-eval-reqcontext.md)**— AWS elabora le informazioni raccolte nella richiesta per determinare quali politiche si applicano alla richiesta.

1. **[In che modo la logica del codice di AWS applicazione valuta le richieste di consentire o negare l'accesso](reference_policies_evaluation-logic_policy-eval-denyallow.md)**— AWS valuta tutti i tipi di policy e l'ordine delle policy influisce sul modo in cui vengono valutate. AWS quindi elabora le politiche in base al contesto della richiesta per determinare se la richiesta è consentita o rifiutata.

## Valutazione delle policy basate su identità con policy basate su risorse
<a name="policy-eval-basics-id-rdp"></a>

Le policy basate su identità e le policy basate su risorse concedono autorizzazioni alle identità o alle risorse a cui sono collegate. Quando un'entità IAM (utente o ruolo) richiede l'accesso a una risorsa all'interno dello stesso account, AWS valuta tutte le autorizzazioni concesse dalle politiche basate sull'identità e sulle risorse. Le autorizzazioni risultanti sono le autorizzazioni totali dei due tipi. Se un'azione è consentita da una policy basata sull'identità, una policy basata sulle risorse o entrambe, allora consente l'azione. AWS Un rifiuto esplicito in una di queste policy sostituisce l'autorizzazione.

![\[Valutazione delle policy basate su identità e delle policy basate su risorse\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/permissions_policies_effective.png)


## Valutazione delle policy basate su identità con i limiti delle autorizzazioni
<a name="policy-eval-basics-id-bound"></a>

Quando si AWS valutano le politiche basate sull'identità e i limiti delle autorizzazioni per un utente, le autorizzazioni risultanti sono l'intersezione delle due categorie. Ciò significa che quando aggiungi un limite delle autorizzazioni a un utente con policy basate su identità esistenti, potresti ridurre il numero di operazioni che l'utente può eseguire. Di contro, quando rimuovi un limite delle autorizzazioni da un utente, potresti aumentare il numero di operazioni che può eseguire. Un rifiuto esplicito in una di queste policy sostituisce l'autorizzazione. Per informazioni su come altri tipi di policy vengono valutati con i limiti delle autorizzazioni, consulta [Valutazione delle autorizzazioni valide con i limiti](access_policies_boundaries.md#access_policies_boundaries-eval-logic).

![\[Valutazione delle policy basate su identità e dei limiti delle autorizzazioni\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/permissions_boundary.png)


## Valutazione delle AWS Organizations SCPs politiche basate sull'identità con o RCPs
<a name="policy-eval-basics-id-scp"></a>

Quando un utente appartiene a un account membro di un'organizzazione e accede a una risorsa per la quale non è configurata una politica basata sulle risorse, le autorizzazioni risultanti sono l'intersezione tra le politiche dell'utente, le politiche di controllo dei servizi () e le politiche di controllo delle risorse (SCPsRCP). Ciò significa che un'azione deve essere consentita da tutti e tre i tipi di policy. Un rifiuto esplicito nella policy basata sull'identità, una SCP o una RCP ha la precedenza sull'autorizzazione.

![\[Valutazione delle politiche basate sull'identità e/o SCPs RCPs\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/permissions_scp-idp.png)


Puoi scoprire [se il tuo account è un membro di un'organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account) in AWS Organizations. I membri dell'organizzazione potrebbero essere influenzati da una SCP o una RCP. Per visualizzare questi dati utilizzando il AWS CLI comando o l'operazione AWS API, è necessario disporre delle autorizzazioni per l'`organizations:DescribeOrganization`azione per l'entità. AWS Organizations È necessario disporre di autorizzazioni aggiuntive per eseguire l'operazione nella AWS Organizations console. Per sapere se un SCP o RCP sta negando l'accesso a una richiesta specifica o per modificare le autorizzazioni effettive, contatta l'amministratore. AWS Organizations 

# Elaborazione del contesto della richiesta
<a name="reference_policies_evaluation-logic_policy-eval-reqcontext"></a>

*Quando AWS valuta e autorizza una richiesta, assembla le informazioni sulla richiesta in un contesto di richiesta.* Il contesto della richiesta contiene tutte le informazioni che possono essere utilizzate nella valutazione delle policy.
+ **Principale**: l’utente, il ruolo o il principale utente federato che ha inviato la richiesta. Le informazioni sull'entità principale includono le policy associate a tale entità principale. 
+ **Azioni**: una o più azioni che il principale desidera eseguire.
+ **Risorse**: uno o più oggetti AWS risorsa su cui vengono eseguite le azioni o le operazioni.
+ **Dati sulla risorsa** – I dati correlati alla risorsa che viene richiesta. Possono essere incluse informazioni quali un nome di tabella di DynamoDB o un tag su un'istanza Amazon EC2.
+ **Dati di ambiente**: informazioni sull'indirizzo IP, l'agente utente, lo stato SSL abilitato o l'ora del giorno.

Queste informazioni vengono confrontate con le policy applicabili per determinare se accettare o rifiutare la richiesta. È possibile organizzare queste informazioni sulle proprietà utilizzando il modello **Principal**, **Action**, **Resource** and **Condition** (PARC) per comprendere meglio come vengono valutate AWS le politiche.

## Comprensione del modello PARC
<a name="reqcontext_parc-model"></a>

Il modello PARC rappresenta il contesto della richiesta basato sui quattro elementi JSON nel linguaggio della policy:
+ [Principal](reference_policies_elements_principal.md): l’entità che effettua la richiesta. Un principale rappresenta un utente umano o un carico di lavoro programmatico che può essere autenticato e quindi autorizzato a eseguire azioni negli Account AWS.
+ [Action](reference_policies_elements_action.md): l’operazione in corso. Spesso l’operazione verrà mappata a un’operazione API.
+ [Resource](reference_policies_elements_resource.md): la risorsa AWS su cui viene eseguita l’operazione.
+ [Condition](reference_policies_elements_condition.md): vincoli aggiuntivi che devono essere soddisfatti affinché la richiesta sia consentita.

Di seguito è illustrato un esempio di come il modello PARC potrebbe rappresentare un contesto della richiesta:

```
Principal: AIDA123456789EXAMPLE
Action: s3:CreateBucket
Resource: arn:aws:s3:::amzn-s3-demo-bucket1
Context:
- aws:UserId=AIDA123456789EXAMPLE:BobsSession
- aws:PrincipalAccount=123456789012
- aws:PrincipalOrgId=o-example
- aws:PrincipalARN=arn:aws:iam::AIDA123456789EXAMPLE:role/HR
- aws:MultiFactorAuthPresent=true
- aws:CurrentTime=...
- aws:EpochTime=...
- aws:SourceIp=...
- aws:PrincipalTag/dept=123
- aws:PrincipalTag/project=blue
- aws:RequestTag/dept=123
```

## Importanza del contesto della richiesta
<a name="reqcontext_importance"></a>

Comprendere il contesto della richiesta e il modo in cui interagisce con la valutazione delle policy è fondamentale per le seguenti finalità:
+ Risoluzione dei problemi di accesso 
+ Progettazione di policy efficaci e sicure
+ Comprensione dell’ambito completo delle autorizzazioni concesse da una policy
+ Previsione dell’esito delle valutazioni delle policy in vari scenari

Visualizzando il contesto della richiesta utilizzando il modello PARC, è possibile comprendere più facilmente come AWS prende le decisioni di autorizzazione e progetta le politiche in modo più efficace.

## Come AWS utilizza il contesto della richiesta
<a name="reqcontext_usage"></a>

Durante la valutazione delle politiche, AWS confronta le informazioni nel contesto della richiesta con le informazioni specificate in tutte le politiche applicabili. Ciò include politiche basate sull'identità, politiche basate sulle risorse, limiti delle autorizzazioni IAM, Organizations, Organizations e policy di sessione. SCPs RCPs

Per ogni tipo di policy, utilizza il contesto della richiesta per verificare AWS :
+ Se la policy si applica alla richiesta in base al principale.
+ Se l’operazione richiesta è consentita sulla risorsa specificata.
+ Se le condizioni specificate nella policy sono soddisfatte dal contesto della richiesta.

Il modo in cui AWS valuta le politiche dipende dai tipi di politiche che si applicano al contesto della richiesta. Questi tipi di policy possono essere utilizzati in un singolo Account AWS. Per ulteriori informazioni su questi tipi di policy, consulta [Politiche e autorizzazioni in AWS Identity and Access Management](access_policies.md). Per informazioni su come AWS valuta le politiche per l'accesso tra account diversi, consulta. [Cross-account policy evaluation logic](reference_policies_evaluation-logic-cross-account.md)
+ **AWS Organizations politiche di controllo delle risorse (RCPs)**: AWS Organizations RCPs specificano le autorizzazioni massime disponibili per le risorse all'interno degli account di un'organizzazione o di un'unità organizzativa (OU). RCPs si applicano alle risorse degli account dei membri e influiscono sulle autorizzazioni effettive per i responsabili, incluse le Utente root dell'account AWS, indipendentemente dal fatto che i responsabili appartengano all'organizzazione. RCPs non si applicano alle risorse dell'account di gestione dell'organizzazione e alle chiamate effettuate da ruoli collegati al servizio. Se una RCP è presente, le autorizzazioni concesse da policy basate su identità e policy basate su risorse alle risorse negli account membri sono effettive solo se l’RCP consente l’operazione.
+ **AWS Organizations policy di controllo del servizio (SCPs)**: AWS Organizations SCPs specificano le autorizzazioni massime disponibili per i responsabili all'interno degli account di un'organizzazione o di un'unità organizzativa (OU). SCPs si applicano ai responsabili degli account dei membri, compresi ciascuno. Utente root dell'account AWS Se una SCP è presente, le autorizzazioni concesse da policy basate su identità e policy basate su risorse ai principali negli account membri sono effettive solo se l’SCP consente l’operazione. Le uniche eccezioni sono i principali dell'account di gestione dell'organizzazione e i ruoli collegati ai servizi.
+ **Policy basate sulle risorse**: le policy basate sulle risorse concedono le autorizzazioni per i principali specificati nella policy. Le autorizzazioni definiscono ciò che l'entità principale può fare con la risorsa a cui è collegata la policy.
+ **Limiti delle autorizzazioni**: i limiti delle autorizzazioni sono una funzionalità avanzata che imposta il numero massimo di autorizzazioni che una policy basata su identità può concedere a un’entità IAM (utente o ruolo). Quando si imposta un limite delle autorizzazioni per un'entità, l'entità può eseguire solo le operazioni consentite dalle sue policy basate su identità e dai suoi limiti delle autorizzazioni. In alcuni casi, un rifiuto implicito in un limite delle autorizzazioni può limitare le autorizzazioni concesse da una policy basata sulle risorse. Per ulteriori informazioni, consulta [In che modo la logica del codice di AWS applicazione valuta le richieste di consentire o negare l'accesso](reference_policies_evaluation-logic_policy-eval-denyallow.md).
+ **Policy basate su identità**: le policy basate su identità sono collegate a un'identità IAM (utente, gruppo di utenti o ruolo) e concede le autorizzazioni per entità IAM (utenti e ruoli). Se a una richiesta si applicano solo politiche basate sull'identità, AWS verifica che tutte queste politiche ne accertino almeno una. `Allow`
+ **Policy di sessione**: le policy di sessione sono policy che si inviano come parametro quando si crea in modo programmatico una sessione temporanea per un ruolo o una sessione utente federato. Per creare una sessione del ruolo in modo programmatico, è possibile utilizzare una delle operazioni API `AssumeRole*`. Quando esegui questa operazione e passi le policy di sessione, le autorizzazioni della sessione risultante sono l'intersezione della policy basata su identità dell'utente dell'entità IAM e delle policy di sessione. Per creare una sessione per l'utente federato, si utilizzano le chiavi di accesso dell'utente IAM per chiamare in modo programmatico l'operazione API `GetFederationToken`. Per ulteriori informazioni, consulta [Policy di sessione](access_policies.md#policies_session).

Occorre ricordare che un rifiuto esplicito in una qualsiasi di queste policy sostituisce l'autorizzazione.

**Nota**  
**AWS Organizations le politiche dichiarative consentono di** dichiarare e applicare in modo centralizzato la configurazione desiderata per un determinato Servizio AWS aspetto su larga scala all'interno dell'organizzazione. Poiché le policy dichiarative vengono applicate direttamente a livello di servizio, non influiscono direttamente sulle richieste di valutazione delle policy e non sono incluse nel contesto della richiesta. Per ulteriori informazioni, consulta [Politiche dichiarative](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) nella Guida per l'utente. AWS Organizations 

## Esempio di valutazione delle policy utilizzando il modello PARC
<a name="reqcontext_example"></a>

Per illustrare come il contesto della richiesta interagisce con la valutazione delle policy, prendiamo in considerazione un esempio di policy:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/dept": "123"
        }
      }
    }
  ]
}
```

------

In questo esempio, la policy consentirebbe l’operazione `CreateBucket` solo quando il contesto della richiesta include un valore `aws:PrincipalTag/dept` di “123” e la risorsa corrisponde al nome del bucket `amzn-s3-demo-bucket1`. La tabella seguente mostra come AWS utilizza il contesto della richiesta per valutare questa policy e prendere decisioni di autorizzazione.


| Policy | Contesto della richiesta | Risultato della valutazione | 
| --- | --- | --- | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Partita** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:DeleteBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Nessuna corrispondenza** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=321</pre>  | **Nessuna corrispondenza** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:</pre> Nessun `aws:PrincipalTag` nella richiesta.  | **Nessuna corrispondenza** | 

# In che modo la logica del codice di AWS applicazione valuta le richieste di consentire o negare l'accesso
<a name="reference_policies_evaluation-logic_policy-eval-denyallow"></a>

Il codice di AWS applicazione decide se una richiesta inviata a AWS debba essere accolta o rifiutata. AWS valuta tutte le politiche applicabili al contesto della richiesta. Di seguito è riportato un riepilogo della logica di valutazione delle AWS politiche.
+ Per impostazione predefinita, tutte le richieste vengono negate implicitamente con l'eccezione dell' Utente root dell'account AWS, che ha accesso completo.
+ Per essere consentite, le richieste devono essere esplicitamente consentite da una policy o da un insieme di policy che seguono la logica di valutazione riportata di seguito.
+ Un rifiuto esplicito sovrascrive un consenso esplicito.

La valutazione della policy può variare a seconda che la richiesta riguardi un singolo account oppure più account. Per i dettagli su come viene presa una decisione di valutazione della policy per un ruolo o un utente IAM all’interno di un singolo account, consulta [Valutazione delle policy per le richieste all'interno di un singolo account](reference_policies_evaluation-logic_policy-eval-basics.md). Per i dettagli su come viene presa una decisione di valutazione della policy per le richieste tra più account, consulta [Cross-account policy evaluation logic](reference_policies_evaluation-logic-cross-account.md).
+ **Rifiuta valutazione**: per impostazione predefinita, tutte le richieste vengono rifiutate. Si tratta del cosiddetto [rifiuto implicito](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Il codice di AWS applicazione valuta tutte le politiche all'interno dell'account che si applicano alla richiesta. Queste includono AWS Organizations SCPs e RCPs, politiche basate sulle risorse, politiche basate sull'identità, limiti delle autorizzazioni IAM e politiche di sessione. In tutte le policy, il codice di attuazione cerca un'istruzione `Deny` applicabile alla richiesta. Questa azione si chiama [rifiuto esplicito](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Se il codice di applicazione trova anche un solo rifiuto esplicito applicabile, restituisce **Rifiuta** come decisione finale. Se non c'è un rifiuto esplicito, la valutazione del codice di attuazione continua.
+ **AWS Organizations RCPs**— Il codice di applicazione valuta le politiche di controllo AWS Organizations delle risorse () che si applicano alla richiesta. RCPs RCPs si applicano alle risorse dell'account a cui RCPs sono allegate. Se il codice di esecuzione non trova alcuna `Allow` dichiarazione applicabile nel RCPs, il codice di esecuzione restituisce una decisione finale di **Deny.** Tieni presente che una policy AWS gestita chiamata `RCPFullAWSAccess` viene automaticamente creata e allegata a ogni entità dell'organizzazione, inclusa la root, ogni unità organizzativa e Account AWS quando RCPs è abilitata. `RCPFullAWSAccess`non può essere staccata, quindi ci sarà sempre una `Allow` dichiarazione. Se non c'è alcuna RCP oppure se l'RCP consente l'operazione richiesta, la valutazione del codice di applicazione continua.
+ **AWS Organizations SCPs**— Il codice di applicazione valuta le politiche di controllo del AWS Organizations servizio (SCPs) che si applicano alla richiesta. SCPs si applicano ai capitali del conto a cui SCPs sono allegati. Se il codice di esecuzione non trova alcuna `Allow` dichiarazione applicabile nel SCPs, il codice di esecuzione restituisce una decisione finale di **Deny**. Se non c'è alcuna SCP oppure se l'SCP consente l'operazione richiesta, la valutazione del codice di attuazione continua.
+ **Policy basate sulle risorse**: all'interno dello stesso account, le policy basate sulle risorse influiscono sulla valutazione delle policy in modo diverso a seconda del tipo di principale che accede alla risorsa e al principale consentito nella policy basata sulle risorse. A seconda del tipo di principale, un `Allow` in una policy basata sulle risorse può comportare una decisione definitiva di `Allow`, anche se è presente un rifiuto implicito in una policy basata su identità, un limite delle autorizzazioni o una policy di sessione.

  Per la maggior parte delle risorse, è necessario solo un'autorizzazione `Allow` esplicita per il principale in una policy basata sulle identità o una policy basata sulle risorse per concedere l'accesso. [Le policy di affidabilità dei ruoli IAM](access_policies-cross-account-resource-access.md#access_policies-cross-account-delegating-resource-based-policies) e [le policy delle chiavi KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) sono eccezioni a questa logica, perché devono consentire esplicitamente l'accesso per [i principali](reference_policies_elements_principal.md). Le policy basate sulle risorse per servizi diversi da IAM e AWS KMS potrebbero richiedere anche una dichiarazione esplicita `Allow` all’interno dello stesso account per concedere l’accesso. Per ulteriori informazioni, consulta la documentazione per il servizio specifico che stai utilizzando.

  Per le richieste di valutazione delle policy per un singolo account, la policy basata sulle risorse differisce dagli altri tipi di policy se il principale specificato è un utente IAM, un ruolo IAM o un principale di sessione. I principali della sessione includono [sessioni di ruolo IAM](reference_policies_elements_principal.md#principal-role-session) o [principali utente federato AWS STS](reference_policies_elements_principal.md#sts-session-principals). Se una policy basata sulle risorse concede l'autorizzazione direttamente all'utente IAM o al principale di sessione che sta effettuando la richiesta, un rifiuto implicito in una policy basata sull'identità, un limite di autorizzazioni o una policy di sessione non influiscono sulla decisione finale.
  + **Ruolo IAM**: i criteri basati sulle risorse che concedono le autorizzazioni a un ARN del ruolo IAM sono limitati da un rifiuto implicito in un limite delle autorizzazioni o in una policy di sessione. È possibile specificare l'ARN del ruolo nell'elemento Principal o nella chiave di condizione `aws:PrincipalArn`. In entrambi i casi, il principale che effettua la richiesta è la **sessione del ruolo IAM**.

    I limiti delle autorizzazioni e le policy di sessione non limitano le autorizzazioni concesse tramite la chiave di condizione `aws:PrincipalArn` con un carattere jolly (\$1) nell'elemento Principal, a meno che le policy basate sulle identità non contengano un rifiuto esplicito. Per ulteriori informazioni, consulta [Principali ruolo IAM](reference_policies_elements_principal.md#principal-roles).

    **Esempio di ARN di ruolo**

    ```
    arn:aws:iam::111122223333:role/examplerole
    ```
  + **Sessione come ruolo IAM**: all'interno dello stesso account, le policy basate sulle risorse che concedono le autorizzazioni all'ARN della sessione come ruolo IAM concedono le autorizzazioni direttamente alla sessione come ruolo assunto. Le autorizzazioni concesse direttamente a una sessione non sono limitate da un rifiuto implicito in una policy basata su identità, da un limite delle autorizzazioni o da una policy di sessione. Quando si assume un ruolo e si effettua una richiesta, il principale che effettua la richiesta è l'ARN della sessione come ruolo IAM e non l'ARN del ruolo stesso. Per ulteriori informazioni, consulta [Principali della sessione come ruolo](reference_policies_elements_principal.md#principal-role-session).

    **Esempio di ARN della sessione come ruolo**

    ```
    arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    ```
  + **Utente IAM**: all'interno dello stesso account, le politiche basate sulle risorse che concedono autorizzazioni all'ARN di un utente IAM (ovvero, non una sessione come utente federato) non sono limitate da un rifiuto implicito in una policy basata su identità o in un limite delle autorizzazioni.

    **Esempio di ARN dell'utente IAM**

    ```
    arn:aws:iam::111122223333:user/exampleuser
    ```
  + **AWS STS principale utente federato**: una sessione utente federata è una sessione creata mediante chiamata. [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken) Quando un utente federato effettua una richiesta, il principale che effettua la richiesta è l'ARN dell'utente federato e non l'ARN dell'utente IAM che ha eseguito la federazione. All'interno dello stesso account, le policy basate sulle risorse che concedono le autorizzazioni all'ARN dell'utente federato concedono le autorizzazioni direttamente alla sessione. Le autorizzazioni concesse direttamente a una sessione non sono limitate da un rifiuto implicito in una policy basata su identità, da un limite delle autorizzazioni o da una policy di sessione.

    Tuttavia, se una policy basata sulle risorse concede l'autorizzazione all'ARN dell'utente IAM che ha eseguito la federazione, le richieste fatte dall'utente federato durante la sessione sono limitate da un rifiuto implicito in un limite di autorizzazione o in una policy di sessione.

    **Esempio di ARN di sessione utente federato**

    ```
    arn:aws:sts::111122223333:federated-user/exampleuser
    ```
+ **Policy basate su identità**: il codice di applicazione verifica le policy basate su identità per il principale. Per un utente IAM, queste includono le policy utente e le policy dei gruppi a cui appartiene l'utente. Se non ci sono policy basate su identità o istruzioni nelle policy basata su identità che consentono l'operazione richiesta, la richiesta viene rifiutata implicitamente e il codice di applicazione restituisce **Rifiuta** come decisione finale. Se un'istruzione in qualsiasi policy basata su identità applicabile consente l'operazione richiesta, la valutazione del codice continua.
+ **Limiti delle autorizzazioni IAM**: il codice di applicazione controlla se l'entità IAM utilizzata dal principale ha un limite delle autorizzazioni. Se la policy utilizzata per impostare il limite delle autorizzazioni non consente l'operazione richiesta, la richiesta viene rifiutata implicitamente. Il codice di attuazione restituisce **Deny** (Rifiuta) come decisione finale. Se non c'è alcun limite delle autorizzazioni oppure se il limite delle autorizzazioni consente l'operazione richiesta, la valutazione del codice continua.
+ **Policy di sessione**: il codice di applicazione verifica se il principale è un principale di sessione. I principali della sessione includono una sessione di ruolo IAM o una sessione utente AWS STS federata. Se il principale non è un principale di sessione, il codice di attuazione restituisce **Allow (Consenti)** come decisione finale.

  Per i principali della sessione, il codice di applicazione verifica se una policy di sessione è passata nella richiesta. Puoi passare una policy di sessione mentre usi l' AWS API AWS CLI or per ottenere credenziali temporanee per un ruolo o un utente principale AWS STS federato. Se non hai approvato una policy di sessione, viene creata una policy di sessione predefinita e il codice di applicazione restituisce **Consenti** come decisione finale.
  + Se una policy di sessione è presente e non consente l'operazione richiesta, la richiesta viene rifiutata implicitamente. Il codice di attuazione restituisce **Deny** (Rifiuta) come decisione finale.
  + Il codice di applicazione verifica se il principale è una sessione del ruolo. Se il principale è una sessione di ruolo, la richiesta è **Consentita**. In caso contrario, la richiesta viene negata implicitamente e iI codice di applicazione restituisce **Rifiuta** come decisione finale.
  + Se una policy di sessione è presente e consente l'operazione richiesta, il codice di attuazione restituisce **Consenti** come decisione finale.

# Valutazione delle policy per le richieste all'interno di un singolo account
<a name="reference_policies_evaluation-logic_policy-eval-basics"></a>

## Valutazione della policy per un ruolo IAM
<a name="policy-eval-basics-single-account-role"></a>

Il seguente diagramma di flusso fornisce dettagli su come viene presa una decisione di valutazione della policy per un ruolo IAM all’interno di un singolo account.

![\[Diagramma di flusso di valutazione per un ruolo IAM all’interno di un singolo account\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/PolicyEvaluationSingleAccountRole.png)


## Valutazione della policy per un utente IAM
<a name="policy-eval-basics-single-account-user"></a>

Il seguente diagramma di flusso fornisce dettagli su come viene presa una decisione di valutazione della policy per un utente IAM all’interno di un singolo account.

![\[Diagramma di flusso di valutazione per un utente IAM all’interno di un singolo account\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/PolicyevaluationSingleAccountUser.png)


## Esempio di valutazione delle policy basate su identità e delle policy basate su risorse
<a name="reference_policies_evaluation-logic_policies_evaluation_example"></a>

I tipi di policy più comuni sono quelle basate su identità e quelle basate su risorse. Quando viene richiesto l'accesso a una risorsa, AWS valuta tutte le autorizzazioni concesse dalle politiche per **almeno un Consenti** all'interno dello stesso account. Un rifiuto esplicito in una qualsiasi di queste policy sostituisce l'autorizzazione.

**Importante**  
Se la policy basata sull'identità o la policy basata sulle risorse all'interno dello stesso account consente la richiesta e l'altra no, la richiesta è comunque consentita.

Supponiamo che Carlos, con il nome utente `carlossalazar`, voglia salvare un file nel bucket `amzn-s3-demo-bucket-carlossalazar-logs` di Amazon S3. 

Supponi inoltre che la policy seguente sia collegata all'utente IAM `carlossalazar`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::*log*"
        }
    ]
}
```

------

L'istruzione `AllowS3ListRead` in questa policy consente a Carlos di visualizzare un elenco di tutti i bucket nell'account. L'istruzione `AllowS3Self` consente a Carlos l'accesso completo al bucket con lo stesso nome usato per il nome utente. L'istruzione `DenyS3Logs` nega a Carlos l'accesso a qualsiasi bucket di S3 il cui nome includa `log`. 

Inoltre, la seguente policy basata su risorse (detta policy del bucket) viene collegata al bucket `amzn-s3-demo-bucket-carlossalazar`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/carlossalazar"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        }
    ]
}
```

------

Questa policy specifica che solo l'utente `carlossalazar` può accedere al bucket `amzn-s3-demo-bucket-carlossalazar`.

Quando Carlos richiede di salvare un file nel `amzn-s3-demo-bucket-carlossalazar-logs` bucket, AWS determina quali politiche si applicano alla richiesta. In questo caso, sono applicabili solo la policy basata su identità e la policy basata su risorse. Entrambe sono policy di autorizzazione. Poiché non ci sono limiti di autorizzazione applicabili, la logica di valutazione viene ridotta a quanto segue.

![\[Diagramma di flusso della valutazione\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/EffectivePermissionsShort.png)


AWS verifica innanzitutto la presenza di un'`Deny`istruzione che si applichi al contesto della richiesta. Ne trova una, perché la policy basata su identità rifiuta esplicitamente a Carlos l'accesso a qualsiasi bucket di S3 utilizzato per la creazione di log. A Carlos viene negato l'accesso. 

Supponiamo che poi si renda conto del suo errore e cerchi di salvare il file nel `amzn-s3-demo-bucket-carlossalazar` bucket. AWS verifica la presenza di una `Deny` dichiarazione e non la trova. Verifica quindi le policy di autorizzazione. Sia la policy basata sull'identità che la policy basata sulle risorse consentono la richiesta. Pertanto, AWS consente la richiesta. Se uno dei due avesse rifiutato esplicitamente l'istruzione, la richiesta sarebbe stata negata. Se uno dei tipi di policy consente la richiesta e l'altro no, la richiesta è comunque consentita.

# Cross-account policy evaluation logic
<a name="reference_policies_evaluation-logic-cross-account"></a>

Puoi consentire a un principale in un account di accedere alle risorse in un secondo account. Questo è chiamato accesso tra account. Quando consenti l'accesso tra account, l'account in cui si trova il principale viene denominato l'account *attendibile* . L'account in cui si trova la risorsa è l'account *che concede fiducia* . 

Per consentire l'accesso tra account, collega una policy basata sulle risorse alla risorsa che desideri condividere. Devi inoltre collegare una policy basata sull'identità all'identità che agisce come il principale nella richiesta. La policy basata su risorse nell'account che concede fiducia deve specificare il principale dell'account attendibile che avrà accesso alla risorsa. Puoi specificare l'intero account o i relativi utenti IAM, i principali utenti AWS STS federati, i ruoli IAM o le sessioni con ruolo presunto. Puoi anche specificare un AWS servizio come principale. Per ulteriori informazioni, consulta [Come specificare un principale](reference_policies_elements_principal.md#Principal_specifying). 

La policy basata su identità del principale deve consentire l'accesso richiesto alla risorsa nel servizio che concede fiducia. A questo scopo, specifica l'ARN della risorsa.

In IAM, puoi collegare una policy basata sulle risorse a un ruolo IAM per consentire ai principali in altri account di assumere tale ruolo. La policy basata sulle risorse del ruolo è denominata policy di attendibilità del ruolo. Dopo aver assunto tale ruolo, i principali consentiti possono utilizzare le credenziali temporanee risultanti per accedere a più risorse nell'account. Questo accesso è definito nella policy di autorizzazioni basata su identità del ruolo. Per informazioni sul perché consentire l'accesso tra account utilizzando i ruoli è diverso dal consentire l'accesso tra account utilizzando altre policy basate sulle risorse, consulta [Accesso alle risorse multi-account in IAM](access_policies-cross-account-resource-access.md). 

**Importante**  
Altri servizi possono influire sulla logica di valutazione dei criteri. Ad esempio, AWS Organizations supporta [le politiche di controllo dei servizi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) e [le politiche di controllo delle risorse](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) che possono essere applicate ai principali e alle risorse di uno o più account. AWS Resource Access Manager supporta [frammenti di policy](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html) che controllano le azioni che i responsabili sono autorizzati a eseguire sulle risorse condivise con loro.

## Determinare se una richiesta tra account è consentita
<a name="policy-eval-cross-account"></a>

Per le richieste tra account, il richiedente nell'`AccountA` attendibile deve disporre di una policy basata su identità. Tale policy deve consentire di effettuare una richiesta alla risorsa nell' che concede fiducia `AccountB`. Inoltre, la policy basata sulle risorse nell'`AccountB` deve consentire al richiedente nell'`AccountA` di accedere alla risorsa.

Quando effettui una richiesta tra più account, AWS esegue due valutazioni. AWS valuta la richiesta nell'account fiduciario e nell'account fidato. Per ulteriori informazioni su come una richiesta viene valutata all'interno di un singolo account, consulta [In che modo la logica del codice di AWS applicazione valuta le richieste di consentire o negare l'accesso](reference_policies_evaluation-logic_policy-eval-denyallow.md). La richiesta è consentita solo se entrambe le valutazioni restituiscono come decisione `Allow`.

![\[Valutazione tra account\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/policy_cross-account-eval-simple.png)


1. Quando un principale in un account effettua una richiesta per accedere a una risorsa in un altro account, questa è una richiesta tra account.

1. Il principale che esegue la richiesta esiste nell'account attendibile (`AccountA`). Quando AWS valuta questo account, controlla la policy basata su identità e le eventuali policy che possono limitare una policy basata su identità. Per ulteriori informazioni, consulta [Valutazione delle policy basate su identità con i limiti delle autorizzazioni](reference_policies_evaluation-logic.md#policy-eval-basics-id-bound).

1. La risorsa richiesta esiste nell'account che concede fiducia (`AccountB`). Quando AWS valuta questo account, controlla la policy basata sulle risorse collegata alla risorsa richiesta e le eventuali policy che possono limitare una policy basata sulle risorse. Per ulteriori informazioni, consulta [Valutazione delle policy basate su identità con policy basate su risorse](reference_policies_evaluation-logic.md#policy-eval-basics-id-rdp).

1. AWS consente la richiesta solo se entrambe le valutazioni delle politiche dell'account consentono la richiesta.

Il seguente diagramma di flusso fornisce un’illustrazione più dettagliata di come viene presa una decisione di valutazione delle policy per una richiesta multi-account. Ancora una volta, AWS consente la richiesta solo se entrambe le valutazioni delle politiche dell'account consentono la richiesta.

![\[Valutazione dettagliata della policy multi-account\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/PolicyEvaluationCrossAccount.png)


## Esempio di valutazione della policy multiaccount
<a name="policies_evaluation_example-cross-account"></a>

Nell'esempio seguente viene illustrato uno scenario in cui a un utente in un account vengono concesse autorizzazioni da una policy basata sulle risorse in un secondo account.

Supponiamo che Carlos sia uno sviluppatore con un ruolo IAM denominato `Demo` nell'account 111111111111. Vuole salvare un file nel bucket `amzn-s3-demo-bucket-production-logs` di Amazon S3 nell'account 222222222222. 

Supponiamo inoltre che la policy seguente sia collegata al ruolo IAM `Demo`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "AllowS3ProductionObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::*log*",
                "arn:aws:s3:::*log*/*"
            ]
        }
    ]
}
```

------

L'istruzione `AllowS3ListRead` in questa policy consente a Carlos di visualizzare un elenco di tutti i bucket in Amazon S3. L'istruzione `AllowS3ProductionObjectActions` consente a Carlos l'accesso completo al bucket `amzn-s3-demo-bucket-production`.

Inoltre, la seguente policy basata sulle risorse (denominata policy del bucket) è collegata al bucket `amzn-s3-demo-bucket-production` nell'account 222222222222. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject*",
                "s3:PutObject*",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" },
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        }
    ]
}
```

------

Questa policy consente al ruolo `Demo` di accedere agli oggetti nel bucket `amzn-s3-demo-bucket-production`. Il ruolo può creare e modificare, ma non eliminare gli oggetti nel bucket. Il ruolo non riesce a gestire il bucket da solo.

Quando Carlos fa la sua richiesta di salvare un file nel `amzn-s3-demo-bucket-production-logs` bucket, AWS determina quali politiche si applicano alla richiesta. In questo caso, la policy basata su identità collegata al ruolo `Demo` è la sola policy valida nell'account `111111111111`. Nell'account `222222222222`, non esiste una policy basata sulle risorse collegata al bucket `amzn-s3-demo-bucket-production-logs`. Quando AWS valuta l'account`111111111111`, restituisce una decisione di. `Deny` Questo perché l'istruzione `DenyS3Logs` nella policy basata su identità nega esplicitamente l'accesso a qualsiasi bucket di log. Per ulteriori informazioni su come una richiesta viene valutata all'interno di un singolo account, consulta [In che modo la logica del codice di AWS applicazione valuta le richieste di consentire o negare l'accesso](reference_policies_evaluation-logic_policy-eval-denyallow.md).

Poiché la richiesta viene negata esplicitamente all'interno di uno degli account, la decisione finale è di negare la richiesta.

![\[Richiesta a amzn-s3- bucket demo-bucket-production-logs\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/policy_cross-account-eval-example.png)


Supponiamo che Carlos si accorga allora del suo errore e cerchi di salvare il file nel bucket. `Production` AWS controlla innanzitutto l'account `111111111111` per determinare se la richiesta è consentita. Si applica solo la politica basata sull'identità e consente la richiesta. AWS quindi controlla l'account. `222222222222` Vale solo la policy basata sulle risorse collegata al bucket `Production` e consente la richiesta. Poiché entrambi gli account consentono la richiesta, la decisione finale è di consentire la richiesta.

![\[Richiesta a bucket di produzione\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/policy_cross-account-eval-example-correct.png)


# Differenza tra rifiuto esplicito e implicito
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

Una richiesta genera un rifiuto esplicito se policy applicabile include un'istruzione `Deny`. Se le policy applicabili a una richiesta includono un'istruzione `Allow` e un'istruzione `Deny`, l'istruzione `Deny` prevale sull'istruzione `Allow`. La richiesta viene rifiutata esplicitamente.

Una rifiuto implicito si verifica quando non c'è un'istruzione `Deny` applicabile ma non c'è neanche un'istruzione `Allow` applicabile. Poiché a un principale IAM viene rifiutato l'accesso per impostazione predefinita, questo deve essere autorizzato esplicitamente a eseguire un'operazione. In caso contrario, l'accesso viene negato implicitamente.

Quando progetti una strategia di autorizzazione, devi creare policy con istruzioni `Allow` per consentire alle entità principali di eseguire richieste. Tuttavia, puoi scegliere qualsiasi combinazione di rifiuti espliciti e impliciti. 

Ad esempio, è possibile creare la seguente policy che include operazioni consentite, operazioni rifiutate implicitamente e operazioni rifiutate esplicitamente. La dichiarazione `AllowGetList` **permette** l'accesso in sola lettura alle operazioni IAM che iniziano con i prefissi `Get` e `List`. Tutte le altre azioni in IAM, come `iam:CreatePolicy`, sono **rifiutate implicitamente**. La dichiarazione `DenyReports` **impedisce esplicitamente** l'accesso ai report IAM impedendo l'accesso alle operazioni che includono il suffisso `Report`, come `iam:GetOrganizationsAccessReport`. Se qualcuno aggiunge un'altra policy a questo principale per concedere l'accesso ai report IAM, come `iam:GenerateCredentialReport`, le richieste relative ai report vengono ancora rifiutate a causa di questo rifiuto esplicito.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------

# Sintassi del linguaggio della policy JSON IAM
<a name="reference_policies_grammar"></a>

Questa pagina riporta una sintassi formale per il linguaggio utilizzato per creare le policy JSON in IAM. Presentiamo questa grammatica in modo che sia possibile comprendere come costruire e convalidare le policy.

Per esempi di policy, consultare i seguenti argomenti:
+ [Politiche e autorizzazioni in AWS Identity and Access Management](access_policies.md)
+ [Esempi di policy basate su identità IAM](access_policies_examples.md)
+ [Policy di esempio per lavorare nella console Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html) *ed [esempi di policy per lavorare con la CLI, l'Amazon EC2 AWS CLI o un SDK AWS nella Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html) User Guide.* 
+  [Esempi di policy del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) e [Esempi di policy utente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html) nella *Guida per l'utente di Amazon Simple Storage Service*. 

Per esempi di politiche utilizzate in altri AWS servizi, consulta la documentazione relativa a tali servizi.

**Topics**
+ [Il linguaggio di policy e JSON](#policies-grammar-json)
+ [Convenzioni utilizzate in questa sintassi](#policies-grammar-conventions)
+ [Grammatica](#policies-grammar-bnf)
+ [Note sulla sintassi delle policy](#policies-grammar-notes)

## Il linguaggio di policy e JSON
<a name="policies-grammar-json"></a>

Le policy sono espresse in JSON. Quando crei o modifichi una policy JSON, IAM può eseguire la convalida delle policy per facilitare la creazione di una policy efficace. IAM identificherà gli errori di sintassi JSON, mentre IAM Access Analyzer fornisce ulteriori controlli delle policy con suggerimenti che consentono di perfezionare ulteriormente le policy. Per ulteriori informazioni sulla convalida delle policy, consulta [Convalida delle policy IAM](access_policies_policy-validator.md). Per ulteriori informazioni cui controlli delle policy di IAM Access Analyzer e sui suggerimenti utili, consulta [Convalida delle policy di IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

In questo documento, non forniamo una descrizione completa di ciò che costituisce un JSON valido. Tuttavia, alcune regole JSON di base:
+ È consentito spazio vuoto tra singole entità.
+ I valori sono racchiusi tra virgolette. Le virgolette sono facoltative per valori numerici e booleani.
+ Molti elementi (ad esempio `action_string_list` e `resource_string_list`) possono richiedere un array JSON come valore. Gli array possono richiedere uno o più valori. Se più di un valore è incluso, l'array è tra parentesi quadre (`[` e `]`) e delimitato da virgole, come nell'esempio seguente: 

  `"Action" : ["ec2:Describe*","ec2:List*"]`
+ I tipi di dati JSON di base (booleano, numero e stringa) sono definiti in [RFC 7159](https://datatracker.ietf.org/doc/html/rfc7159).

## Convenzioni utilizzate in questa sintassi
<a name="policies-grammar-conventions"></a>

Le convenzioni seguenti vengono utilizzate in questa grammatica:
+ I seguenti caratteri sono token JSON e *sono* inclusi nelle policy:

  `{ } [ ] " , :`
+ I seguenti caratteri sono caratteri speciali nella grammatica e *non* sono inclusi nelle policy: 

  `= < > ( ) |`
+ Se un elemento permette più valori, è indicato utilizzando valori ripetuti, un delimitatore di virgole e puntini di sospensione (`...`). Esempi:

  `[<action_string>, <action_string>, ...]`

  `<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }`

  Se più valori sono consentiti, è anche valido per includere un solo valore. Per un solo valore, la virgola finale deve essere omessa. Se l'elemento richiede un array (contrassegnato con [e]), ma solo un valore è incluso, le parentesi sono facoltative. Esempi:

  `"Action": [<action_string>]`

  `"Action": <action_string>`
+ Un punto di domanda (`?`) in seguito a un elemento indica che l'elemento è facoltativo. Esempio: 

  <`version_block?>`

  Tuttavia, assicurarsi di fare riferimento alle note che seguono l'inserzione sulla grammatica sugli elementi opzionali. 
+ Una linea verticale (`|`) tra elementi indica alternative. Nella grammatica, le parentesi definiscono la portata delle alternative. Esempio:

  `("Principal" | "NotPrincipal")` 
+ Gli elementi che devono essere stringhe letterali vengono racchiusi tra virgolette (`"`). Esempio:

  `<version_block> = "Version" : ("2008-10-17" | "2012-10-17" )`

Per ulteriori note, consultare [Note sulla sintassi delle policy](#policies-grammar-notes) in seguito all'inserzione sulla grammatica.

## Grammatica
<a name="policies-grammar-bnf"></a>

La seguente inserzione descrive il linguaggio grammaticale della policy. Per le convenzioni utilizzate nell'inserzione, consultare la sezione precedente. Per ulteriori informazioni, consultare le seguenti note:

**Nota**  
Questa grammatica descrive le policy contrassegnate con una versione di `2008-10-17 ` e `2012-10-17 `. Un elemento di policy `Version` è diverso da una versione di policy. L'elemento di policy `Version` viene utilizzato all'interno di una policy e definisce la versione del linguaggio di policy. Diversamente, una versione della policy viene creata quando si apportano modifiche alla policy gestita dal cliente in IAM. La policy modificata non viene sovrascritta a quella precedente. IAM crea invece una nuova versione della policy gestita. Per ulteriori informazioni sull'elemento di policy `Version`, consultare [Elementi delle policy JSON IAM: Version](reference_policies_elements_version.md). Per ulteriori informazioni sulle versioni di policy, consultare [Controllo delle versioni delle policy IAM](access_policies_managed-versioning.md).

```
policy  = {
     <version_block?>,
     <id_block?>,
     <statement_block>
}

<version_block> = "Version" : ("2008-10-17"		 	 	  | "2012-10-17"		 	 	 )

<id_block> = "Id" : <policy_id_string>

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = { 
    <sid_block?>,
    <principal_block?>,
    <effect_block>,
    <action_block>,
    <resource_block>,
    <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")  

<principal_block> = ("Principal" | "NotPrincipal") : ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = ("AWS" | "Federated" | "Service" | "CanonicalUser") :   
    [<principal_id_string>, <principal_id_string>, ...]

<action_block> = ("Action" | "NotAction") : 
    ("*" | <action_string> | [<action_string>, <action_string>, ...])

<resource_block> = ("Resource" | "NotResource") : 
    : ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])

<condition_block> = "Condition" : { <condition_map> }
<condition_map> = { 
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}  
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = (<condition_value_string> | <condition_value_string> | <condition_value_string>)
```

## Note sulla sintassi delle policy
<a name="policies-grammar-notes"></a>
+ Una singola policy può contenere una gamma di istruzioni.
+ Le policy hanno una dimensione massima tra 2048 e 10.240 caratteri, in base a quale entità la policy è collegata. Per ulteriori informazioni, consulta [IAM e AWS STS quote](reference_iam-quotas.md). I calcoli delle dimensioni della policy non includono spazi vuoti.
+ I singoli elementi non devono contenere più istanze della stessa chiave. Ad esempio, non è possibile includere il blocco `Effect` due volte nella stessa istruzione. 
+ I blocchi possono essere visualizzati in qualsiasi ordine. Ad esempio, `version_block` può seguire `id_block` in una policy. Analogamente, `effect_block`, `principal_block`, `action_block` può comparire in qualsiasi ordine all'interno di un'istruzione.
+ `id_block` è facoltativo nelle policy basate su risorse. *Non* deve essere incluso nelle policy basate sulle identità.
+ L'elemento `principal_block` è obbligatorio nelle policy basate su risorse (ad esempio, nelle policy del bucket Amazon S3) e nelle policy di attendibilità per i ruoli IAM. *Non* deve essere incluso nelle policy basate sulle identità.
+ L'elemento `principal_map` nelle policy di bucket Amazon S3 può includere l'ID `CanonicalUser`. La maggior parte delle policy basate su risorse non supporta questa mappatura. Per ulteriori informazioni sull'utilizzo dell'ID utente canonico in una policy di bucket, consulta [Specifica di un principale in una policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) nella *Guida per l'utente di Amazon Simple Storage Service*.
+ Ogni valore di stringa (`policy_id_string`, `sid_string`, `principal_id_string`, `action_string`, `resource_string`, `condition_type_string`, `condition_key_string` e la versione di stringa di `condition_value`) può avere propri valori consentiti specifici, restrizioni di lunghezza minima e massima e un formato interno necessario.

### Note sui valori di stringa
<a name="policies-grammar-notes-strings"></a>

Questa sezione fornisce ulteriori informazioni sui valori di stringa utilizzati in diversi elementi in una policy.

**`action_string`**  
Consiste in un namespace di un servizio, due punti e il nome di un’azione. I nomi delle operazioni possono includere caratteri jolly. Esempi:  

```
"Action":"ec2:StartInstances"

"Action":[
  "ec2:StartInstances",
  "ec2:StopInstances"
]

"Action":"cloudformation:*"

"Action":"*"

"Action":[
  "s3:Get*",
  "s3:List*"
]
```

**`policy_id_string`**  
Fornisce un modo per includere informazioni sulla policy complessiva. Alcuni servizi, ad esempio Amazon SQS e Amazon SNS, utilizzano l'elemento `Id` in modi riservati. Salvo diversamente limitato da un singolo servizio, policy\$1id\$1string può includere spazi. Alcuni servizi richiedono che questo valore sia univoco in un account AWS .   
L'endpoint `id_block` è consentito nelle policy basate su risorse, ma non nelle policy basate sulle identità.
Non esiste alcun limite alla lunghezza, anche se questa stringa contribuisce alla lunghezza complessiva della policy, che è limitata.   

```
"Id":"Admin_Policy"

"Id":"cd3ad3d9-2776-4ef1-a904-4c229d1642ee"
```

**`sid_string`**  
Fornisce un modo per includere informazioni su una istruzione individuale. Per le policy IAM, i caratteri alfanumerici di base (A-Z, a-z, 0-9) sono i soli valori consentiti nel valore `Sid`. Altri servizi AWS che supportano policy basate su risorse possono avere altri requisiti per il valore `Sid`. Ad esempio, alcuni servizi richiedono che questo valore sia univoco all'interno di un Account AWS valore e alcuni servizi consentono caratteri aggiuntivi come gli spazi nel `Sid` valore.  

```
"Sid":"1" 

"Sid": "ThisStatementProvidesPermissionsForConsoleAccess"
```

**`principal_id_string`**  
Fornisce un modo per specificare un principale utilizzando l'[*Amazon Resource Name* (ARN)](reference_identifiers.md#identifiers-arns) dell'utente IAM Account AWS, del ruolo IAM, dell'utente federato o dell'utente con ruolo assunto. In caso Account AWS affermativo, puoi anche utilizzare il modulo breve `AWS:accountnumber` anziché l'ARN completo. Per tutte le opzioni, tra cui ruoli assunti, servizi AWS e così via, consulta [Come specificare un principale](reference_policies_elements_principal.md#Principal_specifying).  
È possibile utilizzare \$1 solo per specificare "tutti/anonimi". Non è possibile utilizzarlo per specificare una parte del nome o di ARN.

**`resource_string`**  
Nella maggior parte dei casi, è composto da un [Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns). È possibile utilizzare i caratteri jolly (\$1 e ?) nella parte relativa alle risorse dell’ARN. Per ulteriori informazioni sull'utilizzo dei caratteri jolly in ARNs, consulta. [Utilizzo di caratteri jolly nei percorsi](reference-arns.md#arns-paths-wildcards)  
Quando si specifica un ARN incompleto (uno con meno di sei campi standard) in una policy basata sull'identità, AWS completa automaticamente l'ARN aggiungendo caratteri jolly (\$1) a tutti i campi mancanti. Ad esempio, specificare `arn:aws:sqs` è equivalente a`arn:aws:sqs:*:*:*`, che garantisce l'accesso a tutte le risorse Amazon SQS in tutte le regioni e gli account. Tuttavia, le policy di sessione passate a e AWS STS AssumeRole le AssumeRoleWithWebIdentity richieste AssumeRoleWith SAML non supportano il supporto incompleto. ARNs L'utilizzo di un ARN incompleto in una politica di sessione genererà un `MalformedPolicyDocumentException` errore.

```
"Resource":"arn:aws:iam::123456789012:user/Bob"

"Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
```

**`condition_type_string`**  
Identifica il tipo di condizione da testare, ad esempio `StringEquals`, `StringLike`, `NumericLessThan`, `DateGreaterThanEquals`, `Bool`, `BinaryEquals`, `IpAddress`, `ArnEquals` ecc. Per l'elenco completo dei tipi di condizione, consultare [Elementi della policy JSON IAM: operatori di condizione](reference_policies_elements_condition_operators.md).   

```
"Condition": {
  "NumericLessThanEquals": {
    "s3:max-keys": "10"
  }
}

"Condition": {
  "Bool": {
    "aws:SecureTransport": "true"
  }
}

"Condition": {
  "StringEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}
```

**`condition_key_string`**  
Identifica la chiave di condizione il cui valore verrà testato per determinare se la condizione è soddisfatta. AWS definisce un set di chiavi di condizione disponibili in tutti i AWS servizi, tra cui `aws:PrincipalType``aws:SecureTransport`, e`aws:userid`.  
Per un elenco delle chiavi di AWS condizione, vedere[AWS chiavi di contesto della condizione globale](reference_policies_condition-keys.md). Per le chiavi di condizione specifiche per un servizio, consultare la documentazione per quel servizio, tra cui quanto segue:  
+ [Specifica delle condizioni in una policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html) nella *Guida per l'utente di Amazon Simple Storage Service*
+ [Policy di IAM per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) nella *Guida per l'utente di Amazon EC2*.

```
"Condition":{
  "Bool": {
      "aws:SecureTransport": "true"
   }
}

"Condition": {
  "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}

"Condition": {
  "StringEquals": {
    "aws:ResourceTag/purpose": "test"
  }
}
```

**`condition_value_string`**  
Identifica il valore di condition\$1key\$1string che determina se la condizione è soddisfatta. Per un elenco completo di valori validi per un tipo di condizione, consulta [Elementi della policy JSON IAM: operatori di condizione](reference_policies_elements_condition_operators.md).  

```
"Condition":{
  "ForAnyValue:StringEquals": {
		"dynamodb:Attributes": [
			"ID",
			"PostDateTime"
  	      ]
  }
}
```

# AWS politiche gestite per le funzioni lavorative
<a name="access_policies_job-functions"></a>

Consigliamo di utilizzare le policy che [concedono il privilegio minimo](best-practices.md#grant-least-privilege) o che concedono solo le autorizzazioni richieste per eseguire un processo. Il modo più sicuro per concedere il privilegio minimo consiste nello scrivere una policy personalizzata con solo le autorizzazioni necessarie al team. È necessario creare un processo per consentire al team di richiedere ulteriori autorizzazioni quando necessario. La [creazione di policy gestite dai clienti IAM](access_policies_create-console.md) che forniscono al team solo le autorizzazioni di cui ha bisogno richiede tempo e competenza.

Per iniziare ad aggiungere autorizzazioni alle tue identità IAM (utenti, gruppi di utenti e ruoli), puoi utilizzare. [AWS politiche gestite](access_policies_managed-vs-inline.md#aws-managed-policies) AWS le politiche gestite coprono casi d'uso comuni e sono disponibili nel tuo. Account AWS AWS le politiche gestite non concedono i permessi con il privilegio minimo. Considera il rischio per la sicurezza di concedere ai principali più autorizzazioni di quelle necessarie per svolgere il proprio lavoro.

Puoi allegare policy AWS gestite, incluse le funzioni lavorative, a qualsiasi identità IAM. Per passare alle autorizzazioni con privilegi minimi, puoi eseguire Access Analyzer AWS Identity and Access Management e monitorare i principali con policy gestite. AWS Dopo aver appreso quali autorizzazioni stanno utilizzando, puoi scrivere una policy personalizzata o generare una policy con solo le autorizzazioni richieste per il team. È meno sicuro, ma offre maggiore flessibilità man mano che impari a utilizzare il tuo team. AWS

AWS le politiche gestite per le funzioni lavorative sono progettate per allinearsi strettamente alle funzioni lavorative comuni nel settore IT. È possibile utilizzare queste policy per concedere le autorizzazioni necessarie per eseguire le attività che ci si aspetta da qualcuno in una determinata funzione lavorativa. Queste policy consolidano le autorizzazioni per molti servizi in un'unica policy con la quale è più semplice collaborare rispetto ad avere le autorizzazioni disperse in molte policy.

**Utilizzare i ruoli per combinare i servizi**  
Alcune policy utilizzano i ruoli di servizio IAM per aiutarti a sfruttare le funzionalità disponibili in altri AWS servizi. Queste politiche concedono l'accesso a`iam:passrole`, il che consente a un utente con la policy di trasferire un ruolo a un AWS servizio. Questo ruolo delega le autorizzazioni IAM al AWS servizio per eseguire azioni per tuo conto.

È necessario creare ruoli in base alle proprie esigenze. Ad esempio, la politica dell'amministratore di rete consente a un utente con la policy di passare un ruolo denominato flow-logs-vpc "" al CloudWatch servizio Amazon. CloudWatch utilizza quel ruolo per registrare e acquisire il traffico IP VPCs creato dall'utente.

Per seguire le best practice di sicurezza, le policy per le funzioni lavorative includono filtri che limitano i nomi dei ruoli validi che possono essere passati. In questo modo è possibile evitare di concedere autorizzazioni non necessarie. Se gli utenti richiedono i ruoli di servizio opzionali, è necessario creare un ruolo che segue la convenzione di denominazione specificata nella policy. È possibile concedere le autorizzazioni al ruolo. Una volta completata questa operazione, l'utente può configurare il servizio per utilizzare il ruolo, concedendogli tutte le autorizzazioni che il ruolo fornisce.

Nelle seguenti sezioni, ogni nome di policy è un collegamento alla pagina dei dettagli della policy nella Console di gestione AWS. Qui è possibile visualizzare il documento della policy e riconsultare le autorizzazioni che concede.

## Funzione processo dell'amministratore
<a name="jf_administrator"></a>

**AWS nome della politica gestita: [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)**

**Caso d'uso:** questo utente ha accesso completo e può delegare le autorizzazioni per ogni servizio e risorsa in AWS.

**Aggiornamenti della politica:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede tutte le azioni per tutti i AWS servizi e per tutte le risorse dell'account. Per ulteriori informazioni sulla policy gestita, consulta [AdministratorAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html)la *AWS Managed Policy Reference Guide*.

**Nota**  
Prima che un utente o un ruolo IAM possa accedere alla Gestione dei costi e fatturazione AWS console con le autorizzazioni previste da questa policy, devi prima attivare l'accesso a utenti e ruoli IAM. A tale scopo, seguire le istruzioni riportate in [Concedere l'accesso alla console di fatturazione](getting-started-account-iam.md) per delegare l'accesso alla console di fatturazione.

## Funzione di processo di fatturazione
<a name="jf_accounts-payable"></a>

**AWS nome della politica gestita:** [Billing](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/Billing)

**Caso d'uso:** questo utente deve visualizzare i dati di fatturazione, impostare i pagamenti e autorizzarli. L'utente può monitorare i costi accumulati per l'intero AWS servizio.

**Aggiornamenti della politica:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione policy:** questa policy concede le autorizzazioni complete per gestire fatturazione, costi, metodi di pagamento, budget e report. Per ulteriori esempi di policy di gestione dei costi, consulta gli [esempi di policy AWS Billing](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-example-policies.html) nella *Guida per l'utente di Gestione dei costi e fatturazione AWS * Per ulteriori informazioni sulla policy gestita, consulta [Billing](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/Billing.html) nella *Guida di riferimento alle policy gestite da AWS *.

**Nota**  
Prima che un utente o un ruolo IAM possa accedere alla Gestione dei costi e fatturazione AWS console con le autorizzazioni previste da questa policy, devi prima attivare l'accesso a utenti e ruoli IAM. A tale scopo, seguire le istruzioni riportate in [Concedere l'accesso alla console di fatturazione](getting-started-account-iam.md) per delegare l'accesso alla console di fatturazione.

## Funzione di processo dell'amministratore di database
<a name="jf_database-administrator"></a>

**AWS nome della policy gestita: [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)**

**Caso d'uso:** questo utente configura, configura e gestisce i database nel AWS cloud.

**Aggiornamenti delle politiche:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione policy:** questa policy concede le autorizzazioni per creare, configurare e gestire i database. Include l'accesso a servizi di AWS database, come Amazon DynamoDB, Amazon Relational Database Service (RDS) e Amazon Redshift. Visualizza la policy per l'elenco completo di servizi di database supportati dalla policy. *Per ulteriori informazioni sulla policy gestita, consulta la Managed Policy Reference [DatabaseAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DatabaseAdministrator.html)Guide AWS .*

Questa politica sulle funzioni lavorative supporta la possibilità di trasferire ruoli ai AWS servizi. La policy consente l'operazione `iam:PassRole` solo per i ruoli denominati nella tabella seguente. Per ulteriori informazioni, consulta [Creazione dei ruoli e collegamento delle policy (console)](access_policies_job-functions_create-policies.md) più avanti in questo argomento.


| Caso d’uso | Nome ruolo (\$1 è un carattere jolly) | Tipo di ruolo di servizio da selezionare | Seleziona questa politica AWS gestita | 
| --- | --- | --- | --- | 
| Consentire all'utente di monitorare i database RDS | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Ruolo Amazon RDS per il monitoraggio avanzato | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Consenti AWS Lambda il monitoraggio del database e l'accesso ai database esterni | [rdbms-lambda-access](https://aws.amazon.com/blogs/big-data/from-sql-to-microservices-integrating-aws-lambda-with-relational-databases) | Amazon EC2 | [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess) | 
| Consentire a Lambda di caricare file su Amazon S3 e su cluster Amazon Redshift con DynamoDB | [lambda\$1exec\$1role](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | AWS Lambda | Creare una nuova policy gestita secondo quanto definito in [AWS Big Data Blog](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | 
| Consentire alle funzioni Lambda di agire come trigger per le tabelle DynamoDB | [lambda-dynamodb-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaDynamo Role DBExecution](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 
| Consentire alle funzioni Lambda di accedere ad Amazon RDS in un VPC | [lambda-vpc-execution-role](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | Creazione di un ruolo con una policy di attendibilità secondo quanto definito nella [Guida per gli sviluppatori di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | [AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole) | 
| Consenti l'accesso AWS Data Pipeline alle tue risorse AWS  | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Creazione di un ruolo con una policy di attendibilità secondo quanto definito nella [Guida per gli sviluppatori di AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | La AWS Data Pipeline documentazione elenca le autorizzazioni richieste per questo caso d'uso. Vedi i [ruoli IAM per AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | 
| Consentire alle applicazioni in esecuzione su istanze Amazon EC2 di accedere alle risorse AWS  | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Creazione di un ruolo con una policy di attendibilità secondo quanto definito nella [Guida per gli sviluppatori di AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Funzione di processo per data scientist
<a name="jf_data-scientist"></a>

**AWS nome della politica gestita: [DataScientist](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DataScientist)**

**Caso d'uso:** questo utente esegue attività e query Hadoop. L'utente, inoltre accede e analizza le informazioni per l'analisi dei dati e di business intelligence.

**Aggiornamenti della politica:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede le autorizzazioni per creare, gestire ed eseguire query su un cluster Amazon EMR ed eseguire analisi dei dati con strumenti come Amazon. QuickSight La policy include l'accesso a servizi di data scientist aggiuntivi, come Amazon EC2 AWS Data Pipeline, Amazon Kinesis, Amazon Machine Learning e AI. SageMaker Visualizza la policy per l'elenco completo dei servizi scientifici dei dati supportati dalla policy. Per ulteriori informazioni sulla policy gestita, consulta [DataScientist](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DataScientist.html)la Managed *Policy Reference Guide.AWS *

Questa politica sulle funzioni lavorative supporta la possibilità di trasferire ruoli ai AWS servizi. Un'unica dichiarazione consente di trasferire qualsiasi ruolo all' SageMaker IA. Un'altra istruzione consente l'operazione `iam:PassRole` solo per i ruoli denominati nella tabella seguente. Per ulteriori informazioni, consulta [Creazione dei ruoli e collegamento delle policy (console)](access_policies_job-functions_create-policies.md) più avanti in questo argomento.


| Caso d’uso | Nome ruolo (\$1 è un carattere jolly) | Tipo di ruolo di servizio da selezionare | AWS politica gestita da selezionare | 
| --- | --- | --- | --- | 
| Consentire alle istanze Amazon EC2 l'accesso ai servizi e alle risorse idonei per i cluster | [EMR- \$1 EC2 DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR per EC2  | [AmazonElasticMapReduceforEC2Ruolo](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role) | 
| Consentire ad Amazon EMR di accedere al servizio e alle risorse Amazon EC2 per i cluster | [EMR\$1 DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR | [Amazon EMRService Policy\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) | 
| Consenti a Kinesis Managed Service per Apache Flink di accedere alle origini dati in streaming | [kinesis-\$1](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | Creare un ruolo con una policy di affidabilità secondo quanto definito in [AWS Big Data Blog](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader). | Consultare [AWS Big Data Blog](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader), che delinea quattro possibili opzioni, a seconda del caso d'uso | 
| Consenti l'accesso alle tue risorse AWS Data Pipeline AWS  | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Creazione di un ruolo con una policy di attendibilità secondo quanto definito nella [Guida per gli sviluppatori di AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | La AWS Data Pipeline documentazione elenca le autorizzazioni richieste per questo caso d'uso. Vedi i [ruoli IAM per AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | 
| Consentire alle applicazioni in esecuzione su istanze Amazon EC2 di accedere alle risorse AWS  | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Creazione di un ruolo con una policy di attendibilità secondo quanto definito nella [Guida per gli sviluppatori di AWS Data Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [AmazonEC2RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Funzione di processo per l'utente avanzato sviluppatore
<a name="jf_developer-power-user"></a>

**AWS nome della politica gestita: [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/PowerUserAccess)**

**Caso d'uso:** questo utente esegue attività di sviluppo di applicazioni e può creare e configurare risorse e servizi che supportano lo sviluppo di applicazioni AWS consapevoli.

**Aggiornamenti delle politiche:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** la prima dichiarazione di questa politica utilizza l'[`NotAction`](reference_policies_elements_notaction.md)elemento per consentire tutte le azioni per tutti i AWS servizi e per tutte le risorse tranne AWS Identity and Access Management AWS Organizations, e Gestione dell'account AWS. La seconda istruzione concede le autorizzazioni IAM per creare un ruolo collegato ai servizi. Questo è obbligatorio per alcuni servizi che devono accedere alle risorse di un altro servizio, ad esempio un bucket Amazon S3. Concede inoltre AWS Organizations le autorizzazioni per visualizzare le informazioni sull'organizzazione dell'utente, incluse le limitazioni relative all'account di gestione, alla posta elettronica e all'organizzazione. Sebbene questa policy limiti IAM AWS Organizations, consente all'utente di eseguire tutte le azioni di IAM Identity Center se IAM Identity Center è abilitato. Concede inoltre le autorizzazioni di gestione dell'account per visualizzare quali AWS regioni sono abilitate o disabilitate per l'account.

## Funzione di processo per l'amministratore di rete
<a name="jf_network-administrator"></a>

**AWS nome della politica gestita: [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)**

**Caso d'uso:** questo utente ha il compito di configurare e gestire le risorse AWS di rete.

**Aggiornamenti delle politiche:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede le autorizzazioni per creare e gestire risorse di rete in Auto Scaling, Amazon EC2 AWS Direct Connect, Route 53, Amazon, Elastic CloudFront Load Balancing, Amazon SNS, CloudWatch Logs, AWS Elastic Beanstalk Amazon S3, IAM e Amazon Virtual CloudWatch Private Cloud. *Per ulteriori informazioni sulla policy gestita, consulta la Managed Policy Reference Guide. [NetworkAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/NetworkAdministrator.html)AWS *

Questa funzione lavorativa richiede la capacità di trasferire ruoli ai AWS servizi. La policy concede `iam:GetRole` e `iam:PassRole` solo per quei ruoli denominati nella tabella seguente. Per ulteriori informazioni, consulta [Creazione dei ruoli e collegamento delle policy (console)](access_policies_job-functions_create-policies.md) più avanti in questo argomento.


| Caso d’uso | Nome ruolo (\$1 è un carattere jolly) | Tipo di ruolo di servizio da selezionare | AWS politica gestita da selezionare | 
| --- | --- | --- | --- | 
| Consente ad Amazon VPC di creare e gestire i log in CloudWatch Logs per conto dell'utente per monitorare il traffico IP in entrata e in uscita dal tuo VPC | [flow-logs-\$1](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Creazione di un ruolo con una policy di attendibilità secondo quanto definito nella [Guida per l'utente di Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Questo caso d'uso non prevede una policy AWS gestita esistente, ma la documentazione elenca le autorizzazioni richieste. Consulta la [Guida per l'utente di Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam). | 

## Accesso in sola lettura
<a name="awsmp_readonlyaccess"></a>

**AWS nome della politica gestita: [ReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ReadOnlyAccess)**

**Caso d'uso:** questo utente richiede l'accesso in sola lettura a tutte le risorse in un Account AWS.

**Importante**  
Questo utente avrà anche accesso ai dati di lettura in servizi di archiviazione come i bucket Amazon S3 e le tabelle Amazon DynamoDB.

**Aggiornamenti della politica:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della policy:** questa policy concede le autorizzazioni per elencare, ottenere, descrivere e visualizzare in altro modo le risorse e i relativi attributi. Non include funzioni mutanti come create o delete. Questa politica include l'accesso in sola lettura ai AWS servizi relativi alla sicurezza, come e. AWS Identity and Access Management Gestione dei costi e fatturazione AWS Visualizza la policy per l'elenco completo di servizi e operazioni supportati dalla policy. *Per ulteriori informazioni sulla policy gestita, vedere la Managed Policy Reference Guide [ReadOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ReadOnlyAccess.html).AWS * Se hai bisogno di una policy simile che non conceda l’accesso ai dati di lettura nei servizi di archiviazione, consulta [Funzione di processo per utente con sola visualizzazione](#jf_view-only-user).

## Accesso completo alle azioni del servizio MCP
<a name="jf_mcp-service-actions"></a>

**AWS nome della politica gestita: [AWSMcpServiceActionsFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSMcpServiceActionsFullAccess)**

**Caso d'uso:** questo utente richiede l'accesso ai AWS servizi tramite server AWS MCP. Questa politica non concede l'accesso alle azioni intraprese da un servizio MCP ad altri AWS servizi.

**Aggiornamenti delle politiche:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede le autorizzazioni per richiamare qualsiasi azione del servizio AWS MCP. È possibile utilizzare quando non è necessario specificare le autorizzazioni per servizio MCP. AWS Non concede autorizzazioni per le azioni eseguite dal servizio MCP ad altri AWS servizi, tali autorizzazioni devono essere sempre concesse separatamente e in aggiunta alle azioni del servizio MCP. *Per ulteriori informazioni sulla politica gestita, vedere [AWSMcpServiceActionsFullAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSMcpServiceActionsFullAccess.html)nella Managed Policy Reference Guide AWS .*

## Funzione di processo del revisore sicurezza
<a name="jf_security-auditor"></a>

**AWS nome della politica gestita: [SecurityAudit](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/SecurityAudit)**

**Caso d'uso:** questo utente monitora gli account per la conformità ai requisiti di sicurezza. Questo utente può accedere ai log e agli eventi per analizzare potenziali violazioni alla sicurezza o potenziale attività non autorizzata.

**Aggiornamenti della politica:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede le autorizzazioni per visualizzare i dati di configurazione per molti AWS servizi e per esaminarne i registri. Per ulteriori informazioni sulla policy gestita, vedere la Managed Policy [SecurityAudit](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SecurityAudit.html)Reference *AWS Guide*.

## Funzione di processo dell'utente di Support
<a name="jf_support-user"></a>

**AWS nome della politica gestita: AWSSupport** [Access](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSSupportAccess)

**Caso d'uso:** questo utente contatta l' AWS assistenza, crea casi di supporto e visualizza lo stato dei casi esistenti.

**Aggiornamenti delle politiche:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede le autorizzazioni per creare e aggiornare Supporto i casi. Per ulteriori informazioni sulla policy gestita, consulta [AWSSupportAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSSupportAccess.html) in *AWS Managed Policy Reference Guide.*

## Funzione di processo dell'amministratore di sistema
<a name="jf_system-administrator"></a>

**AWS nome della politica gestita: [SystemAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/SystemAdministrator)**

**Caso d'uso:** questo utente imposta e gestisce le risorse per le operazioni di sviluppo.

**Aggiornamenti della politica:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede le autorizzazioni per creare e gestire risorse su un'ampia gamma di AWS servizi, tra cui AWS CloudTrail Amazon CloudWatch,,, AWS CodeCommit, AWS CodeDeploy AWS Config, Amazon EC2 AWS Directory Service,,, Amazon RDS AWS Identity and Access Management AWS Key Management Service AWS Lambda, Route 53, Amazon S3, Amazon SES, Amazon SQS e Amazon VPC. AWS Trusted Advisor*Per ulteriori informazioni sulla policy gestita, consulta la Managed Policy Reference Guide. [SystemAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SystemAdministrator.html)AWS *

Questa funzione lavorativa richiede la capacità di trasferire ruoli ai AWS servizi. La policy concede `iam:GetRole` e `iam:PassRole` solo per quei ruoli denominati nella tabella seguente. Per ulteriori informazioni, consulta [Creazione dei ruoli e collegamento delle policy (console)](access_policies_job-functions_create-policies.md) più avanti in questo argomento. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).


| Caso d’uso | Nome ruolo (\$1 è un carattere jolly) | Tipo di ruolo di servizio da selezionare | AWS politica gestita da selezionare | 
| --- | --- | --- | --- | 
| Consentire alle applicazioni in esecuzione in istanze di EC2 in un cluster Amazon ECS di accedere ad Amazon ECS | [ecr-sysadmin-\$1](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) | Ruolo Amazon EC2 per EC2 Container Service  | [EC2ContainerServiceforEC2Ruolo di Amazon](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role) | 
| Consentire a un utente di monitorare i database | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Ruolo Amazon RDS per il monitoraggio avanzato | [AmazonRDSEnhancedMonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Consenti alle app in esecuzione su istanze EC2 di accedere AWS alle risorse. | [ec2-sysadmin-\$1](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) | Amazon EC2 | Policy di esempio per il ruolo che concede l'accesso a un bucket S3 come illustrato nella [Guida per l'utente di Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html); personalizzare in base alle esigenze | 
| Consenti a Lambda di leggere i flussi DynamoDB e scrivere nei log CloudWatch  | [lambda-sysadmin-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaDynamo Role DBExecution](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 

## Funzione di processo per utente con sola visualizzazione
<a name="jf_view-only-user"></a>

**AWS nome della politica gestita: [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess)**

**Caso d'uso:** questo utente può visualizzare un elenco di AWS risorse e metadati di base nell'account per tutti i servizi. L'utente non può leggere i contenuti o i metadati delle risorse che superano la quota ed elencare informazioni per le risorse.

**Aggiornamenti delle politiche:** AWS mantiene e aggiorna questa politica. Per una cronologia delle modifiche apportate a questa policy, visualizza la policy nella console IAM e scegli la scheda **Versioni di policy**. Per ulteriori informazioni sugli aggiornamenti delle policy della funzione di processo, consulta [Aggiornamenti alle politiche AWS gestite per le funzioni lavorative](#security-iam-awsmanpol-jobfunction-updates).

**Descrizione della politica:** questa politica concede`List*`, `Describe*` `Get*``View*`, e `Lookup*` l'accesso alle risorse per AWS i servizi. Per vedere quali azioni include questa politica per ogni servizio, consulta [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess). Per ulteriori informazioni sulla policy gestita, consulta [ViewOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ViewOnlyAccess.html)la *AWS Managed Policy Reference Guide*.

## Aggiornamenti alle politiche AWS gestite per le funzioni lavorative
<a name="security-iam-awsmanpol-jobfunction-updates"></a>

Queste politiche sono tutte gestite AWS e aggiornate per includere il supporto per nuovi servizi e nuove funzionalità man mano che vengono aggiunte dai AWS servizi. Queste policy non possono essere modificate dai clienti. È possibile creare una copia della policy e quindi modificarla, ma tale copia non viene aggiornata automaticamente in quanto AWS introduce nuovi servizi e operazioni API.

Per una policy di funzione del processo, è possibile visualizzare la cronologia delle versioni e l'ora e la data di ogni aggiornamento nella console IAM. A tale scopo, utilizza i collegamenti presenti in questa pagina per visualizzare i dettagli delle policy. Quindi scegli la scheda **Versioni di policy** per visualizzare le versioni. Questa pagina mostra le ultime 25 versioni di una policy. Per visualizzare tutte le versioni di una policy, chiamate il [get-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy-version.html) AWS CLI comando o l'operazione [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html)API.

**Nota**  
È possibile avere fino a cinque versioni di una policy gestita dal cliente, ma AWS conserva la cronologia completa delle versioni delle politiche AWS gestite.

# Creazione dei ruoli e collegamento delle policy (console)
<a name="access_policies_job-functions_create-policies"></a>

Molte delle politiche elencate in precedenza concedono la possibilità di configurare AWS servizi con ruoli che consentono a tali servizi di eseguire operazioni per conto dell'utente. Le policy della funzione lavorativa specificano i nomi di ruolo esatti che è necessario utilizzare o almeno includono un prefisso che specifica la prima parte del nome che può essere utilizzato. Per creare uno di questi ruoli, eseguire le operazioni descritte nella procedura seguente.

**Per creare un ruolo per una Servizio AWS (console IAM)**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione della console IAM, scegliere **Ruoli** e quindi **Crea ruolo**.

1. Per **Tipo di entità attendibile**, seleziona **Servizio AWS**.

1. Per **Servizio o caso d'uso**, scegli un servizio, quindi scegli il caso d'uso. I casi d'uso sono definiti dal servizio per includere la policy di fiducia richiesta dal servizio.

1. Scegli **Next (Successivo)**.

1. Per **Policy di autorizzazione**, le opzioni dipendono dal caso d'uso selezionato:
   + Se il servizio definisce le autorizzazioni per il ruolo, le policy di autorizzazioni non possono essere selezionate.
   + Seleziona una policy da un set limitato di policy di autorizzazione.
   + Seleziona una policy tra tutte le policy di autorizzazione.
   + Non selezionare policy di autorizzazioni, crea le policy dopo la creazione del ruolo e quindi collegale al ruolo.

1. (Facoltativo) Impostare un [limite delle autorizzazioni](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Questa è una funzionalità avanzata disponibile per i ruoli di servizio, ma non per i ruoli collegati ai servizi.

   1. Apri la sezione **Imposta limite delle autorizzazioni** e seleziona **Usa un limite delle autorizzazioni per controllare il numero massimo di autorizzazioni del ruolo**. 

      IAM include un elenco delle politiche AWS gestite e gestite dal cliente nel tuo account.

   1. Selezionare la policy da utilizzare per il limite delle autorizzazioni.

1. Scegli **Next (Successivo)**.

1. Per **Nome del ruolo**, le opzioni dipendono dal servizio:
   + Se il servizio definisce il nome del ruolo, non puoi modificarlo.
   + Se il servizio definisce un prefisso per il nome del ruolo, puoi inserire un suffisso facoltativo.
   + Se il servizio non definisce il nome del ruolo, puoi assegnare un nome al ruolo.
**Importante**  
Quando assegni un nome a un ruolo, tieni presente quanto segue:  
I nomi dei ruoli devono essere univoci all'interno del tuo Account AWS account e non possono essere resi unici per caso.  
Ad esempio, non creare ruoli denominati **PRODROLE** e **prodrole**. Quando il nome di un ruolo viene utilizzato in una policy o come parte di un ARN, il nome del ruolo fa distinzione tra maiuscole e minuscole, tuttavia quando un nome di ruolo viene visualizzato ai clienti nella console, ad esempio durante il processo di accesso, il nome del ruolo non fa distinzione tra maiuscole e minuscole.
Non è possibile modificare il nome del ruolo dopo averlo creato, in quanto altre entità possono fare riferimento al ruolo.

1. (Facoltativo) In **Descrizione**, inserisci una descrizione per il ruolo.

1. (Facoltativo) Per modificare i casi d'uso e le autorizzazioni per il ruolo, in **Fase 1: seleziona le entità attendibili** o **Fase 2: aggiungi autorizzazioni** seleziona **Modifica**.

1. (Facoltativo) Per facilitare l'identificazione, l'organizzazione o la ricerca del ruolo, aggiungi i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo dei tag in IAM, consulta [Tags for AWS Identity and Access Management resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) nella *IAM User Guide*.

1. Verificare il ruolo e quindi scegliere **Create role (Crea ruolo)**.

## Esempio 1: configurazione di un utente come amministratore di database (console)
<a name="jf_example_1"></a>

Questo esempio illustra i passaggi necessari per configurare Alice, un utente IAM, come [Amministratore del database](access_policies_job-functions.md#jf_database-administrator). Utilizza le informazioni nella prima riga della tabella nella sezione e consenti all'utente di abilitare il monitoraggio Amazon RDS. Alleghi la [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)policy all'utente IAM di Alice in modo che possa gestire i servizi di database Amazon. Questa policy, inoltre, consente ad Alice di passare un ruolo denominato `rds-monitoring-role` al servizio Amazon RDS, che consente al servizio di monitorare i database Amazon RDS per suo conto.

1. Accedi a Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Scegli **Policy** e inserisci **database** nella casella di ricerca, quindi premi Invio.

1. Seleziona il pulsante di opzione relativo alla **DatabaseAdministrator**policy, scegli **Azioni**, quindi scegli **Allega**.

1. Nell'elenco di entità, seleziona **Alice**, quindi scegli **Collega policy**. Alice ora può amministrare AWS i database. Tuttavia, per consentire ad Alice di monitorare tali database, è necessario configurare il ruolo di servizio.

1. Nel pannello di navigazione della console IAM, scegliere **Ruoli** e quindi **Crea ruolo**.

1. Seleziona il tipo di ruolo **Servizio AWS **, quindi scegli **Amazon RDS**.

1. Seleziona il caso d'uso **Ruolo Amazon RDS per il monitoraggio avanzato**.

1. Amazon RDS definisce le autorizzazioni per il ruolo. Selezionare **Next: Review (Successivo: esamina)** per continuare.

1. Il nome del ruolo deve essere uno di quelli specificati dalla DatabaseAdministrator politica di cui dispone ora Alice. Uno di questi è **rds-monitoring-role**. Inseriscilo in **Role name** (Nome ruolo).

1. (Facoltativo) In **Descrizione ruolo**, immettere una descrizione per il nuovo ruolo.

1. Dopo aver revisionato i dettagli, selezionare **Create role (Crea ruolo)**.

1. Alice ora può abilitare **Monitoraggio avanzato RDS** nella sezione **Monitoraggio** della console Amazon RDS. Ad esempio, può eseguire questa operazione quando crea un'istanza database, crea una replica di lettura o modifica un'istanza di database. Devono inserire il nome del ruolo che hanno creato (rds-monitoring-role) nella casella **Ruolo di monitoraggio** quando impostano **Abilita monitoraggio avanzato** su **Sì**. 

## Esempio 2: configurazione di un utente come amministratore di rete (console)
<a name="jf_example_2"></a>

Questo esempio illustra i passaggi necessari per configurare Jorge, un utente IAM, come [Amministratore di rete](access_policies_job-functions.md#jf_network-administrator). Utilizza le informazioni nella tabella in tale sezione per consentire a Jorge di monitorare il traffico IP in uscita e in entrata da VPC. Consente inoltre a Jorge di acquisire tali informazioni nei log in CloudWatch Logs. Alleghi la [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)policy all'utente IAM di Jorge in modo che possa configurare le risorse di rete. AWS Inoltre, tale policy consente a Jorge di passare un ruolo il cui nome inizia con `flow-logs*` ad Amazon EC2 al momento della creazione del log di flusso. In questo scenario, diversamente dall'esempio 1, non è disponibile un tipo di ruolo di servizio predefinito, è necessario eseguire pochi passaggi in maniera diversa.

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, scegli **Policy** e inserisci **network** nella casella di ricerca, quindi premi Invio.

1. Seleziona il pulsante di opzione accanto alla **NetworkAdministrator**policy, scegli **Azioni**, quindi scegli **Allega**.

1. Nell'elenco degli utenti, seleziona la casella di controllo accanto a **Jorge** e scegli **Collega policy**. Jorge ora può amministrare le risorse di AWS rete. Tuttavia, per consentire il monitoraggio di traffico IP nel VPC, è necessario configurare il ruolo del servizio.

1. Poiché il ruolo del servizio che bisogna creare non dispone di una policy gestita predefinita, è necessario prima crearlo. Nel riquadro di navigazione, selezionare **Policies (Policy)** e **Create Policy (Crea policy)**.

1. Nella sezione **Editor di policy**, seleziona l'opzione **JSON** e copia il testo dal seguente documento della policy JSON. Incolla il testo nella casella di testo **JSON**. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Effect": "Allow",
         "Resource": "*"
       }
     ]
   }
   ```

------

1.  Risolvi eventuali avvisi di sicurezza, errori o avvisi generali generati durante la [convalida delle policy](access_policies_policy-validator.md), quindi scegli **Next** (Successivo). 
**Nota**  
È possibile alternare le opzioni dell'editor **Visivo** e **JSON** in qualsiasi momento. Se tuttavia si apportano modifiche o si seleziona **Successivo** nell'editor **Visivo**, IAM potrebbe ristrutturare la policy in modo da ottimizzarla per l'editor visivo. Per ulteriori informazioni, consulta [Modifica della struttura delle policy](troubleshoot_policies.md#troubleshoot_viseditor-restructure).

1. Nella pagina **Verifica e crea**, digita **vpc-flow-logs-policy-for-service-role** come nome della policy. Rivedi il campo **Autorizzazioni definite in questa policy** per visualizzare le autorizzazioni concesse dalla policy, quindi seleziona **Crea policy** per salvare il lavoro.

   La nuova policy appare nell'elenco delle policy gestite ed è pronta a collegare.

1. Nel pannello di navigazione della console IAM, scegliere **Ruoli** e quindi **Crea ruolo**.

1. Seleziona il tipo di ruolo **Servizio AWS **, quindi scegli **Amazon EC2**.

1. Seleziona il caso d'uso **Amazon EC2**.

1. Nella pagina **Allega criteri di autorizzazione**, scegli la politica che hai creato in precedenza, **vpc-flow-logs-policy- for-service-role**, quindi scegli **Avanti**: revisione.

1. Il nome del ruolo deve essere consentito dalla NetworkAdministrator politica attuale di Jorge. Qualsiasi nome che inizia con `flow-logs-` è consentito. Per questo esempio, inserisci **flow-logs-for-jorge** come **Role name** (Nome del ruolo).

1. (Facoltativo) In **Descrizione ruolo**, immettere una descrizione per il nuovo ruolo.

1. Dopo aver revisionato i dettagli, selezionare **Create role (Crea ruolo)**.

1. Ora è possibile configurare la policy attendibilità necessaria per questo scenario. Nella pagina **Ruoli**, scegli il **flow-logs-for-jorge**ruolo (il nome, non la casella di controllo). Nella pagina dei dettagli per il nuovo ruolo, selezionare la scheda **Trust relationships (Relazioni di trust)** e selezionare **Edit trust relationship (Modifica relazione di trust)**.

1. Modificare la riga "Servizio" come segue, sostituendo la voce per `ec2.amazonaws.com`:

   ```
           "Service": "vpc-flow-logs.amazonaws.com"
   ```

1. Jorge può ora creare log di flusso da un VPC o una sottorete nella console Amazon EC2. Quando crei il log di flusso, specifica il **flow-logs-for-jorge**ruolo. Quel ruolo dispone delle autorizzazioni per creare il log e scriverci dati.

# AWS chiavi di contesto della condizione globale
<a name="reference_policies_condition-keys"></a>

[Quando un [principale](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) effettua una [richiesta](intro-structure.md#intro-structure-request) a AWS, AWS raccoglie le informazioni sulla richiesta in un contesto di richiesta.](intro-structure.md#intro-structure-request) È possibile utilizzare l'elemento `Condition` di una policy JSON per confrontare le chiavi della richiesta con i valori chiave specificati nella policy. Le informazioni sulla richiesta vengono fornite da diverse origini, tra cui il principale che effettua la richiesta, la risorsa su cui viene effettuata la richiesta e i metadati relativi alla richiesta stessa.

Le **chiavi di condizione globali** possono essere utilizzate in tutti i servizi AWS . Sebbene queste chiavi di condizione possano essere utilizzate in tutte le policy, la chiave non è disponibile in tutti i contesti di richiesta. Ad esempio, la chiave di condizione `aws:SourceAccount` è disponibile solo quando la chiamata alla risorsa viene effettuata direttamente da un [principale del servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). Per ulteriori informazioni sulle circostanze in cui una chiave globale è inclusa nel contesto della richiesta, consultare le informazioni sulla **disponibilità** di ogni chiave.

Alcuni servizi singoli creano le proprie chiavi di condizione disponibili nel contesto della richiesta per altri servizi. Le **chiavi di condizione tra servizi** sono un tipo di chiave di condizione globale che includono un prefisso corrispondente al nome del servizio, ad esempio `ec2:` o `lambda:`, ma sono disponibili in altri servizi.

Le **chiavi delle condizioni specifiche del servizio** sono definite per l'uso con un singolo servizio. AWS Ad esempio, Amazon S3 consente di scrivere una policy con la chiave di condizione `s3:VersionId` per limitare l'accesso a una versione specifica di un oggetto Amazon S3. Questa chiave di condizione è unica per il servizio, il che significa che funziona solo con le richieste al servizio Amazon S3. Per le chiavi di condizione specifiche del servizio, consulta [Azioni, risorse e Chiavi di condizione per AWS i servizi](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) e scegli il servizio di cui desideri visualizzare le chiavi. 

**Nota**  
Se si utilizzano chiavi di condizione disponibili solo in alcune circostanze, è possibile utilizzare [IfExists](reference_policies_elements_condition_operators.md#Conditions_IfExists)le versioni degli operatori di condizione. Se le chiavi di condizione sono assenti da un contesto di richiesta, la policy può non riuscire a effettuare la valutazione. Ad esempio, utilizzare il seguente blocco condizionale con gli operatori `...IfExists` per verificare se una richiesta proviene da uno specifico intervallo IP o da un determinato VPC. Se una o entrambe le chiavi non sono incluse nel contesto della richiesta, la condizione restituisce comunque `true`. I valori vengono controllati solo se la chiave specificata è inclusa nel contesto della richiesta. Per ulteriori informazioni su come viene valutata una policy quando una chiave non è presente per altri operatori, consulta [Operatori di condizione](reference_policies_elements_condition_operators.md).  

```
"Condition": {
    "IpAddressIfExists": {"aws:SourceIp" : ["xxx"] },
    "StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]} 
}
```

**Importante**  
Per confrontare la condizione con un contesto di richiesta con più valori chiave, devi utilizzare gli operatori su set `ForAllValues` o `ForAnyValue`. Utilizza gli operatori di insieme solo con le chiavi della condizione multivalore. Non utilizzare operatori con chiavi di condizione a valore singolo. Per ulteriori informazioni, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Proprietà del principale | Proprietà di una sessione di ruolo | Proprietà della rete | Proprietà della risorsa | Proprietà della richiesta | 
| --- | --- | --- | --- | --- | 
|  `aws:PrincipalArn` `aws:PrincipalAccount` `aws:PrincipalOrgPaths` `aws:PrincipalOrgID` `aws:PrincipalTag/*tag-key*` `aws:PrincipalIsAWSService` `aws:PrincipalServiceName` `aws:PrincipalServiceNamesList` `aws:PrincipalType` `aws:userid` `aws:username`  |  `aws:AssumedRoot` `aws:FederatedProvider` `aws:TokenIssueTime` `aws:MultiFactorAuthAge` `aws:MultiFactorAuthPresent` `aws:ChatbotSourceArn` `aws:Ec2InstanceSourceVpc` `aws:Ec2InstanceSourcePrivateIPv4` `aws:SourceIdentity` `ec2:RoleDelivery` `ec2:SourceInstanceArn` `glue:RoleAssumedBy` `glue:CredentialIssuingService` `codebuild:BuildArn` `codebuild:ProjectArn` `lambda:SourceFunctionArn` `ssm:SourceInstanceArn` `identitystore:UserId`  |  `aws:SourceIp` `aws:SourceVpc` `aws:SourceVpcArn` `aws:SourceVpce` `aws:VpceAccount` `aws:VpceOrgID` `aws:VpceOrgPaths` `aws:VpcSourceIp`  |  `aws:ResourceAccount` `aws:ResourceOrgID` `aws:ResourceOrgPaths` `aws:ResourceTag/*tag-key*`  |  `aws:CalledVia` `aws:CalledViaFirst` `aws:CalledViaLast` `aws:CalledViaAWSMCP` `aws:ViaAWSService` `aws:ViaAWSMCPService` `aws:CurrentTime` `aws:EpochTime` `aws:referer` `aws:RequestedRegion` `aws:RequestTag/*tag-key*` `aws:TagKeys` `aws:SecureTransport` `aws:SourceAccount` `aws:SourceArn` `aws:SourceOrgID` `aws:SourceOrgPaths` `aws:UserAgent` `aws:IsMcpServiceAction`  | 

## Chiavi di condizione sensibili
<a name="condition-keys-sensitive"></a>

Le seguenti chiavi di condizione sono considerate sensibili. L'uso di caratteri jolly in queste chiavi di condizione non ha alcun caso d'uso valido, anche con una sottostringa del valore della chiave con un carattere jolly. Questo perché il carattere jolly può associare la chiave di condizione a qualsiasi valore, il che potrebbe rappresentare un rischio per la sicurezza.
+ `aws:PrincipalAccount`
+ `aws:PrincipalOrgID`
+ `aws:ResourceAccount`
+ `aws:ResourceOrgID`
+ `aws:SourceAccount`
+ `aws:SourceOrgID`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:VpceAccount`
+ `aws:VpceOrgID`

## Proprietà del principale
<a name="condition-keys-principal-properties"></a>

Utilizza le chiavi di condizione seguenti per confrontare i dettagli dell'entità che effettua la richiesta con le proprietà del principale specificate nella policy. Per un elenco dei principali che possono effettuare richieste, consulta [Come specificare un principale](reference_policies_elements_principal.md#Principal_specifying).

### aws:PrincipalArn
<a name="condition-keys-principalarn"></a>

Utilizzare questa chiave per confrontare il [nome della risorsa Amazon (ARN)](reference_identifiers.md#identifiers-arns) del principale che ha effettuato la richiesta con l'ARN specificato nella policy. Per i ruoli IAM, il contesto della richiesta restituisce l'ARN del ruolo, non l'ARN dell'utente che ha assunto il ruolo. 
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta per tutte le richieste firmate. Le richieste anonime non includono questa chiave. È possibile specificare i seguenti tipi di principali in questa chiave di condizione: 
  + Ruolo IAM
  + Utente IAM
  + AWS STS principale utente federato
  + Account AWS utente root
+ **Tipo di dati**: ARN

  AWS consiglia di utilizzare operatori [ARN anziché operatori](reference_policies_elements_condition_operators.md#Conditions_ARN) [stringa](reference_policies_elements_condition_operators.md#Conditions_String) durante il confronto. ARNs
+ **Tipo di valore**: valore singolo
+ **Valori di esempio** L'elenco seguente mostra il valore del contesto della richiesta restituito per diversi tipi di principali che è possibile specificare nella chiave di condizione `aws:PrincipalArn`:
  + **Ruolo IAM**- Il contesto della richiesta contiene il seguente valore per la chiave di condizione `aws:PrincipalArn`. Non specificare l'ARN della sessione del ruolo assunto come valore per questa chiave di condizione. Per ulteriori informazioni sul principale della sessione del ruolo assunto, consulta [Principali della sessione come ruolo](reference_policies_elements_principal.md#principal-role-session).

    ```
    arn:aws:iam::123456789012:role/role-name
    ```
  + **Utente IAM**- Il contesto della richiesta contiene il seguente valore per la chiave di condizione `aws:PrincipalArn`.

    ```
    arn:aws:iam::123456789012:user/user-name
    ```
  + **AWS STS federated user principals** — Il contesto della richiesta contiene il seguente valore per la chiave di condizione. `aws:PrincipalArn`

    ```
    arn:aws:sts::123456789012:federated-user/user-name
    ```
  + **Account AWS utente root** — Il contesto della richiesta contiene il seguente valore per la chiave di condizione. `aws:PrincipalArn` Quando si specifica l'ARN dell'utente root come valore per la chiave di condizione `aws:PrincipalArn`, limita le autorizzazioni solo per l'utente root del Account AWS. Questo è diverso dallo specificare l'ARN dell'utente root nell'elemento principale di una policy basata sulle risorse, che delega l'autorità al Account AWS. Per ulteriori informazioni sulla specifica dell'ARN dell'utente root nell'elemento principale di una policy basata sulle risorse, consulta [Account AWS presidi](reference_policies_elements_principal.md#principal-accounts). 

    ```
    arn:aws:iam::123456789012:root
    ```

È possibile specificare l'ARN dell'utente root come valore per la chiave di condizione `aws:PrincipalArn` nelle politiche di controllo AWS Organizations del servizio ()SCPs. SCPssono un tipo di politica organizzativa utilizzata per gestire le autorizzazioni nell'organizzazione e riguardano solo gli account dei membri dell'organizzazione. Una SCP limita le autorizzazioni per i ruoli e gli utenti IAM e negli account membri, compreso l'utente root dell'account membro. *Per ulteriori informazioni sull'effetto delle SCPs autorizzazioni, consulta [gli effetti SCP sulle autorizzazioni](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) nella Guida per l'utente.AWS Organizations *

### aws:PrincipalAccount
<a name="condition-keys-principalaccount"></a>

Utilizzare questa chiave per confrontare l'account a cui appartiene il principale richiedente con l'identificatore dell'account specificato nella policy. Per le richieste anonime, il contesto della richiesta restituisce `anonymous`.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta per tutte le richieste, incluse le richieste anonime.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

Nell'esempio seguente, l'accesso è negato tranne che ai principali con il numero di account `123456789012`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessFromPrincipalNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:resource"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

### aws:PrincipalOrgPaths
<a name="condition-keys-principalorgpaths"></a>

Utilizzate questa chiave per confrontare il AWS Organizations percorso del principale che effettua la richiesta con il percorso indicato nella policy. Tale principale può essere un utente IAM, un ruolo IAM, un principale utente federato AWS STS o un Utente root dell'account AWS. In una politica, questa chiave di condizione garantisce che il richiedente sia un membro dell'account all'interno della radice o delle unità organizzative specificate (OUs) in AWS Organizations. Un AWS Organizations percorso è una rappresentazione testuale della struttura di un' AWS Organizations entità. Per ulteriori informazioni sull'utilizzo e la comprensione dei percorsi, consultare [Comprendi il percorso AWS Organizations dell'entità](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta solo se il principale è membro di un'organizzazione. Le richieste anonime non includono questa chiave.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore

**Nota**  
L'organizzazione IDs è unica a livello globale, ma l'unità organizzativa IDs e la radice IDs sono uniche solo all'interno di un'organizzazione. Ciò significa che non ci sono due organizzazioni che condividono lo stesso ID organizzazione. Tuttavia, un'altra organizzazione potrebbe avere un'unità organizzativa o un root con il tuo stesso ID. Si consiglia di includere sempre l'ID organizzazione quando si specifica un'unità organizzativa o un root.

Ad esempio, la seguente condizione si riferisce `true` ai principali degli account collegati direttamente all'`ou-ab12-22222222`unità organizzativa, ma non alla relativa unità organizzativa. OUs

```
"Condition" : { "ForAnyValue:StringEquals" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"]
}}
```

La seguente condizione si riferisce `true` ai principali di un account collegato direttamente all'unità organizzativa o a una delle sue unità secondarie. OUs Quando si include un carattere jolly, è necessario utilizzare l'operatore condizionale `StringLike`.

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"]
}}
```

La seguente condizione è valida `true` per i principali di un account collegato direttamente a una delle unità secondarie OUs, ma non direttamente all'unità organizzativa principale. La condizione precedente è per l'unità organizzativa o per qualsiasi figlio. La condizione seguente è solo per i figli (e tutti i figli di quei figli).

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"]
}}
```

La condizione seguente consente l'accesso per ogni principale nell'organizzazione `o-a1b2c3d4e5`, indipendentemente dalla propria unità organizzativa padre.

```
"Condition" : { "ForAnyValue:StringLike" : {
     "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"]
}}
```

`aws:PrincipalOrgPaths` è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. Quando si utilizzano più valori con l'operatore condizionale `ForAnyValue`, il percorso del principale deve corrispondere a uno dei percorsi elencati nella policy. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

```
    "Condition": {
        "ForAnyValue:StringLike": {
            "aws:PrincipalOrgPaths": [
                "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*",
                "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*"
            ]
        }
    }
```

### aws:PrincipalOrgID
<a name="condition-keys-principalorgid"></a>

Utilizza questa chiave per confrontare l'identificatore dell'organizzazione AWS Organizations a cui appartiene il principale richiedente con l'identificatore specificato nella politica.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta solo se il principale è membro di un'organizzazione. Le richieste anonime non includono questa chiave.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

Questa chiave globale fornisce un'alternativa all'elenco di tutti gli account IDs di un' AWS organizzazione. È possibile utilizzare questa chiave di condizione per specificare semplicemente l'elemento `Principal` in una [policy basata sulle risorse](access_policies_identity-vs-resource.md). È possibile specificare l'[ID organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) nell'elemento condizionale. Quando si aggiunge e si rimuove un account, le policy che includono la chiave `aws:PrincipalOrgID` includono automaticamente anche gli account corretti e non necessitano di aggiornamento manuale.

Ad esempio, la seguente policy del bucket Amazon S3 consente ai membri di qualsiasi account nell'organizzazione `o-xxxxxxxxxxx` di aggiungere un oggetto al bucket `amzn-s3-demo-bucket`. 

------
#### [ JSON ]

****  

```
 {
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AllowPutObject",
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {"StringEquals":
      {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"}
    }
  }
}
```

------

**Nota**  
Questa condizione globale vale anche per l'account di gestione di un'organizzazione AWS . Questa policy impedisce a tutti principali esterni all'organizzazione specificata di accedere al bucket Amazon S3. Sono inclusi tutti AWS i servizi che interagiscono con le risorse interne, come AWS CloudTrail l'invio di dati di log ai bucket Amazon S3. Per scoprire come concedere l'accesso ai AWS servizi in modo sicuro, consulta. [aws:PrincipalIsAWSService](#condition-keys-principalisawsservice)

Per ulteriori informazioni su AWS Organizations, vedi [Cos'è AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) nella *Guida AWS Organizations per l'utente*.

### aws:PrincipalTag/*tag-key*
<a name="condition-keys-principaltag"></a>

Utilizzare questa chiave per confrontare il tag collegato al principale che effettua la richiesta con il tag specificato nella policy. Se il principale ha più di un tag collegato, il contesto della richiesta include una chiave `aws:PrincipalTag` per ogni chiave tag collegata.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta se il principale utilizza un utente IAM con tag collegati. È inclusa per un principale che utilizza un ruolo IAM con tag collegati o [tag di sessione](id_session-tags.md). Le richieste anonime non includono questa chiave.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

È possibile aggiungere attributi personalizzati a un utente o a un ruolo sotto forma di coppia chiave-valore. Per ulteriori informazioni sui tag in IAM, consulta [Tag per AWS Identity and Access Management le risorse](id_tags.md). Puoi utilizzare `aws:PrincipalTag` per [controllare l'accesso](access_iam-tags.md#access_iam-tags_control-principals) per i principali AWS .

Questo esempio mostra come creare una policy basata sull'identità che consenta agli utenti con il tag **department=hr** per gestire utenti, gruppi o ruoli IAM. Per utilizzare questa politica, sostituisci la politica *italicized placeholder text* nell'esempio con le tue informazioni. Quindi, segui le indicazioni fornite in [Creazione di una policy](access_policies_create.md) o [Modifica di una policy](access_policies_manage-edit.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:Get*",
        "iam:List*",
        "iam:Generate*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": "hr"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalIsAWSService
<a name="condition-keys-principalisawsservice"></a>

Utilizzate questa chiave per verificare se la chiamata alla risorsa viene effettuata direttamente da un [responsabile AWS del servizio](reference_policies_elements_principal.md#principal-services). Ad esempio, AWS CloudTrail utilizza il principale del servizio `cloudtrail.amazonaws.com` per scrivere log nel bucket Amazon S3. La chiave di contesto della richiesta è impostata su true (VERO) quando un servizio utilizza un principale del servizio per eseguire un'operazione diretta sulle risorse. La chiave di contesto è impostata su false se il servizio utilizza le credenziali di un principale IAM per effettuare una richiesta per conto del principale. Viene impostata su false anche se il servizio utilizza un [ruolo di servizio oppure un ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) per effettuare una chiamata per conto del principale.
+ **Disponibilità**: questa chiave è presente nel contesto della richiesta per tutte le richieste di API firmate che utilizzano le credenziali AWS . Le richieste anonime non includono questa chiave.
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave di condizione per limitare l'accesso alle identità attendibili e alle posizioni di rete previste, garantendo al contempo l'accesso ai AWS servizi in modo sicuro.

Nel seguente esempio di policy sui bucket di Amazon S3, l'accesso al bucket è limitato a meno che la richiesta non provenga da `vpc-111bbb22` o provenga da un responsabile del servizio, ad esempio. CloudTrail

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWS Logs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22"
        },
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}
```

------

Nel seguente video, scopri ulteriori informazioni su come utilizzare la chiave di condizione `aws:PrincipalIsAWSService` in una policy.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gv-_H8a42G4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gv-_H8a42G4)


### aws:PrincipalServiceName
<a name="condition-keys-principalservicename"></a>

Utilizza questa chiave per confrontare il nome del [principale del servizio](reference_policies_elements_principal.md#principal-services) nella policy con il prinicpale del servizio che effettua richieste alle risorse. È possibile utilizzare questa chiave per verificare se la chiamata viene effettuata da un principale del servizio specifico. Quando un principale del servizio effettua una richiesta diretta alla risorsa, la chiave `aws:PrincipalServiceName` contiene il nome del principale del servizio. Ad esempio, il nome principale del AWS CloudTrail servizio è`cloudtrail.amazonaws.com`.
+ **Disponibilità**: questa chiave è presente nella richiesta quando la chiamata viene effettuata da un responsabile AWS del servizio. Questa chiave non è presente in alcun'altra situazione, tra cui:
  + Se il servizio utilizza un [ruolo di servizio oppure un ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) per effettuare una chiamata per conto del principale.
  + Se il servizio utilizza le credenziali di un principale IAM per effettuare una richiesta per conto del principale.
  + Se la chiamata viene effettuata direttamente da un principale IAM.
  + Se la chiamata viene effettuata da un richiedente anonimo.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave di condizione per limitare l'accesso alle identità attendibili e alle posizioni di rete previste, garantendo al contempo l'accesso a un AWS servizio in tutta sicurezza.

Nel seguente esempio di policy sui bucket di Amazon S3, l'accesso al bucket è limitato a meno che la richiesta non provenga da `vpc-111bbb22` o provenga da un responsabile del servizio, ad esempio. CloudTrail

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExpectedNetworkServicePrincipal",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWS Logs/AccountNumber/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-111bbb22",
          "aws:PrincipalServiceName": "cloudtrail.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### aws:PrincipalServiceNamesList
<a name="condition-keys-principalservicenameslist"></a>

Questa chiave fornisce un elenco di tutti i nomi dei [principali del servizio](reference_policies_elements_principal.md#principal-services) che appartengono al servizio. Questa è una chiave di condizione avanzata. È possibile utilizzarlo per impedire al servizio di accedere alla risorsa solo da una regione specifica. Alcuni servizi possono creare entità di servizio regionali per indicare una particolare istanza del servizio all'interno di una regione specifica. È possibile limitare l'accesso a una risorsa a una particolare istanza del servizio. Quando un principale del servizio effettua una richiesta diretta alla risorsa, `aws:PrincipalServiceNamesList` contiene un elenco non ordinato di tutti i nomi di principali del servizio associati all'istanza regionale del servizio.
+ **Disponibilità**: questa chiave è presente nella richiesta quando la chiamata viene effettuata da un responsabile del servizio. AWS Questa chiave non è presente in alcun'altra situazione, tra cui:
  + Se il servizio utilizza un [ruolo di servizio oppure un ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) per effettuare una chiamata per conto del principale.
  + Se il servizio utilizza le credenziali di un principale IAM per effettuare una richiesta per conto del principale.
  + Se la chiamata viene effettuata direttamente da un principale IAM.
  + Se la chiamata viene effettuata da un richiedente anonimo.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore

`aws:PrincipalServiceNamesList` è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. È necessario utilizzare gli operatori di insieme `ForAnyValue` o `ForAllValues` con gli [operatori di condizione di stringa](reference_policies_elements_condition_operators.md#Conditions_String) quando si utilizza questa chiave. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:PrincipalType
<a name="condition-keys-principaltype"></a>

Utilizzare questa chiave per confrontare il tipo di principale che effettua la richiesta con il tipo di principale specificato nella policy. Per ulteriori informazioni, consulta [Come specificare un principale](reference_policies_elements_principal.md#Principal_specifying). Per esempi specifici di valori chiave `principal`, vedi [Valori della chiave dell'entità principale](reference_policies_variables.md#principaltable).
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta per tutte le richieste, incluse le richieste anonime.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

### aws:userid
<a name="condition-keys-userid"></a>

Utilizzare questa chiave per confrontare l'identificatore del principale richiedente con l'ID specificato nella policy. Per gli utenti IAM, il valore del contesto della richiesta è l'ID utente. Per i ruoli IAM, questo formato di valore può variare. Per informazioni dettagliate su come vengono visualizzate le informazioni per diverse entità, consultare [Come specificare un principale](reference_policies_elements_principal.md#Principal_specifying). Per esempi specifici di valori chiave `principal`, vedi [Valori della chiave dell'entità principale](reference_policies_variables.md#principaltable).
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta per tutte le richieste, incluse le richieste anonime.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

### aws:username
<a name="condition-keys-username"></a>

Utilizzare questa chiave per confrontare il nome utente del richiedente con il nome utente specificato nella policy. Per informazioni dettagliate su come vengono visualizzate le informazioni per diverse entità, consultare [Come specificare un principale](reference_policies_elements_principal.md#Principal_specifying). Per esempi specifici di valori chiave `principal`, vedi [Valori della chiave dell'entità principale](reference_policies_variables.md#principaltable).
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta per gli utenti IAM. Le richieste anonime e le richieste effettuate utilizzando i ruoli Utente root dell'account AWS o IAM non includono questa chiave. Le richieste effettuate utilizzando le credenziali di IAM Identity Center non includono questa chiave nel contesto.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

## Proprietà di una sessione di ruolo
<a name="condition-keys-role-session-properties"></a>

Utilizza le seguenti chiavi di condizione per confrontare le proprietà della sessione di ruolo al momento della generazione della sessione. Queste chiavi di condizione sono disponibili solo quando una richiesta viene effettuata da un principale con credenziali di sessione di ruolo o di principale utente federato. I valori di queste chiavi di condizione sono incorporati nel token di sessione del ruolo.

Un [ruolo](reference_policies_elements_principal.md#principal-roles) è un tipo di principale. È inoltre possibile utilizzare le chiavi di condizione della sezione [Proprietà del principale](#condition-keys-principal-properties) per valutare le proprietà di un ruolo quando un ruolo effettua una richiesta.

### aws:AssumedRoot
<a name="condition-keys-assumedroot"></a>

Usa questa chiave per verificare se la richiesta è stata effettuata utilizzando [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html). `AssumeRoot`restituisce credenziali a breve termine per una sessione utente root privilegiata che è possibile utilizzare per eseguire azioni privilegiate sugli account dei membri dell'organizzazione. Per ulteriori informazioni, consulta [Gestire centralmente l'accesso root per gli account membri](id_root-user.md#id_root-user-access-management).
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza le credenziali di [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html)per effettuare la richiesta.
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

Nell'esempio seguente, se utilizzata come politica di controllo del servizio, nega l'utilizzo delle credenziali a lungo termine di un utente root in un AWS Organizations account membro. La policy non impedisce alle sessioni `AssumeRoot` di eseguire le operazioni consentite da una sessione `AssumeRoot`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
       {
          "Effect":"Deny",
          "Action":"*",
          "Resource": "*",
          "Condition":{
             "ArnLike":{
                "aws:PrincipalArn":[
                   "arn:aws:iam::*:root"
                ]
             },
             "Null":{
                "aws:AssumedRoot":"true"
             }
          }
       }
    ]
 }
```

------

### aws:FederatedProvider
<a name="condition-keys-federatedprovider"></a>

Utilizzare questa chiave per confrontare il provider dell'identità di emissione (IdP) del principale con l'IdP specificato nella policy. Ciò significa che viene assunto un ruolo IAM utilizzando l'[https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity) AWS STS operazione. Quando le credenziali temporanee della sessione come ruolo risultante vengono utilizzate per effettuare una richiesta, il contesto della richiesta identifica l'IdP che ha autenticato l'identità federata originale.
+ **Disponibilità**: questa chiave è presente nella sessione di ruolo di un ruolo assunto utilizzando il provider OpenID Connect (OIDC) e nella policy di attendibilità dei ruoli quando viene utilizzato un provider OIDC per effettuare chiamate `AssumeRoleWithWebIdentity`.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)\$1
+ **Tipo di valore**: valore singolo

\$1 Il tipo di dati dipende dal tuo IdP:
+ **Se utilizzi un AWS IdP integrato, come [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html), il valore chiave sarà una stringa.** Il valore della chiave può essere analogo al seguente: `cognito-identity.amazonaws.com`.
+ **Se utilizzi un IdP che non è integrato AWS, ad esempio, in [https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)[Amazon EKS](https://docs.aws.amazon.com//eks/latest/userguide/associate-service-account-role.html), il valore chiave sarà ARN.** Il valore della chiave può essere analogo al seguente: `arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID`.

Per ulteriori informazioni sugli annunci esterni`AssumeRoleWithWebIdentity`, IdPs consulta. [Scenari comuni](id_federation_common_scenarios.md) Per ulteriori informazioni, consulta [Principali della sessione come ruolo](reference_policies_elements_principal.md#principal-role-session).

### aws:TokenIssueTime
<a name="condition-keys-tokenissuetime"></a>

Utilizzare questa chiave per confrontare la data e l'ora in cui sono state emesse le credenziali di sicurezza temporanee con la data e l'ora specificate nella policy. 
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza credenziali temporanee per effettuare la richiesta. La chiave non è presente nelle AWS CLI richieste AWS API o AWS SDK effettuate utilizzando le chiavi di accesso.
+ **Tipo di dati**: [data](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Tipo di valore**: valore singolo

Per sapere quali servizi supportano l'utilizzo di credenziali temporanee, consulta [AWS servizi che funzionano con IAM](reference_aws-services-that-work-with-iam.md).

### aws:MultiFactorAuthAge
<a name="condition-keys-multifactorauthage"></a>

Utilizzare questa chiave per confrontare il numero di secondi da quando il principale richiedente è stato autorizzato utilizzando MFA con il numero specificato nella policy. Per ulteriori informazioni sulla funzionalità MFA, consultare [AWS Autenticazione a più fattori in IAM](id_credentials_mfa.md).

**Importante**  
Questa chiave condizionale non è presente per le identità federate o le richieste effettuate utilizzando chiavi di accesso per firmare richieste AWS CLI, AWS API o SDK. AWS Per ulteriori informazioni sull'aggiunta della protezione MFA alle operazioni API con credenziali di sicurezza temporanee, consulta [Accesso sicuro alle API con MFA](id_credentials_mfa_configure-api-require.md).  
Per verificare se l'autenticazione MFA viene utilizzata per convalidare le identità federate IAM, puoi passare il metodo di autenticazione dal tuo provider di identità come tag di AWS sessione. Per informazioni dettagliate, vedi [Passa i tag di sessione AWS STS](id_session-tags.md). Per applicare la MFA per le identità del Centro identità IAM, [puoi abilitare gli attributi per il controllo degli accessi](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) per passare una dichiarazione di asserzione SAML con il metodo di autenticazione dal tuo provider di identità al Centro identità IAM.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza [credenziali temporanee](id_credentials_temp.md) per effettuare la richiesta. Le policy con condizioni MFA possono essere collegate a:
  + Un utente o un gruppo IAM
  + Una risorsa, ad esempio un bucket Amazon S3, una coda Amazon SQS o un argomento Amazon SNS
  + La policy di attendibilità di un ruolo IAM che può essere assunto da un utente
+ **Tipo di dati**: [numerico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo di valore**: valore singolo

### aws:MultiFactorAuthPresent
<a name="condition-keys-multifactorauthpresent"></a>

Utilizzare questa chiave per verificare se l'autenticazione a più fattori (MFA) è stata utilizzata per convalidare le [credenziali di sicurezza temporanee](id_credentials_temp.md) con le quali è stata effettuata la richiesta.

**Importante**  
Questa chiave condizionale non è presente per le identità federate o le richieste effettuate utilizzando chiavi di accesso per firmare richieste AWS CLI, AWS API o SDK. AWS Per ulteriori informazioni sull'aggiunta della protezione MFA alle operazioni API con credenziali di sicurezza temporanee, consulta [Accesso sicuro alle API con MFA](id_credentials_mfa_configure-api-require.md).  
Per verificare se l'autenticazione MFA viene utilizzata per convalidare le identità federate IAM, puoi passare il metodo di autenticazione dal tuo provider di identità come tag di AWS sessione. Per informazioni dettagliate, vedi [Passa i tag di sessione AWS STS](id_session-tags.md). Per applicare la MFA per le identità del Centro identità IAM, [puoi abilitare gli attributi per il controllo degli accessi](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) per passare una dichiarazione di asserzione SAML con il metodo di autenticazione dal tuo provider di identità al Centro identità IAM.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza credenziali temporanee per effettuare la richiesta. Le policy con condizioni MFA possono essere collegate a:
  + Un utente o un gruppo IAM
  + Una risorsa, ad esempio un bucket Amazon S3, una coda Amazon SQS o un argomento Amazon SNS
  + La policy di attendibilità di un ruolo IAM che può essere assunto da un utente
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

Le credenziali temporanee vengono utilizzate per autenticare i ruoli IAM e gli utenti IAM con token temporanei di o e gli utenti di [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html). [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) Console di gestione AWS

Le chiavi di accesso utente IAM sono credenziali a lungo termine, ma in alcuni casi AWS creano credenziali temporanee per conto degli utenti IAM per eseguire operazioni. In questi casi, la chiave `aws:MultiFactorAuthPresent` è presente nella richiesta ed è impostata su un valore `false`. Esistono due casi comuni in cui ciò può accadere:
+ Gli utenti IAM utilizzano Console di gestione AWS inconsapevolmente credenziali temporanee. Gli utenti accedono alla console utilizzando il nome utente e la password, che sono credenziali a lungo termine. Tuttavia, in background, la console genera credenziali temporanee per conto dell'utente. 
+ Se un utente IAM effettua una chiamata a un AWS servizio, il servizio riutilizza le credenziali dell'utente per effettuare un'altra richiesta a un servizio diverso. Ad esempio, quando si chiama Athena per accedere a un bucket Amazon S3 o quando lo si CloudFormation utilizza per creare un'istanza Amazon EC2. Per la richiesta successiva, utilizza credenziali temporanee AWS .

Per sapere quali servizi supportano l'utilizzo di credenziali temporanee, consulta [AWS servizi che funzionano con IAM](reference_aws-services-that-work-with-iam.md).

La chiave `aws:MultiFactorAuthPresent` non è presente quando vengono lanciati un'API o un comando della CLI con credenziali a lungo termine, ad esempio coppie di chiavi di accesso. Pertanto, si consiglia, quando si controlla questa chiave, di utilizzare le versioni `...IfExists` degli operatori di condizione.

È importante capire che il seguente elemento `Condition` ***non*** è un modo affidabile per controllare se una richiesta è autenticata utilizzando MFA.

```
#####   WARNING: NOT RECOMMENDED   #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Questa combinazione di effetto `Deny`, elemento `Bool` e valore `false` nega le richieste che possono essere autenticate utilizzando MFA, ma che non lo sono. Ciò è valido solo per le credenziali temporanee che supportano l'uso di MFA. Questa istruzione non nega l'accesso alle richieste effettuate utilizzando le credenziali a lungo termine oppure alle richieste autenticate utilizzando MFA. Utilizza questo esempio con cautela in quanto la relativa logica è complessa e non verifica se l'autenticazione MFA è stata effettivamente utilizzata. 

Inoltre, non utilizzare la combinazione di effetto `Deny`, elemento `Null` e `true` perché ha lo stesso comportamento e la logica è ancora più complessa.

**Combinazione consigliata**  
Consigliamo di utilizzare l'operatore [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists) per verificare se una richiesta viene autenticata con MFA.

```
"Effect" : "Deny",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Questa combinazione di `Deny`, `BoolIfExists` e `false` nega le richieste che non vengono autenticate con MFA. Nello specifico, nega le richieste da credenziali temporanee che non includono MFA. Nega inoltre le richieste effettuate utilizzando credenziali a lungo termine, ad esempio AWS CLI operazioni AWS API effettuate utilizzando chiavi di accesso. L'operatore `*IfExists` verifica la presenza della chiave `aws:MultiFactorAuthPresent` e se potrebbe essere presente o meno, come indicato dalla relativa esistenza. Utilizzalo quando intendi negare qualsiasi richiesta non autenticata con MFA. È più sicuro, ma può violare qualsiasi codice o script che utilizza le chiavi di accesso per accedere all' AWS CLI API or. AWS 

**Combinazioni alternative**  
È inoltre possibile utilizzare l'[`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists)operatore per consentire richieste autenticate tramite MFA AWS CLI e/o richieste AWS API effettuate utilizzando credenziali a lungo termine.

```
"Effect" : "Allow",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }
```

Questa condizione è corrispondente se la chiave esiste ed è presente **o** se la chiave non esiste. Questa combinazione di `Allow`, `BoolIfExists` e `true` consente le richieste autenticate con MFA o le richieste che non possono essere autenticate con MFA. Ciò significa che le AWS CLI operazioni AWS API e AWS SDK sono consentite quando il richiedente utilizza le proprie chiavi di accesso a lungo termine. Questa combinazione non consente le richieste da credenziali temporanee che potrebbero ma non includono MFA. 

Quando crei una policy utilizzando l'editor visivo della console IAM e scegli **MFA obbligatoria**, questa combinazione viene applicata. Questa impostazione richiede MFA per l'accesso alla console, ma consente l'accesso programmatico senza MFA. 

In alternativa, puoi utilizzare l'operatore `Bool` per consentire le richieste programmatiche e della console solo quando autenticate tramite MFA.

```
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
```

Questa combinazione di `Allow`, `Bool` e `true` consente solo le richieste autenticate mediante MFA. Ciò è valido solo per le credenziali temporanee che supportano l'uso di MFA. Questa istruzione non consente l'accesso alle richieste eseguite utilizzando chiavi di accesso a lungo termine oppure alle richieste eseguite utilizzando credenziali temporanee senza MFA. 

***Non*** utilizzare una struttura di policy simile alle seguenti per controllare se la chiave MFA è presente:

```
#####   WARNING: USE WITH CAUTION   #####

"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
```

Questa combinazione di effetto `Allow`, elemento `Null` e valore `false` consente solo le richieste che possono essere autenticate mediante MFA, indipendentemente dall'autenticazione o meno della richiesta. Ciò consente tutte le richieste eseguite utilizzando credenziali temporanee e nega l'accesso alle credenziali a lungo termine. Utilizza questo esempio con cautela in quanto non verifica se l'autenticazione MFA è stata effettivamente utilizzata. 

### aws:ChatbotSourceArn
<a name="condition-keys-chatbotsourcearn"></a>

Utilizzare questa chiave per confrontare l'ARN della configurazione della chat di origine impostato dal principale con l'ARN di configurazione della chat specificato nella policy del ruolo IAM associato alla configurazione del canale. Puoi autorizzare le richieste in base alla sessione di assunzione del ruolo iniziata da Amazon Q Developer nelle applicazioni di chat.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta dal servizio Amazon Q Developer nelle applicazioni di chat ogni volta che si assume una sessione di ruolo. Il valore della chiave è l'ARN di configurazione della chat, ad esempio quando si [esegue un comando AWS CLI da un canale di chat](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-cli-commands.html).
+ **Tipo di dati**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: `arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel`

La seguente policy nega che Amazon S3 inserisca le richieste nel bucket specificato per tutte le richieste provenienti da un canale Slack.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleS3Deny",
            "Effect": "Deny",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnLike": {
                      "aws:ChatbotSourceArn": "arn:aws:chatbot::*:chat-configuration/slack-channel/*"
                }
            }
        }
    ]
}
```

------

### aws:Ec2InstanceSourceVpc
<a name="condition-keys-ec2instancesourcevpc"></a>

Questa chiave identifica il VPC al quale sono state consegnate le credenziali del ruolo IAM di Amazon EC2. È possibile utilizzare questa chiave in una policy con la chiave globale [`aws:SourceVPC`](#condition-keys-sourcevpc) per verificare se da un VPC (`aws:SourceVPC`) viene effettuata una chiamata che corrisponde al VPC al quale è stata consegnata una credenziale (`aws:Ec2InstanceSourceVpc`).
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta ogni volta che il richiedente firma le richieste con una credenziale di ruolo Amazon EC2. Può essere utilizzata nelle policy IAM, nelle policy di controllo dei servizi, nelle policy degli endpoint VPC e nelle policy delle risorse.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

Questa chiave può essere utilizzata con i valori identificativi del VPC, ma è particolarmente utile se impiegata come variabile in combinazione con la chiave di contesto `aws:SourceVpc`. La chiave di contesto `aws:SourceVpc` viene inclusa nel contesto della richiesta solo se il richiedente utilizza un endpoint VPC per effettuare la richiesta. L'impiego di `aws:Ec2InstanceSourceVpc` con `aws:SourceVpc` consente di utilizzare `aws:Ec2InstanceSourceVpc` in modo più ampio, poiché confronta dei valori che in genere cambiano insieme.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RequireSameVPC",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}"
        },
        "Null": {
          "ec2:SourceInstanceARN": "false"
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

Nell'esempio precedente, l'accesso è negato se il valore di `aws:SourceVpc` non corrisponde al valore di `aws:Ec2InstanceSourceVpc`. L'istruzione della policy è limitata ai soli ruoli utilizzati come ruoli dell'istanza Amazon EC2 verificando l'esistenza della chiave di condizione `ec2:SourceInstanceARN`.

La policy consente `aws:ViaAWSService` di AWS autorizzare le richieste quando vengono effettuate per conto dei ruoli delle istanze Amazon EC2. Ad esempio, quando effettui una richiesta da un'istanza Amazon EC2 a un bucket Amazon S3 crittografato, Amazon S3 effettua una chiamata a per tuo conto. AWS KMS Alcune chiavi non sono presenti quando viene effettuata la richiesta a. AWS KMS

### aws:Ec2InstanceSourcePrivateIPv4
<a name="condition-keys-ec2instancesourceprivateip4"></a>

Questa chiave identifica l'indirizzo IPv4 privato dell'interfaccia di rete elastica primaria a cui sono state consegnate le credenziali del ruolo IAM di Amazon EC2. Per assicurarti di disporre di una combinazione unica a livello globale di ID VPC e IP privato di origine, devi utilizzare questa chiave di condizione con la relativa chiave complementare `aws:Ec2InstanceSourceVpc`. Utilizza questa chiave con `aws:Ec2InstanceSourceVpc` per assicurarti che la richiesta sia stata effettuata dallo stesso indirizzo IP privato a cui sono state consegnate le credenziali.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta ogni volta che il richiedente firma le richieste con una credenziale di ruolo Amazon EC2. Può essere utilizzata nelle policy IAM, nelle policy di controllo dei servizi, nelle policy degli endpoint VPC e nelle policy delle risorse.
+ **Tipo di dati**: [indirizzo IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo di valore**: valore singolo

**Importante**  
Questa chiave non deve essere utilizzata da sola in un'istruzione `Allow`. Per definizione, gli indirizzi IP privati non sono univoci a livello globale. Dovresti usare la chiave `aws:Ec2InstanceSourceVpc` ogni volta che utilizzi la chiave `aws:Ec2InstanceSourcePrivateIPv4` per specificare il VPC dal quale possono essere utilizzate le credenziali dell'istanza Amazon EC2.

L'esempio seguente è una policy di controllo del servizio (SCP) che nega l'accesso a tutte le risorse a meno che la richiesta non arrivi tramite un endpoint VPC nello stesso VPC delle credenziali del ruolo. In questo esempio, `aws:Ec2InstanceSourcePrivateIPv4` limita l’origine delle credenziali a una particolare istanza in base all’IP di origine.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action":  "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}"
                },                
                "Null": {
                    "ec2:SourceInstanceARN": "false"
                },
                "BoolIfExists": {
                    "aws:ViaAWSService": "false"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action":  "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}"
                },                               
                "Null": {
                    "ec2:SourceInstanceARN": "false"
                },
                "BoolIfExists": {
                    "aws:ViaAWSService": "false"
                }
            }
        }
    ]
}
```

------

### aws:SourceIdentity
<a name="condition-keys-sourceidentity"></a>

Utilizza questa chiave per confrontare l'identità di origine impostata dal principale con l'identità di origine specificata nella policy. 
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta dopo che è stata impostata un'identità di origine quando si assume un ruolo utilizzando qualsiasi comando CLI AWS STS assume-role o operazione API. AWS STS `AssumeRole`
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave in una politica per consentire azioni AWS da parte dei responsabili che hanno impostato un'identità di origine quando assumono un ruolo. L'attività per l'identità di origine specificata del ruolo viene visualizzata in [AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds). In questo modo è più facile per gli amministratori determinare chi o cosa ha eseguito le azioni con un ruolo. AWS

A differenza di [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname), dopo aver impostato l'identità di origine, il valore non può essere modificato. È presente nel contesto della richiesta di tutte le operazioni intraprese dal ruolo. Il valore persiste nelle sessioni di ruolo successive quando si utilizzano le credenziali di sessione per assumere un altro ruolo. L'assunzione di un ruolo partendo da un altro si chiama [concatenamento del ruolo](id_roles.md#iam-term-role-chaining). 

La [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity)chiave è presente nella richiesta quando il principale imposta inizialmente un'identità di origine assumendo un ruolo utilizzando qualsiasi comando CLI o operazione API di AWS STS assume-role. AWS STS `AssumeRole` La chiave `aws:SourceIdentity` è presente nella richiesta per tutte le operazioni eseguite con una sessione di ruolo con un set di identità di origine.

La policy di attendibilità del ruolo riportata di seguito per `CriticalRole` nell'account `111122223333` contiene una condizione per `aws:SourceIdentity`che impedisce a un principale senza un'identità di origine impostata su Saanvi o Diego di assumere il ruolo.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AssumeRoleIfSourceIdentity",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringLike": {
                    "aws:SourceIdentity": ["Saanvi","Diego"]
                }
            }
        }
    ]
}
```

------

Per ulteriori informazioni sull'utilizzo dell'identità di origine, consulta [Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti](id_credentials_temp_control-access_monitor.md).

### ec2:RoleDelivery
<a name="condition-keys-ec2-role-delivery"></a>

Utilizzare questa chiave per confrontare la versione del servizio di metadati dell'istanza nella richiesta firmata con le credenziali del ruolo IAM per Amazon EC2. Il servizio di metadati delle istanze distingue tra IMDSv2 le richieste IMDSv1 e le richieste in base alla presenza o meno delle `GET` intestazioni `PUT` or, che sono uniche per una determinata richiesta. IMDSv2
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta ogni volta che la sessione del ruolo viene creata da un'istanza Amazon EC2.
+ **Tipo di dati**: [numerico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo di valore**: valore singolo
+ **Valori di esempio**: 1.0, 2.0

È possibile configurare l'Instance Metadata Service (IMDS) su ogni istanza in modo che sia necessario utilizzarlo dal codice locale o dagli utenti. IMDSv2 Quando si specifica che IMDSv2 deve essere utilizzato, IMDSv1 non funziona più.
+ Instance Metadata Service Version 1 (IMDSv1): un metodo di richiesta/risposta 
+ Instance Metadata Service Version 2 (IMDSv2): un metodo orientato alla sessione

Per informazioni su come configurare l'istanza da utilizzare IMDSv2, consulta [Configurare le opzioni dei metadati dell'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html).

Nell'esempio seguente, l'accesso viene negato se il RoleDelivery valore ec2: nel contesto della richiesta è 1.0 (IMDSv1). Questa istruzione di policy può essere applicata a livello generale perché, se la richiesta non è firmata dalle credenziali del ruolo Amazon EC2, non ha alcun effetto.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

Per ulteriori informazioni, consulta [Esempi di policy per l'utilizzo dei metadati delle istanze](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-instance-metadata).

### ec2:SourceInstanceArn
<a name="condition-keys-ec2-source-instance-arn"></a>

Utilizzare questa chiave per confrontare l'ARN dell'istanza da cui è stata generata la sessione del ruolo.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta ogni volta che la sessione del ruolo viene creata da un'istanza Amazon EC2.
+ **Tipo di dati**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: arn:aws:ec2:us-west- 2:1111:instance/instance-id

Per le policy di esempio, consulta [Consentire a un'istanza specifica di visualizzare le risorse in altri servizi AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-source-instance).

### glue:RoleAssumedBy
<a name="condition-keys-glue-role-assumed-by"></a>

Il AWS Glue servizio imposta questa chiave di condizione per ogni richiesta AWS API, dove AWS Glue effettua una richiesta utilizzando un ruolo di servizio per conto del cliente (non tramite un endpoint di lavoro o sviluppatore, ma direttamente dal servizio). AWS Glue Utilizzate questa chiave per verificare se una chiamata a una AWS risorsa proviene dal AWS Glue servizio.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta quando si AWS Glue effettua una richiesta utilizzando un ruolo di servizio per conto del cliente.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: questa chiave è sempre impostata su `glue.amazonaws.com`.

L'esempio seguente aggiunge una condizione per consentire al AWS Glue servizio di ottenere un oggetto da un bucket Amazon S3.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:RoleAssumedBy": "glue.amazonaws.com"
        }
    }
}
```

### glue:CredentialIssuingService
<a name="condition-keys-glue-credential-issuing"></a>

Il AWS Glue servizio imposta questa chiave per ogni richiesta AWS API utilizzando un ruolo di servizio che proviene da un endpoint di lavoro o da uno sviluppatore. Usa questa chiave per verificare se una chiamata a una AWS risorsa proviene da un AWS Glue job o da un endpoint di sviluppo.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta quando si AWS Glue effettua una richiesta proveniente da un job o da un endpoint di sviluppo.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: questa chiave è sempre impostata su `glue.amazonaws.com`.

L'esempio seguente aggiunge una condizione associata a un ruolo IAM utilizzato da un AWS Glue job. Ciò garantisce che determinate azioni si allowed/denied basino sull'utilizzo della sessione di ruolo per un ambiente di AWS Glue job runtime.

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "StringEquals": {
            "glue:CredentialIssuingService": "glue.amazonaws.com"
        }
    }
}
```

### codebuild:BuildArn
<a name="condition-keys-codebuild-build-arn"></a>

Questa chiave identifica l'ARN di CodeBuild build a cui sono state consegnate le credenziali del ruolo IAM. Usa questa chiave per verificare se una chiamata a una AWS risorsa proviene da una build specifica. CodeBuild 

**Nota**  
Il valore completo di non `codebuild:BuildArn` è noto in anticipo perché contiene l'ID di build generato dinamicamente.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta ogni volta che una richiesta viene effettuata da un ruolo assunto da CodeBuild.
+ **Tipo di dati**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio: arn:aws:codebuild:us-east- 1:123456789012:build/:12345678-1234-1234-1234-123456789012** MyBuildProject

L'esempio seguente consente a una build specifica di accedere al bucket specificato. CodeBuild `s3:GetObject`

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnLike": {
            "codebuild:BuildArn": "arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:*"
        }
    }
}
```

### codebuild:ProjectArn
<a name="condition-keys-codebuild-project-arn"></a>

Questa chiave identifica l'ARN del CodeBuild progetto con cui le credenziali del ruolo IAM sono state fornite a una build. CodeBuild Usa questa chiave per verificare se una chiamata a una AWS risorsa proviene da un progetto specifico. CodeBuild 
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta ogni volta che viene effettuata una richiesta da un ruolo assunto da CodeBuild.
+ **Tipo di dati**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: arn:aws:codebuild:us-east- 1:123456789012:project/ MyBuildProject

L'esempio seguente consente a qualsiasi build di un progetto specifico di accedere al bucket specificato. CodeBuild `s3:GetObject`

```
{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
        "ArnEquals": {
            "codebuild:ProjectArn": "arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject"
        }
    }
}
```

### lambda:SourceFunctionArn
<a name="condition-keys-lambda-source-function-arn"></a>

Utilizza questa chiave per identificare l'ARN della funzione Lambda a cui sono state consegnate le credenziali del ruolo IAM. Il servizio Lambda imposta questa chiave per ogni richiesta AWS API proveniente dall'ambiente di esecuzione della funzione. Usa questa chiave per verificare se una chiamata a una AWS risorsa proviene dal codice di una funzione Lambda specifica. Lambda imposta questa chiave anche per alcune richieste che provengono dall'esterno dell'ambiente di esecuzione, come la scrittura di log CloudWatch e l'invio di tracce a X-Ray.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta ogni volta che viene richiamato il codice della funzione Lambda.
+ **Tipo di dati**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio: arn:aws:lambda:us-east** - 1:123456789012:function: TestFunction

L'esempio seguente consente a una funzione Lambda specifica definire l'accesso di `s3:PutObject` al bucket specificato.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

------

Per ulteriori informazioni, consulta [Lavorare con le credenziali dell'ambiente di esecuzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-source-function-arn) nella *Guida per gli sviluppatori di AWS Lambda *.

### ssm:SourceInstanceArn
<a name="condition-keys-ssm-source-instance-arn"></a>

Utilizza questa chiave per identificare l'ARN dell'istanza AWS Systems Manager gestita a cui sono state consegnate le credenziali del ruolo IAM. Questa chiave di condizione non è presente quando la richiesta proviene da un'istanza gestita con un ruolo IAM associato al profilo dell'istanza Amazon EC2.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta ogni volta che le credenziali del ruolo vengono consegnate a un'istanza gestita da AWS Systems Manager .
+ **Tipo di dati**: [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: arn:aws:ec2:us-west- 2:1111:instance/instance-id

### identitystore:UserId
<a name="condition-keys-identity-store-user-id"></a>

Utilizzare questa chiave per confrontare l'identità della forza lavoro del Centro identità IAM nella richiesta firmata con l'identità specificata nella policy. 
+ **Disponibilità**: questa chiave viene inclusa quando il chiamante della richiesta è un utente del Centro identità IAM.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: 94482488-3041-7026-18f3-be45837cd0e4

Puoi trovare il nome di un utente in IAM Identity Center UserId effettuando una richiesta all'API utilizzando l'API o l'SDK. [GetUserId](https://docs.aws.amazon.com//singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html) AWS CLI AWS AWS 

## Proprietà della rete
<a name="condition-keys-network-properties"></a>

Utilizza le chiavi di condizione seguenti per confrontare i dettagli della rete da cui è stata originata la richiesta o inviati con le proprietà della rete specificate nella policy.

### aws:SourceIp
<a name="condition-keys-sourceip"></a>

Utilizzare questa chiave per confrontare l'indirizzo IP del richiedente con l'indirizzo IP specificato nella policy. La chiave di condizione `aws:SourceIp` può essere utilizzata solo per intervalli di indirizzi IP pubblici.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta, tranne quando il richiedente utilizza un endpoint VPC per effettuare la richiesta.
+ **Tipo di dati**: [indirizzo IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo di valore**: valore singolo

La chiave di condizione `aws:SourceIp` può essere utilizzata in una policy per consentire ai principali di effettuare richieste solo all'interno di un intervallo IP specificato.

**Nota**  
`aws:SourceIp`supporta IPv4 sia un IPv6 indirizzo che un intervallo di indirizzi IP. Per un elenco di Servizi AWS tale supporto IPv6, consulta Servizi AWS la [Guida IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) per l'*utente di Amazon VPC*.

Ad esempio, puoi collegare la seguente policy basata sull'identità a un ruolo IAM. Questa policy consente all'utente di inserire oggetti nel bucket `amzn-s3-demo-bucket3` Amazon S3 se effettua la chiamata dall'intervallo di indirizzi specificato IPv4 . Questa politica consente inoltre a un AWS servizio che utilizza [Inoltro delle sessioni di accesso](access_forward_access_sessions.md) di eseguire questa operazione per tuo conto.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                }
            }
        }
    ]
}
```

------

Se devi limitare l'accesso da reti che supportano entrambi gli indirizzi IPv4 e l' IPv6indirizzamento, puoi includere l' IPv4 IPv6 indirizzo o gli intervalli di indirizzi IP nella condizione della policy IAM. La seguente politica basata sull'identità consentirà all'utente di inserire oggetti nel bucket `amzn-s3-demo-bucket3` Amazon S3 se l'utente effettua la chiamata da intervalli di indirizzi specifici o da intervalli di indirizzi. IPv4 IPv6 Prima di includere gli intervalli di IPv6 indirizzi nella tua policy IAM, verifica che i supporti con Servizio AWS cui lavori. IPv6 Per un elenco di Servizi AWS tale supporto IPv6, consulta Servizi AWS la [Guida IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) per l'*utente di Amazon VPC*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PrincipalPutObjectIfIpAddress",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "203.0.113.0/24",
                        "2001:DB8:1234:5678::/64"
                    ]
                }
            }
        }
    ]
}
```

------

Se la richiesta proviene da un host che utilizza un endpoint Amazon VPC, la chiave `aws:SourceIp` non è disponibile. [Dovresti invece usare una chiave specifica per VPC come aws:. VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) Per ulteriori informazioni sull'utilizzo degli endpoint VPC, consulta la sezione [Gestione delle identità e degli accessi per endpoint VPC e servizi endpoint VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) nella *Guida di AWS PrivateLink *.

**Nota**  
Quando si Servizi AWS effettuano chiamate ad altri per proprio Servizi AWS conto (service-to-service chiamate), viene oscurato un determinato contesto di autorizzazione specifico della rete. Se la tua politica utilizza questa chiave di condizione con le `Deny` istruzioni, i principali potrebbero essere bloccati Servizio AWS involontariamente. Per consentire ai Servizi AWS di funzionare correttamente mantenendo i requisiti di sicurezza, escludi i principali del servizio dalle istruzioni `Deny` aggiungendo la chiave di condizione `aws:PrincipalIsAWSService` con il valore `false`.

### aws:SourceVpc
<a name="condition-keys-sourcevpc"></a>

Utilizzare questa chiave per verificare se la richiesta viaggia attraverso il VPC al quale è collegato l'endpoint VPC. In una policy è possibile utilizzare questa chiave per consentire l'accesso solo a un VPC specifico. Per ulteriori informazioni, consulta [Limitazione dell'accesso a un VPC specifico](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) nella *Guida per l'utente di Amazon Simple Storage Service*. 
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo se il richiedente utilizza un endpoint VPC per effettuare la richiesta.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

In una policy è possibile utilizzare questa chiave per consentire o limitare l'accesso a un VPC specifico.

Ad esempio, puoi collegare la seguente policy basata sull'identità a un ruolo IAM da negare al bucket `PutObject` Amazon S3`amzn-s3-demo-bucket3`, a meno che la richiesta non venga effettuata dall'ID VPC specificato o da Servizi AWS quel ruolo utilizzi [sessioni di accesso inoltrato (FAS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)) per effettuare richieste per conto del ruolo. A differenza di [aws:SourceIp](#condition-keys-sourceip), è necessario utilizzare [aws:ViaAWSService](#condition-keys-viaawsservice) o [aws:CalledVia](#condition-keys-calledvia) per consentire le richieste FAS, poiché il VPC di origine della richiesta iniziale non viene conservato.

**Nota**  
Questa policy non consente alcuna operazione. Utilizza questa policy in combinazione con altre policy che consentono operazioni specifiche.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PutObjectIfNotVPCID",
      "Effect": "Deny",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceVpc": "vpc-1234567890abcdef0"
        },
        "Bool": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}
```

------

**Nota**  
AWS consiglia di utilizzare al `aws:SourceVpcArn` posto di `aws:SourceVpc` if `aws:SourceVpcArn` è supportato dal servizio a cui ti rivolgi. Fai riferimento a [aws: SourceVpcArn](#condition-keys-sourcevpcarn) per l'elenco dei servizi supportati.

### aws:SourceVpcArn
<a name="condition-keys-sourcevpcarn"></a>

Utilizza questa chiave per verificare l'ARN del VPC tramite il quale è stata effettuata una richiesta tramite un endpoint VPC. Questa chiave restituisce l'ARN del VPC a cui è collegato l'endpoint VPC.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta per i servizi supportati quando viene effettuata una richiesta tramite un endpoint VPC. La chiave non è inclusa per le richieste effettuate tramite endpoint di servizio pubblico. I seguenti servizi supportano questa chiave:
  + AWS App Runner (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html)
  + AWS Application Discovery Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html)
  + Amazon Athena (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html)
  + Amazon CloudWatch Application Insights (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)
  + Amazon Comprehend Medical (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon; Elastic Container Registry (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefisso [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html)
  + Amazon Elastic Block Store (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html)
  + AWS HealthLake (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html)
  + AWS HealthOmics (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html)
  + AWS Identity and Access Management (ad eccezione dell'`iam:PassRole`azione) (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html)
  + AWS IoT FleetWise (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html)
  + Wireless AWS IoT (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html)
  + AWS Key Management Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)
  + AWS Lambda (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html)
  + AWS Payment Cryptography (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html)
  + Amazon Polly (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Autorità di certificazione privata (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html)
  + AWS Cestino (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Gateway di archiviazione AWS (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html)
  + Strumento di gestione degli incidenti AWS Systems Manager Contatti (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html)
  + Amazon Textract (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)
+ **Tipo di dati**: ARN

  AWS consiglia di utilizzare operatori [ARN anziché operatori](reference_policies_elements_condition_operators.md#Conditions_ARN) [stringa](reference_policies_elements_condition_operators.md#Conditions_String) durante il confronto. ARNs
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: `arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE`

Di seguito è riportato un esempio di policy bucket che nega `amzn-s3-demo-bucket` l'accesso ai relativi oggetti da qualsiasi punto esterno al VPC. `vpc-1a2b3c4d`

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "Access-to-specific-VPC-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "ArnNotEquals": {
           "aws:SourceVpcArn": "arn:aws:ec2:us-east-1:*:vpc/vpc-1a2b3c4d"
         }
       }
     }
   ]
}
```

### aws:SourceVpce
<a name="condition-keys-sourcevpce"></a>

Utilizzare questa chiave per confrontare l'identificatore dell'endpoint VPC della richiesta con l'ID endpoint specificato nella policy.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo se il richiedente utilizza un endpoint VPC per effettuare la richiesta.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

In una policy è possibile utilizzare questa chiave per limitare l'accesso a un endpoint VPC specifico. Per ulteriori informazioni, consulta [Limitazione dell'accesso a un VPC specifico](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) nella *Guida per l'utente di Amazon Simple Storage Service*. Analogamente all'utilizzo[aws:SourceVpc](#condition-keys-sourcevpc), è necessario utilizzare [aws:ViaAWSService](#condition-keys-viaawsservice) o consentire [aws:CalledVia](#condition-keys-calledvia) le richieste effettuate Servizi AWS utilizzando le [sessioni di accesso inoltrato (](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)FAS). Questo perché l'endpoint VPC di origine della richiesta iniziale non viene conservato.

### aws:VpceAccount
<a name="condition-keys-vpceaccount"></a>

Utilizza questa chiave per confrontare l'ID dell' AWS account proprietario dell'endpoint VPC tramite il quale è stata effettuata la richiesta con l'ID dell'account specificato nella policy. Questa chiave di condizione consente di stabilire controlli del perimetro di rete assicurando che le richieste arrivino tramite endpoint VPC di proprietà di account specifici.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta quando una richiesta viene effettuata tramite un endpoint VPC. La chiave non è inclusa per le richieste effettuate tramite endpoint di servizio pubblico.

  I seguenti servizi supportano questa chiave:
  + AWS App Runner (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html)
  + AWS Application Discovery Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html)
  + Amazon Athena (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html)
  + Amazon CloudWatch Application Insights (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)
  + Amazon Comprehend Medical (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon; Elastic Container Registry (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefisso [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html)
  + Amazon Elastic Block Store (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html)
  + AWS HealthLake (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html)
  + AWS HealthOmics (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html)
  + AWS Identity and Access Management (ad eccezione dell'`iam:PassRole`azione) (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html)
  + AWS IoT FleetWise (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html)
  + Wireless AWS IoT (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html)
  + AWS Key Management Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)
  + AWS Lambda (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html)
  + AWS Payment Cryptography (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html)
  + Amazon Polly (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Autorità di certificazione privata (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html)
  + AWS Cestino (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Gateway di archiviazione AWS (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html)
  + Strumento di gestione degli incidenti AWS Systems Manager Contatti (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html)
  + Amazon Textract (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo
+ **Valore di esempio**: `123456789012`

Puoi utilizzare questa chiave di condizione per limitare l’accesso alle risorse in modo che le richieste arrivino tramite endpoint VPC di proprietà del tuo account. Il seguente esempio di policy di bucket di Amazon S3 consente l’accesso quando la richiesta arriva tramite un endpoint VPC di proprietà dell’account specificato:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessToSpecificVpceAccountOnly",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/RoleName"
            },
            "Action": "s3:GetObject",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "Condition": {
                "StringEquals": {
                    "aws:VpceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

**Nota**  
Questa chiave di condizione è attualmente supportata per un insieme selezionato di AWS servizi. L’utilizzo di questa chiave con servizi non supportati può portare a esiti di autorizzazione non intenzionali. Definisci sempre la chiave di condizione per i servizi supportati nelle tue policy.

Alcuni AWS servizi accedono alle risorse dell'utente dalle proprie reti quando agiscono per conto dell'utente. Se utilizzate tali servizi, dovrete modificare l'esempio di policy riportato sopra per consentire ai AWS servizi di accedere alle vostre risorse dall'esterno della rete. Per ulteriori informazioni sui modelli di accesso da tenere in considerazione quando si applicano i controlli di accesso in base all’origine della richiesta, consulta [Establish permissions guardrails using data perimeters](access_policies_data-perimeters.md).

### aws:VpceOrgID
<a name="condition-keys-vpceorgid"></a>

Utilizza questa chiave per confrontare l'identificatore dell'organizzazione proprietaria dell'endpoint VPC da cui è stata effettuata la richiesta con l'identificatore specificato nella policy. AWS Organizations Questa chiave di condizione offre l’approccio più scalabile ai controlli del perimetro di rete, includendo automaticamente tutti gli endpoint VPC di proprietà degli account all’interno dell’organizzazione.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta quando viene effettuata una richiesta tramite un endpoint VPC e l'account del proprietario dell'endpoint VPC è membro di un'organizzazione. AWS La chiave non è inclusa per le richieste effettuate tramite altri percorsi di rete o quando l’account del proprietario dell’endpoint VPC non fa parte di un’organizzazione.

  I seguenti servizi supportano questa chiave:
  + AWS App Runner (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html)
  + AWS Application Discovery Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html)
  + Amazon Athena (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS B2B Data Interchange (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html)
  + AWS Cloud Map (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html)
  + Amazon CloudWatch Application Insights (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)
  + Amazon Cognito (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html)
  + Amazon Comprehend Medical (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + AWS Database Migration Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html)
  + AWS Dati del Directory Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html))
  + Amazon; Elastic Container Registry (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefisso [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html)
  + Amazon Elastic Block Store (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html)
  + AWS HealthLake (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html)
  + AWS HealthOmics (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html)
  + AWS Identity and Access Management (ad eccezione dell'`iam:PassRole`azione) (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html)
  + AWS Identity Store (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html)
  + AWS IoT FleetWise (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html)
  + AWS IoT TwinMaker (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html)
  + Wireless AWS IoT (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html)
  + Amazon Keyspaces (per Apache Cassandra) (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html)
  + AWS Key Management Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)
  + AWS Lambda (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html)
  + AWS Network Firewall (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html)
  + AWS Payment Cryptography (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html)
  + Servizio SMS e vocale Amazon Pinpoint (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html)
  + Amazon Polly (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + Listino prezzi AWS (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html)
  + AWS Autorità di certificazione privata (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html)
  + AWS Cestino (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Email Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html))
  + Amazon Simple Storage Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Amazon Simple Queue Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html)
  + Gateway di archiviazione AWS (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html)
  + Strumento di gestione degli incidenti AWS Systems Manager Contatti (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html)
  + Amazon Textract (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)
  + Amazon WorkMail (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html))
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo
+ **Valori di esempio**: `o-a1b2c3d4e5`

Il seguente esempio di policy di controllo delle risorse nega l'accesso ad Amazon S3 AWS Key Management Service e alle risorse a meno che la richiesta non provenga da endpoint VPC di proprietà dell'organizzazione specificata o da reti AWS di servizi che agiscono per tuo conto. Alcune organizzazioni potrebbero dover modificare ulteriormente questa policy per soddisfare le esigenze della propria organizzazione, ad esempio consentire l’accesso a partner terzi. Per ulteriori informazioni sui modelli di accesso da tenere in considerazione quando si applicano i controlli di accesso in base all’origine della richiesta, consulta [Establish permissions guardrails using data perimeters](access_policies_data-perimeters.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceNetworkPerimeterVpceOrgID",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*",
        "kms:*"
      ],
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:PrincipalIsAWSService": "false",
          "aws:ViaAWSService": "false"
        },
        "StringNotEqualsIfExists": {
            "aws:VpceOrgID": "o-abcdef0123",
            "aws:PrincipalTag/network-perimeter-exception": "true"
        }
      }
    }
  ]
}
```

------

**Nota**  
Questa chiave di condizione è attualmente supportata per un set selezionato di servizi. AWS L’utilizzo di questa chiave con servizi non supportati può portare a esiti di autorizzazione non intenzionali. Definisci sempre la chiave di condizione per i servizi supportati nelle tue policy.

### aws:VpceOrgPaths
<a name="condition-keys-vpceorgpaths"></a>

Utilizza questa chiave per confrontare il AWS Organizations percorso dell'endpoint VPC da cui è stata effettuata la richiesta con il percorso specificato nella policy. Questa chiave di condizione consente di implementare i controlli perimetrali di rete a livello di unità organizzativa (OU), ridimensionandoli automaticamente in base all'utilizzo degli endpoint VPC man mano che si aggiungono nuovi endpoint entro i limiti specificati. OUs
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta quando viene effettuata una richiesta tramite un endpoint VPC e l’account del proprietario dell’endpoint VPC è membro di un’organizzazione. La chiave non è inclusa per le richieste effettuate tramite altri percorsi di rete o quando l’account del proprietario dell’endpoint VPC non fa parte di un’organizzazione.

  I seguenti servizi supportano questa chiave:
  + AWS App Runner (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html)
  + AWS Application Discovery Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html)
  + Amazon Athena (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html))
  + AWS Cloud Map (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html)
  + Amazon CloudWatch Application Insights (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html))
  + AWS CloudFormation (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)
  + Amazon Comprehend Medical (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html))
  + AWS Compute Optimizer (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon; Elastic Container Registry (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Amazon Elastic Container Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (prefisso [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html)
  + Amazon Elastic Block Store (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html))
  + AWS HealthImaging (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html)
  + AWS HealthLake (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html)
  + AWS HealthOmics (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html)
  + AWS Identity and Access Management (ad eccezione dell'`iam:PassRole`azione) (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html)
  + AWS IoT FleetWise (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html)
  + Wireless AWS IoT (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html)
  + AWS Key Management Service (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)
  + AWS Lambda (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html)
  + AWS Payment Cryptography (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html)
  + Amazon Polly (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html))
  + AWS Autorità di certificazione privata (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html)
  + AWS Cestino (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html))
  + Service Quotas (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html))
  + Amazon Simple Storage Service (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Gateway di archiviazione AWS (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html)
  + Strumento di gestione degli incidenti AWS Systems Manager Contatti (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html)
  + Amazon Textract (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html))
  + Amazon Transcribe (prefisso: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html))
  + AWS Transfer Family (prefisso:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore
+ **Valori di esempio**: `o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/`

Poiché `aws:VpceOrgPaths` è una chiave di condizione multivalore, è necessario utilizzare gli operatori dell’insieme `ForAnyValue` o `ForAllValues` con gli [operatori di condizione stringa](reference_policies_elements_condition_operators.md#Conditions_String) per questa chiave. Il seguente esempio di policy di bucket di Amazon S3 consente l’accesso solo quando le richieste arrivano tramite endpoint VPC di proprietà di account in unità organizzative specifiche:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessFromSpecificOrgPaths",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/RoleName"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:VpceOrgPaths": [
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*",
            "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-33333333/*"
          ]
        }
      }
    }
  ]
}
```

------

**Nota**  
Questa chiave di condizione è attualmente supportata per un insieme selezionato di AWS servizi. L’utilizzo di questa chiave con servizi non supportati può portare a esiti di autorizzazione non intenzionali. Definisci sempre la chiave di condizione per i servizi supportati nelle tue policy.

Alcuni AWS servizi accedono alle risorse dell'utente dalle proprie reti quando agiscono per conto dell'utente. Se utilizzate tali servizi, dovrete modificare l'esempio di policy riportato sopra per consentire ai AWS servizi di accedere alle vostre risorse dall'esterno della rete. Per ulteriori informazioni sui modelli di accesso da tenere in considerazione quando si applicano i controlli di accesso in base all’origine della richiesta, consulta [Establish permissions guardrails using data perimeters](access_policies_data-perimeters.md).

### aws:VpcSourceIp
<a name="condition-keys-vpcsourceip"></a>

Utilizzare questa chiave per confrontare l'indirizzo IP da cui è stata effettuata una richiesta con l'indirizzo IP specificato nella policy. In una policy, la chiave corrisponde solo se la richiesta proviene dall'indirizzo IP specificato e passa attraverso un endpoint VPC.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo se la richiesta viene effettuata utilizzando un endpoint VPC.
+ **Tipo di dati**: [indirizzo IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Tipo di valore**: valore singolo

Per ulteriori informazioni, consulta [Controllo degli accessi agli endpoint VPC tramite le policy degli endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) nella *Guida per l'utente di Amazon VPC*. Analogamente all'utilizzo[aws:SourceVpc](#condition-keys-sourcevpc), è necessario [aws:CalledVia](#condition-keys-calledvia) utilizzare [aws:ViaAWSService](#condition-keys-viaawsservice) o consentire le richieste effettuate Servizi AWS utilizzando le [sessioni di accesso inoltrato (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Questo perché l'IP di origine della richiesta iniziale effettuata tramite un endpoint VPC non viene conservato nelle richieste FAS.

**Nota**  
`aws:VpcSourceIp`supporta IPv4 sia un IPv6 indirizzo che un intervallo di indirizzi IP. Per un elenco di Servizi AWS tale supporto IPv6, consulta Servizi AWS la [Guida IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) per l'*utente di Amazon VPC*.  
Usa sempre il tasto di `aws:VpcSourceIp` condizione con i tasti di `aws:SourceVpcArn` condizione `aws:SourceVpc``aws:SourceVpce`, or. In caso contrario, una policy potrebbe consentire chiamate API da un VPC inaspettato che utilizza lo stesso IP CIDR o uno sovrapposto. Ciò può accadere perché gli IP di due indirizzi IP CIDRs non correlati VPCs possono essere uguali o sovrapporsi.

**Nota**  
Quando si Servizi AWS effettuano chiamate ad altri Servizi AWS per conto dell'utente (service-to-service chiamate), viene oscurato un determinato contesto di autorizzazione specifico della rete. Se la tua politica utilizza questa chiave di condizione con le `Deny` istruzioni, i principali potrebbero essere bloccati Servizio AWS involontariamente. Per consentire ai Servizi AWS di funzionare correttamente mantenendo i requisiti di sicurezza, escludi i principali del servizio dalle istruzioni `Deny` aggiungendo la chiave di condizione `aws:PrincipalIsAWSService` con il valore `false`.

## Proprietà della risorsa
<a name="condition-keys-resource-properties"></a>

Utilizzare le chiavi di condizione seguenti per confrontare i dettagli della risorsa che è la destinazione della richiesta con le proprietà della risorsa specificate nella policy.

### aws:ResourceAccount
<a name="condition-keys-resourceaccount"></a>

Utilizza questa chiave per confrontare l'[ID Account AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) del proprietario della risorsa richiesta con l'account della risorsa nella policy. Dopodiché, puoi consentire o negare l'accesso a tale risorsa in base all'account proprietario della stessa.
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta per la maggior parte delle operazioni dei servizi. Le seguenti operazioni non supportano questa chiave:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: tutte le operazioni
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` chiamate su un bus di eventi in un altro account, se tale bus di eventi è stato configurato come EventBridge destinazione tra più account prima del 2 marzo 2023. Per ulteriori informazioni, consulta [Concedere le autorizzazioni per consentire eventi da altri AWS account](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) nella *Amazon EventBridge User Guide*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  +  OpenSearch Servizio Amazon
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

**Nota**  
Per ulteriori considerazioni sulle operazioni non supportate di cui sopra, consulta il repository di [esempi di policy del perimetro di dati](https://github.com/aws-samples/data-perimeter-policy-examples).

Questa chiave è uguale all' Account AWS ID dell'account con le risorse valutate nella richiesta.

Per la maggior parte delle risorse presenti nel tuo account, l'[ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) contiene l'ID account del proprietario della rispettiva risorsa. Per alcune risorse, come i bucket Amazon S3, l'ARN della risorsa non include l'ID account. I due esempi seguenti mostrano la differenza tra una risorsa il cui ARN contiene un ID account e un ARN Amazon S3 privo di un ID account:
+ `arn:aws:iam::123456789012:role/AWSExampleRole`: ruolo IAM creato e di proprietà all'interno dell'account 123456789012. 
+ `arn:aws:s3:::amzn-s3-demo-bucket2`: bucket Amazon S3 creato e posseduto all'interno dell'account `111122223333`, non visualizzato nell'ARN.

Usa la AWS console, l'API o la CLI, per trovare tutte le tue risorse e le corrispondenti. ARNs

Scrivi una policy che nega le autorizzazioni alle risorse in base all'ID account del proprietario della risorsa. Ad esempio, la seguente policy basata sull'identità nega l'accesso alla *risorsa specificata* se la risorsa non appartiene all'*account specificato*.

Per utilizzare questa policy, sostituisci il *testo segnaposto in corsivo* con le tue informazioni. 

**Importante**  
Questa policy non consente alcuna operazione. Utilizza invece l'effetto `Deny`, che nega esplicitamente l'accesso a tutte le risorse elencate nell'istruzione che non appartengono all'account elencato. Utilizza questa policy in combinazione con altre policy che consentono l'accesso a risorse specifiche.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyInteractionWithResourcesNotInSpecificAccount",
      "Action": "service:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:service:us-east-1:111122223333:*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    }
  ]
}
```

------

Questa politica nega l'accesso a tutte le risorse per un AWS servizio specifico a meno che lo specificato non sia Account AWS proprietario della risorsa. 

**Nota**  
Alcuni Servizi AWS richiedono l'accesso a risorse AWS di proprietà ospitate in un altro Account AWS. L'utilizzo di `aws:ResourceAccount` nelle tue policy basate sull'identità potrebbe influire sulla capacità della tua identità di accedere a queste risorse.

Alcuni AWS servizi, ad esempio AWS Data Exchange, si basano sull'accesso a risorse esterne all'utente Account AWS per le normali operazioni. Se usi l'elemento `aws:ResourceAccount` nelle tue policy, includi istruzioni aggiuntive per creare delle esenzioni per tali servizi. La policy [AWS: nega l'accesso alle risorse Amazon S3 al di fuori del tuo account tranne AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) di esempio illustra come negare l'accesso in base all'account della risorsa definendo al contempo delle eccezioni per le risorse di proprietà del servizio.

Utilizza questo esempio di policy come modello per creare le tue policy personalizzate. Per ulteriori informazioni, consulta la [documentazione](https://docs.aws.amazon.com/index.html) del servizio.

### aws:ResourceOrgPaths
<a name="condition-keys-resourceorgpaths"></a>

Utilizzate questa chiave per confrontare il AWS Organizations percorso della risorsa a cui si accede con il percorso indicato nella policy. In una politica, questa chiave di condizione garantisce che la risorsa appartenga a un membro dell'account all'interno della radice o delle unità organizzative specificate (OUs) in AWS Organizations. Un AWS Organizations percorso è una rappresentazione testuale della struttura di un'entità Organizations. Per ulteriori informazioni sull'utilizzo e la comprensione dei percorsi, consulta la sezione [Comprendi il percorso AWS Organizations dell'entità](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path). 
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta solo se l'account che possiede la risorsa è membro di un'organizzazione. Questa chiave della condizione globale non supporta le seguenti operazioni:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: tutte le operazioni
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` chiamate su un bus di eventi in un altro account, se tale bus di eventi è stato configurato come EventBridge destinazione tra più account prima del 2 marzo 2023. Per ulteriori informazioni, consulta [Concedere le autorizzazioni per consentire eventi da altri AWS account](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) nella *Amazon EventBridge User Guide*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  +  OpenSearch Servizio Amazon
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore

**Nota**  
Per ulteriori considerazioni sulle operazioni non supportate di cui sopra, consulta il repository di [esempi di policy del perimetro di dati](https://github.com/aws-samples/data-perimeter-policy-examples).

`aws:ResourceOrgPaths` è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. È necessario utilizzare gli operatori di insieme `ForAnyValue` o `ForAllValues` con gli [operatori di condizione di stringa](reference_policies_elements_condition_operators.md#Conditions_String) quando si utilizza questa chiave. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Ad esempio, la seguente condizione restituisce `True` per le risorse appartenenti all'organizzazione `o-a1b2c3d4e5`. Quando si include un carattere jolly, è necessario utilizzare l'operatore condizionale [StringLike](reference_policies_elements_condition_operators.md).

```
"Condition": { 
      "ForAnyValue:StringLike": {
             "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"]
   }
}
```

La condizione seguente restituisce `True` alle risorse con l'ID dell'unità organizzativa `ou-ab12-11111111`. Corrisponderà alle risorse di proprietà degli account collegati all'unità organizzativa ou-ab12-11111111 o di qualsiasi altro account secondario. OUs

```
"Condition": { "ForAnyValue:StringLike" : {
     "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"]
}}
```

La condizione seguente si applica alle risorse `True` di proprietà degli account collegati direttamente all'ID OU`ou-ab12-22222222`, ma non al figlio. OUs L'esempio seguente utilizza l'operatore [StringEquals](reference_policies_elements_condition_operators.md)condition per specificare il requisito di corrispondenza esatta per l'ID OU e non una corrispondenza con caratteri jolly.

```
"Condition": { "ForAnyValue:StringEquals" : {
     "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"]
}}
```

**Nota**  
Alcuni Servizi AWS richiedono l'accesso a risorse AWS di proprietà ospitate in un altro Account AWS. L'utilizzo di `aws:ResourceOrgPaths` nelle tue policy basate sull'identità potrebbe influire sulla capacità della tua identità di accedere a queste risorse.

Alcuni AWS servizi, ad esempio AWS Data Exchange, si basano sull'accesso a risorse esterne all'utente Account AWS per le normali operazioni. Se usi la chiave `aws:ResourceOrgPaths` nelle tue policy, includi istruzioni aggiuntive per creare delle esenzioni per tali servizi. La policy [AWS: nega l'accesso alle risorse Amazon S3 al di fuori del tuo account tranne AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) di esempio illustra come negare l'accesso in base all'account della risorsa definendo al contempo delle eccezioni per le risorse di proprietà del servizio. Puoi creare una policy simile per limitare l'accesso alle risorse all'interno di un'unita organizzativa (OU) utilizzando la chiave `aws:ResourceOrgPaths`, tenendo conto delle risorse di proprietà del servizio.

Utilizza questo esempio di policy come modello per creare le tue policy personalizzate. Per ulteriori informazioni, consulta la [documentazione](https://docs.aws.amazon.com/index.html) del servizio.

### aws:ResourceOrgID
<a name="condition-keys-resourceorgid"></a>

Utilizza questa chiave per confrontare l'identificatore dell'organizzazione AWS Organizations a cui appartiene la risorsa richiesta con l'identificatore specificato nella politica.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta solo se l'account che possiede la risorsa è membro di un'organizzazione. Questa chiave della condizione globale non supporta le seguenti operazioni:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store: tutte le operazioni
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` chiamate su un bus di eventi in un altro account, se tale bus di eventi è stato configurato come EventBridge destinazione tra più account prima del 2 marzo 2023. Per ulteriori informazioni, consulta [Concedere le autorizzazioni per consentire eventi da altri AWS account](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) nella *Amazon EventBridge User Guide*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  +  OpenSearch Servizio Amazon
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

**Nota**  
Per ulteriori considerazioni sulle operazioni non supportate di cui sopra, consulta il repository di [esempi di policy del perimetro di dati](https://github.com/aws-samples/data-perimeter-policy-examples).

Questa chiave globale restituisce l'ID dell'organizzazione della risorsa per una determinata richiesta. Consente di creare regole che si applicano a tutte le risorse di un'organizzazione che sono specificate nell'elemento `Resource` di una [policy basata sull'identità](access_policies_identity-vs-resource.md). È possibile specificare l'[ID organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) nell'elemento condizionale. Quando aggiungi e rimuovi degli account, le policy che includono la chiave `aws:ResourceOrgID` includono automaticamente anche gli account corretti e non necessitano dell'aggiornamento manuale.

Ad esempio, la seguente policy impedisce al principale di aggiungere oggetti alla risorsa `policy-genius-dev`, a meno che la risorsa Amazon S3 non appartenga alla stessa organizzazione del principale che effettua la richiesta.

**Importante**  
Questa policy non consente alcuna operazione. Utilizza invece l'effetto `Deny`, che nega esplicitamente l'accesso a tutte le risorse elencate nell'istruzione che non appartengono all'account elencato. Utilizza questa policy in combinazione con altre policy che consentono l'accesso a risorse specifiche.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization",
        "Effect": "Deny",
        "Action": "s3:PutObject",
        "Resource": "arn:aws:s3:::policy-genius-dev/*",
        "Condition": {
            "StringNotEquals": {
                "aws:ResourceOrgID": "${aws:PrincipalOrgID}"
            }
        }
    }
}
```

------

**Nota**  
Alcuni Servizi AWS richiedono l'accesso a risorse AWS di proprietà ospitate in un altro Account AWS. L'utilizzo di `aws:ResourceOrgID` nelle tue policy basate sull'identità potrebbe influire sulla capacità della tua identità di accedere a queste risorse.

Alcuni AWS servizi, ad esempio AWS Data Exchange, si basano sull'accesso a risorse esterne all'utente Account AWS per le normali operazioni. Se usi la chiave `aws:ResourceOrgID` nelle tue policy, includi istruzioni aggiuntive per creare delle esenzioni per tali servizi. La policy [AWS: nega l'accesso alle risorse Amazon S3 al di fuori del tuo account tranne AWS Data Exchange](reference_policies_examples_resource_account_data_exch.md) di esempio illustra come negare l'accesso in base all'account della risorsa definendo al contempo delle eccezioni per le risorse di proprietà del servizio. Puoi creare una policy simile per limitare l'accesso alle risorse all'interno dell'organizzazione utilizzando la chiave `aws:ResourceOrgID`, tenendo conto delle risorse di proprietà del servizio.

Utilizza questo esempio di policy come modello per creare le tue policy personalizzate. Per ulteriori informazioni, consulta la [documentazione](https://docs.aws.amazon.com/index.html) del servizio.

Nel seguente video, scopri ulteriori informazioni su come utilizzare la chiave di condizione `aws:ResourceOrgID` in una policy.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cWVW0xAiWwc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cWVW0xAiWwc)


### aws:ResourceTag/*tag-key*
<a name="condition-keys-resourcetag"></a>

Utilizzare questa chiave per confrontare la coppia chiave-valore del tag specificata nella policy con la coppia chiave-valore associata alla risorsa. Ad esempio, puoi richiedere che l'accesso a una risorsa sia consentito solo se la risorsa dispone di una chiave di tag `"Dept"` collegata al valore `"Marketing"`. Per ulteriori informazioni, consulta [Controllo dell'accesso alle AWS risorse](access_tags.md#access_tags_control-resources).
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta quando la risorsa richiesta dispone già di tag collegati o nelle richieste che creano una risorsa con un tag collegato. Questa chiave viene restituita solo per le risorse che [supportano l'autorizzazione basata sui tag](reference_aws-services-that-work-with-iam.md). È presente una chiave di contesto per ogni coppia chiave-valore del tag.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

Questa chiave di contesto è formattata `"aws:ResourceTag/tag-key":"tag-value"` dove *tag-key* e *tag-value* è una coppia chiave-valore di tag. Le chiavi dei tag non prevedono una distinzione tra lettere maiuscole e minuscole. Questo significa che se specifichi `"aws:ResourceTag/TagKey1": "Value1"` nell'elemento condizione della policy, la condizione corrisponderà a una chiave di tag della risorsa denominata `TagKey1` o `tagkey1`, ma non a entrambe. I valori in queste key/value coppie di tag fanno distinzione tra maiuscole e minuscole. Questo significa che se specifichi `"aws:ResourceTag/TagKey1": "Production"` nell’elemento condizione della policy, la condizione corrisponderà a un valore di tag della risorsa denominato `Production`, ma non corrisponderà a `production` o `PRODUCTION`.

Per esempi sull'utilizzo della chiave `aws:ResourceTag` per controllare l'accesso alle risorse IAM, consulta [Controllo dell'accesso alle AWS risorse](access_tags.md#access_tags_control-resources).

Per esempi di utilizzo della `aws:ResourceTag` chiave per controllare l'accesso ad altre AWS risorse, consulta. [Controllo dell'accesso alle AWS risorse tramite tag](access_tags.md)

Per un'esercitazione sull'utilizzo della chiave di condizione `aws:ResourceTag` per il controllo degli accessi basato su attributi (ABAC), consulta [Tutorial IAM: definisci le autorizzazioni per accedere alle AWS risorse in base ai tag](tutorial_attribute-based-access-control.md).

## Proprietà della richiesta
<a name="condition-keys-request-properties"></a>

Utilizzare le chiavi di condizione seguenti per confrontare i dettagli della richiesta stessa e il contenuto della richiesta con le proprietà della richiesta specificate nella policy. 

### aws:CalledVia
<a name="condition-keys-calledvia"></a>

Utilizza questa chiave per confrontare i servizi nella policy con i servizi che hanno effettuato richieste per conto del principale IAM (utente o ruolo). Quando un principale effettua una richiesta a un AWS servizio, tale servizio potrebbe utilizzare le credenziali del principale per effettuare richieste successive ad altri servizi. Quando la richiesta viene effettuata utilizzando le sessioni di accesso inoltrato (FAS), questa chiave viene impostata con il valore del principale del servizio. La chiave `aws:CalledVia` contiene un elenco ordinato di ciascun servizio nella catena che ha effettuato le richieste per conto dell'entità principale.

Per ulteriori informazioni, consulta [Inoltro delle sessioni di accesso](access_forward_access_sessions.md).
+ **Disponibilità**: questa chiave è presente nella richiesta quando un servizio che supporta `aws:CalledVia` utilizza le credenziali di un principale IAM per effettuare una richiesta a un altro servizio. Questa chiave non è presente se il servizio utilizza un [ruolo di servizio oppure un ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) per effettuare una chiamata per conto del principale. Questa chiave non è presente anche quando il principale effettua la chiamata direttamente.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore

Per utilizzare la chiave di `aws:CalledVia` condizione in una politica, è necessario fornire i principali del servizio per consentire o rifiutare le richieste di servizio. AWS Ad esempio, puoi usarlo AWS CloudFormation per leggere e scrivere da una tabella Amazon DynamoDB. DynamoDB utilizza quindi la crittografia fornita AWS Key Management Service da ().AWS KMS

Per consentire o negare l'accesso quando *qualsiasi* servizio effettua una richiesta utilizzando le credenziali del principale, utilizzare la chiave di condizione `aws:ViaAWSService`. Questa chiave di condizione supporta i AWS servizi.

La chiave `aws:CalledVia` è una [chiave multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md). Tuttavia, non è possibile applicare l'ordine utilizzando questa chiave in una condizione. Usando l'esempio precedente, l'**utente 1** effettua una richiesta a CloudFormation, che chiama DynamoDB, che a sua volta chiama AWS KMS. Si tratta di tre richieste distinte. L'ultima chiamata a AWS KMS viene eseguita dall'utente 1 *tramite* CloudFormation e poi DynamoDB. 

![\[Esempio di utilizzo di aws: CalledVia\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/condition-key-calledvia-example-diagram.png)


In questo caso, la chiave `aws:CalledVia` nel contesto della richiesta include `cloudformation.amazonaws.com` e `dynamodb.amazonaws.com`, in tale ordine. Se sei interessato al solo fatto che la chiamata sia stata effettuata tramite DynamoDB in qualche punto nella catena di richieste, puoi utilizzare questa chiave di condizione nella policy. 

Ad esempio, la seguente politica consente di gestire la AWS KMS chiave denominata`my-example-key`, ma solo se DynamoDB è uno dei servizi richiedenti. L'operatore di condizione `ForAnyValue:StringEquals` assicura che DynamoDB sia uno dei servizi a effettuare chiamate. Se il principale effettua la chiamata AWS KMS direttamente, la condizione restituisce `false` e la richiesta non è consentita da questa policy.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaDynamodb",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "dynamodb.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Se si desidera stabilire quale servizio effettua la prima o l'ultima chiamata nella catena, è possibile utilizzare le chiavi `aws:CalledViaFirst` e `aws:CalledViaLast`. Ad esempio, la seguente politica consente di gestire la chiave denominata in. `my-example-key` AWS KMS Queste AWS KMS operazioni sono consentite solo se nella catena sono state incluse più richieste. La prima richiesta deve essere fatta via CloudFormation e l'ultima via DynamoDB. Se altri servizi fanno richieste nel mezzo della catena, l'operazione è ancora consentita.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KmsActionsIfCalledViaChain",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaFirst": "cloudformation.amazonaws.com",
                    "aws:CalledViaLast": "dynamodb.amazonaws.com"
                }
            }
        }
    ]
}
```

------

Le chiavi `aws:CalledViaFirst` e `aws:CalledViaLast` sono presenti nella richiesta quando un servizio utilizza le credenziali di un'entità IAM per chiamare un altro servizio. Indicano il primo e l'ultimo servizio che ha effettuato chiamate nella catena di richieste. Ad esempio, supponiamo che CloudFormation chiami un altro servizio denominato`X Service`, che chiama DynamoDB, che poi chiama. AWS KMS L'ultima chiamata a AWS KMS viene eseguita da `User 1` *via* CloudFormation`X Service`, then e quindi da DynamoDB. È stato chiamato inizialmente tramite CloudFormation e l'ultimo chiamato tramite DynamoDB. 

![\[Esempio di utilizzo di aws: CalledViaFirst e aws: CalledViaLast\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/condition-key-calledviafirstlast-example-diagram.png)


### aws:CalledViaFirst
<a name="condition-keys-calledviafirst"></a>

Utilizza questa chiave per confrontare i servizi nella policy con il ***primo servizio*** che ha effettuato una richiesta per conto del principale IAM (utente o ruolo). Per ulteriori informazioni, consulta `aws:CalledVia`.
+ **Disponibilità**: questa chiave è presente nella richiesta quando un servizio utilizza le credenziali di un principale IAM per effettuare almeno un'altra richiesta a un servizio diverso. Questa chiave non è presente se il servizio utilizza un [ruolo di servizio oppure un ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) per effettuare una chiamata per conto del principale. Questa chiave non è presente anche quando il principale effettua la chiamata direttamente.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

### aws:CalledViaLast
<a name="condition-keys-calledvialast"></a>

Utilizza questa chiave per confrontare i servizi nella policy con l'*ultimo servizio* che ha effettuato una richiesta per conto del principale IAM (utente o ruolo). Per ulteriori informazioni, consulta `aws:CalledVia`.
+ **Disponibilità**: questa chiave è presente nella richiesta quando un servizio utilizza le credenziali di un principale IAM per effettuare almeno un'altra richiesta a un servizio diverso. Questa chiave non è presente se il servizio utilizza un [ruolo di servizio oppure un ruolo collegato ai servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) per effettuare una chiamata per conto del principale. Questa chiave non è presente anche quando il principale effettua la chiamata direttamente.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

### aws:ViaAWSService
<a name="condition-keys-viaawsservice"></a>

Usa questa chiave per verificare se un invia Servizio AWS una richiesta a un altro servizio per tuo conto utilizzando [sessioni di accesso inoltrato (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html).

La chiave di contesto della richiesta restituisce `true` quando un servizio utilizza sessioni di accesso in avanti per effettuare una richiesta per conto del principale IAM originale. La chiave di contesto della richiesta restituisce anche `false` quando il principale effettua direttamente la chiamata.
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta.
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

### aws:CalledViaAWSMCP
<a name="condition-keys-calledviaawasmcp"></a>

Utilizza questa chiave per confrontare i servizi inclusi nella policy con i servizi AWS MCP che hanno effettuato le richieste per conto del principale IAM (utente o ruolo). Quando un principale effettua una richiesta a un servizio AWS MCP, tale servizio utilizza le credenziali del principale per effettuare richieste successive ad altri servizi. Quando la richiesta viene effettuata utilizzando un servizio AWS MCP, questa chiave viene impostata con il valore dell'entità del servizio. La `aws:CalledViaAWSMCP` chiave contiene il nome principale del servizio MCP che ha effettuato le richieste per conto del principale.
+ **Disponibilità**: questa chiave è presente nella richiesta quando un servizio AWS MCP utilizza le credenziali di un principale IAM per effettuare una richiesta a un servizio. AWS Questa chiave non è presente anche quando il principale effettua la chiamata direttamente.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave di condizione per consentire o negare l'accesso in base allo specifico server MCP che ha avviato la richiesta. Ad esempio, la seguente politica nega le operazioni di eliminazione sensibili quando vengono avviate tramite un server MCP specifico:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaSpecificMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:CalledViaAWSMCP": "aws-mcp.amazonaws.com"
                }
            }
        }
    ]
}
```

### aws:ViaAWSMCPService
<a name="condition-keys-viaawsmcpservice"></a>

Utilizzate questa chiave per verificare se un servizio AWS MCP effettua una richiesta a un altro AWS servizio per vostro conto utilizzando sessioni di accesso inoltrato (FAS). La chiave di contesto della richiesta `true` viene restituita quando un servizio AWS MCP inoltra una richiesta a un AWS servizio per conto del principale IAM originale. La chiave di contesto della richiesta restituisce anche `false` quando il principale effettua direttamente la chiamata.
+ **Disponibilità**: questa chiave viene inclusa nel contesto della richiesta quando un server AWS MCP effettua una richiesta a un AWS servizio downstream per conto di un principale IAM.
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave per limitare azioni specifiche quando vengono eseguite tramite server MCP. Ad esempio, la seguente politica nega le operazioni di eliminazione sensibili se avviate tramite qualsiasi AWS server MCP:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenySensitiveActionsViaMCP",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "dynamodb:DeleteTable"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:ViaAWSMCPService": "true"
                }
            }
        }
    ]
}
```

### aws:CurrentTime
<a name="condition-keys-currenttime"></a>

Utilizzare questa chiave per confrontare la data e l'ora della richiesta con la data e l'ora specificate nella policy. Per visualizzare una policy di esempio che utilizza la chiave di condizione, consulta [AWS: consente l'accesso in base alla data e all'ora](reference_policies_examples_aws-dates.md).
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta.
+ **Tipo di dati**: [data](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Tipo di valore**: valore singolo

### aws:EpochTime
<a name="condition-keys-epochtime"></a>

Utilizzare questa chiave per confrontare la data e l'ora della richiesta in formato epoch o ora Unix con il valore specificato nella policy. Questa chiave accetta anche il numero di secondi dal 1 gennaio 1970. 
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta.
+ **Tipo di dati**: [data](reference_policies_elements_condition_operators.md#Conditions_Date), [numerico](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Tipo di valore**: valore singolo

### aws:referer
<a name="condition-keys-referer"></a>

Utilizzare questa chiave per confrontare il referrer della richiesta nel browser client con il referrer specificato nella policy. Il valore del contesto della richiesta `aws:referer` viene fornito dal chiamante in un'intestazione HTTP. L'intestazione `Referer` viene inclusa in una richiesta del browser Web quando si seleziona un link in una pagina Web. L'intestazione `Referer` contiene l'URL della pagina Web in cui è stato selezionato il link.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo se la richiesta alla AWS risorsa è stata richiamata mediante un collegamento dall'URL di una pagina Web nel browser. Questa chiave non è inclusa per le richieste a livello di programmazione perché non utilizza un link del browser per accedere alla risorsa AWS .
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

Ad esempio, è possibile accedere a un oggetto Amazon S3 direttamente utilizzando un URL o utilizzando l'invocazione API diretta. Per ulteriori informazioni, consulta [Operazioni delle API Amazon S3 direttamente tramite un browser Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-4). Quando si accede a un oggetto Amazon S3 da un URL presente in una pagina Web, l'URL della pagina Web di origine viene utilizzato in `aws:referer`. Quando si accede a un oggetto Amazon S3 digitando l'URL nel browser, `aws:referer` non è presente. Quando si richiama direttamente l'API, `aws:referer` non è presente. È possibile utilizzare la chiave di condizione `aws:referer` in una policy per autorizzare le richieste effettuate da un referente specifico, ad esempio un link su una pagina Web nel dominio dell'azienda. 

**avvertimento**  
Questa chiave deve essere utilizzata con attenzione. È pericoloso includere un valore dell'intestazione del referrer pubblicamente noto. Parti non autorizzate possono utilizzare browser modificati o personalizzati per fornire qualsiasi valore `aws:referer` scelto. Di conseguenza, non `aws:referer` deve essere utilizzato per impedire a parti non autorizzate di effettuare richieste dirette. AWS È disponibile solo per consentire ai clienti di proteggere i propri contenuti digitali, come i contenuti memorizzati su Amazon S3, da riferimenti su siti di terze parti non autorizzate.

### aws:RequestedRegion
<a name="condition-keys-requestedregion"></a>

Utilizzate questa chiave per confrontare la AWS regione chiamata nella richiesta con la regione specificata nella politica. È possibile utilizzare questa chiave di condizione globale per controllare quali regioni possono essere richieste. Per visualizzare le AWS regioni per ogni servizio, consulta [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in. *Riferimenti generali di Amazon Web Services*
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

I servizi globali, ad esempio IAM, dispongono di un unico endpoint. Poiché questo endpoint si trova fisicamente nella regione Stati Uniti orientali (Virginia settentrionale), le chiamate IAM vengono sempre effettuate alla regione us-east-1. Ad esempio, se crei una policy che nega l'accesso a tutti i servizi qualora la regione richiesta non fosse us-west-2 allora le chiamate IAM non andranno mai a buon fine. Per visualizzare un esempio di come risolvere questo problema, vedi [NotAction con](reference_policies_elements_notaction.md) Deny. 

**Nota**  
La chiave di condizione `aws:RequestedRegion` consente di controllare quale endpoint di un servizio è richiamato ma non controlla l'impatto dell'operazione. Alcuni servizi hanno impatti su più regioni.  
Ad esempio, Amazon S3 dispone di operazioni API che si estendono a diverse regioni.  
È possibile richiamare `s3:PutBucketReplication` in una regione (che è interessata dalla chiave di condizione `aws:RequestedRegion`) e altre regioni vengono interessate in base alle impostazioni di configurazione delle repliche.
Puoi richiamare `s3:CreateBucket`per creare un bucket in un'altra regione e utilizzare la `s3:LocationConstraint`chiave di condizione per controllare le regioni applicabili.

È possibile utilizzare questa chiave di contesto per limitare l'accesso ai AWS servizi all'interno di un determinato insieme di regioni. Ad esempio, la seguente policy consente a un utente di visualizzare tutte le istanze Amazon EC2 nella Console di gestione AWS. Tuttavia consente loro di modificare solo le istanze in Irlanda (eu-west-1), a Londra (eu-west-2) o Parigi (eu-west-3).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "InstanceConsoleReadOnly",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:Export*",
                "ec2:Get*",
                "ec2:Search*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "InstanceWriteRegionRestricted",
            "Effect": "Allow",
            "Action": [
                "ec2:Associate*",
                "ec2:Import*",
                "ec2:Modify*",
                "ec2:Monitor*",
                "ec2:Reset*",
                "ec2:Run*",
                "ec2:Start*",
                "ec2:Stop*",
                "ec2:Terminate*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "eu-west-1",
                        "eu-west-2",
                        "eu-west-3"
                    ]
                }
            }
        }
    ]
}
```

------

### aws:RequestTag/*tag-key*
<a name="condition-keys-requesttag"></a>

Utilizzare questa chiave per confrontare la coppia chiave-valore del tag passata nella richiesta con la coppia del tag specificata nella policy. Ad esempio, è possibile controllare che la richiesta includa la chiave del tag `"Dept"` e che abbia il valore `"Accounting"`. Per ulteriori informazioni, consulta [Controllo dell'accesso durante AWS le richieste](access_tags.md#access_tags_control-requests).
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta quando le coppie chiave-valore dei tag vengono passate nella richiesta. Quando più tag vengono passati nella richiesta, è presente una chiave di contesto per ogni coppia chiave-valore dei tag.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

Questa chiave di contesto è formattata `"aws:RequestTag/tag-key":"tag-value"` dove *tag-key* e *tag-value* è una coppia di tag chiave-valore. Le chiavi dei tag non prevedono una distinzione tra lettere maiuscole e minuscole. Questo significa che se specifichi `"aws:RequestTag/TagKey1": "Value1"` nell'elemento condizione della policy, la condizione corrisponderà a una chiave di tag della richiesta denominata `TagKey1` o `tagkey1`, ma non a entrambi. I valori in queste key/value coppie di tag fanno distinzione tra maiuscole e minuscole. Questo significa che se specifichi `"aws:RequestTag/TagKey1": "Production"` nell’elemento condizione della policy, la condizione corrisponderà a un valore di tag della richiesta denominato `Production`, ma non corrisponderà a `production` o `PRODUCTION`.

Questo esempio mostra che, sebbene la chiave abbia un singolo valore, è comunque possibile utilizzare più coppie chiave-valore in una richiesta se le chiavi sono diverse.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2::111122223333:instance/*",
    "Condition": {
      "StringEquals": {
        "aws:RequestTag/environment": [
          "preprod",
          "production"
        ],
        "aws:RequestTag/team": [
          "engineering"
        ]
      }
    }
  }
}
```

------

### aws:TagKeys
<a name="condition-keys-tagkeys"></a>

Utilizzare questa chiave per confrontare le chiavi dei tag in una richiesta con quelle specificate nella policy. Nell'utilizzo delle policy per controllare gli accessi tramite tag, è consigliabile utilizzare la chiave di condizione `aws:TagKeys` per definire le chiavi di tag ammesse. Per esempi di policy e ulteriori informazioni, consultare [Controllo dell'accesso in base alle chiavi di tag](access_tags.md#access_tags_control-tag-keys)
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta se l'operazione supporta il passaggio di tag nella richiesta.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore

Questa chiave di contesto è formattata `"aws:TagKeys":"tag-key"` dove *tag-key* è presente un elenco di chiavi di tag senza valori (ad esempio,). `["Dept","Cost-Center"]`

Poiché è possibile includere più coppie chiave-valore dei tag in una richiesta, il contenuto della richiesta potrebbe essere una richiesta [multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md). In questo caso, devi usare gli operatori su set `ForAllValues` o `ForAnyValue`. Per ulteriori informazioni, consulta [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Alcuni servizi supportano il tagging con operazioni sulle risorse, come la creazione, la modifica o l'eliminazione di una risorsa. Per consentire il tagging e le operazioni come chiamata singola, è necessario creare una policy che comprende le operazioni di tagging e di modifica della risorsa. È quindi possibile utilizzare la chiave di condizione `aws:TagKeys` per implementare nella richiesta specifiche chiavi di tag. Ad esempio, per limitare i tag quando un utente crea uno snapshot Amazon EC2, è necessario includere nella policy l'operazione di creazione `ec2:CreateSnapshot` ***e*** l'operazione di tagging `ec2:CreateTags`. Per visualizzare una policy per questo scenario che utilizza `aws:TagKeys`, consulta [Creazione di uno snapshot con tag](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-creating-snapshot-with-tags) nella *Guida per l'utente di Amazon EC2*. 

### aws:SecureTransport
<a name="condition-keys-securetransport"></a>

Utilizzare questa chiave per verificare se la richiesta è stata inviata utilizzando TLS. Il contesto della richiesta restituisce `true` o `false`. In una policy, è possibile consentire operazioni specifiche solo se la richiesta viene inviata tramite TLS.
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta.
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

**Nota**  
Quando si Servizi AWS effettuano chiamate ad altri Servizi AWS per conto dell'utente (service-to-service chiamate), viene oscurato un determinato contesto di autorizzazione specifico della rete. Se la tua politica utilizza questa chiave di condizione con le `Deny` istruzioni, i principali potrebbero essere bloccati Servizio AWS involontariamente. Per consentire ai Servizi AWS di funzionare correttamente mantenendo i requisiti di sicurezza, escludi i principali del servizio dalle istruzioni `Deny` aggiungendo la chiave di condizione `aws:PrincipalIsAWSService` con il valore `false`. Esempio:  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Questa politica nega l'accesso alle operazioni di Amazon S3 quando non viene utilizzato HTTPS `aws:SecureTransport` (è falso), ma solo per i principali non AWS servizi. Ciò garantisce che le restrizioni condizionali si applichino a tutti i principali ad eccezione dei principali. Servizio AWS 

### aws:SourceAccount
<a name="condition-keys-sourceaccount"></a>

Utilizzate questa chiave per confrontare l'ID account della risorsa che effettua una service-to-service richiesta con l'ID dell'account specificato nella politica, ma solo quando la richiesta viene effettuata da un AWS responsabile del servizio.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un responsabile del [AWS servizio per](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) conto di una risorsa per la quale la configurazione ha attivato la service-to-service richiesta. Il servizio chiamante deve passare l'ID account della risorsa originale al servizio chiamato.
**Nota**  
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Consultate la documentazione in uso per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari confusi tra servizi. Servizi AWS   
![\[leggi: SourceAccount\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/sourceAccount.png)
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave di condizione per garantire che un servizio di chiamata possa accedere alla risorsa solo quando la richiesta proviene da un account specifico. Ad esempio, puoi allegare la seguente policy di controllo delle risorse (RCP) per negare le richieste dei principali del servizio nei confronti dei bucket Amazon S3, a meno che non siano state attivate da una risorsa nell'account specificato. Questa policy applica il controllo solo sulle richieste dei principali del servizio (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) che hanno la chiave `aws:SourceAccount` (`"Null": {"aws:SourceAccount": "false"}`), in modo che le integrazioni di servizi che non richiedono l'uso di questa chiave e le chiamate da parte dei principali non vengano influenzate. Se la chiave `aws:SourceAccount` è presente nel contesto della richiesta, la condizione `Null` verrà valutata come uguale a `true`, determinando l'applicazione della chiave `aws:SourceAccount`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceAccount": "111122223333"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

Nelle politiche basate sulle risorse in cui il principale è un Servizio AWS principale, utilizza la chiave per limitare le autorizzazioni concesse al servizio. Ad esempio, quando un bucket Amazon S3 è configurato per inviare notifiche a un argomento Amazon SNS, il servizio Amazon S3 richiama l'operazione API `sns:Publish` per tutti gli eventi configurati. Nella policy di argomento che autorizza l'operazione `sns:Publish`, imposta il valore della chiave di condizione sull'ID account del bucket Amazon S3.

### aws:SourceArn
<a name="condition-keys-sourcearn"></a>

Usa questa chiave per confrontare l'[Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns) della risorsa che effettua una service-to-service richiesta con l'ARN specificato nella policy, ma solo quando la richiesta viene effettuata da un responsabile del servizio. AWS Quando l'ARN d'origine include l'ID account, non è necessario utilizzare `aws:SourceAccount` con `aws:SourceArn`.

Questa chiave non funziona con l'ARN del principale che effettua la richiesta. Utilizza invece `aws:PrincipalArn`.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un responsabile del [AWS servizio per conto di](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) una risorsa per la quale la configurazione ha attivato la richiesta. service-to-service Il servizio chiamante passa l'ARN della risorsa originale al servizio chiamato.
**Nota**  
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Consultate la documentazione in uso per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari confusi tra servizi. Servizi AWS   
![\[leggi: SourceArn\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/sourceArn.png)
+ **Tipo di dati**: ARN

  AWS consiglia di utilizzare operatori [ARN anziché operatori](reference_policies_elements_condition_operators.md#Conditions_ARN) [stringa](reference_policies_elements_condition_operators.md#Conditions_String) durante il confronto. ARNs
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave di condizione per garantire che un servizio di chiamata possa accedere alla risorsa solo quando la richiesta proviene da una risorsa specifica. Quando utilizzi una politica basata sulle risorse con un Servizio AWS principale come principale`Principal`, imposta il valore di questa chiave di condizione sull'ARN della risorsa a cui desideri limitare l'accesso. Ad esempio, quando un bucket Amazon S3 è configurato per inviare notifiche a un argomento Amazon SNS, il servizio Amazon S3 richiama l'operazione API `sns:Publish` per tutti gli eventi configurati. Nella policy di argomento che consente l'operazione `sns:Publish`, imposta il valore della chiave di condizione sull'ARN del bucket Amazon S3. Per i suggerimenti su quando utilizzare questa chiave di condizione nelle policy basate sulle risorse, consulta la documentazione per i Servizi AWS che stai utilizzando.

### aws:SourceOrgID
<a name="condition-keys-sourceorgid"></a>

Utilizza questa chiave per confrontare l'[ID dell'organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) della risorsa che effettua una service-to-service richiesta con l'ID dell'organizzazione specificato nella politica, ma solo quando la richiesta viene effettuata da un responsabile del AWS servizio. Quando aggiungi e rimuovi gli account da un'organizzazione in AWS Organizations, le policy che includono la chiave `aws:SourceOrgID` includono automaticamente anche gli account corretti e non necessitano dell'aggiornamento manuale.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un [principale del servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) per conto di una risorsa di proprietà di un account membro di un'organizzazione. Il servizio chiamante passa l'ID dell'organizzazione della risorsa originale al servizio chiamato.
**Nota**  
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari Servizi AWS confusi tra servizi, consultate la documentazione utilizzata.  
![\[Leggi: ID SourceOrg\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/sourceOrgID.png)
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

È possibile utilizzare questa chiave di condizione per garantire che un servizio di chiamata possa accedere alla risorsa solo quando la richiesta proviene da una organizzazione specifica. Ad esempio, puoi allegare la seguente politica di controllo delle risorse (RCP) per negare le richieste dei responsabili del servizio nei confronti dei bucket Amazon S3, a meno che non siano state attivate da una risorsa dell'organizzazione specificata. AWS Questa policy applica il controllo solo sulle richieste dei principali del servizio (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) che hanno la chiave `aws:SourceAccount` (`"Null": {"aws:SourceAccount": "false"}`), in modo che le integrazioni di servizi che non richiedono l'uso di questa chiave e le chiamate da parte dei principali non vengano influenzate. Se la chiave `aws:SourceAccount` è presente nel contesto della richiesta, la condizione `Null` verrà valutata come uguale a `true`, determinando l'applicazione della chiave `aws:SourceOrgID`. Utilizziamo invece `aws:SourceAccount` al posto di `aws:SourceOrgID` nell'operatore di condizione `Null` in modo che il controllo si applichi ancora se la richiesta proviene da un account che non appartiene a un'organizzazione.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtection",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceOrgID": "o-xxxxxxxxxx"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

### aws:SourceOrgPaths
<a name="condition-keys-sourceorgpaths"></a>

Utilizza questa chiave per confrontare il AWS Organizations percorso della risorsa che effettua una service-to-service richiesta con il percorso dell'organizzazione specificato nella policy, ma solo quando la richiesta viene effettuata da un responsabile del servizio. AWS Un AWS Organizations percorso è una rappresentazione testuale della struttura di un' AWS Organizations entità. Per ulteriori informazioni sull'utilizzo e la conoscenza dei percorsi, consulta [Comprendere il percorso dell'entità AWS Organizations](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un [principale del servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) per conto di una risorsa di proprietà di un account membro di un'organizzazione. Il servizio chiamante passa il percorso dell'organizzazione della risorsa originale al servizio chiamato.
**Nota**  
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Consultate la documentazione in uso per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari confusi tra diversi servizi. Servizi AWS   
![\[leggi: SourceOrgPaths\]](http://docs.aws.amazon.com/it_it/IAM/latest/UserGuide/images/sourceOrgPaths.png)
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String) (elenco)
+ **Tipo di valore**: multivalore

Utilizza questa chiave di condizione per garantire che un servizio chiamante possa accedere alla risorsa solo quando la richiesta proviene da una specifica unità organizzativa (UO) in AWS Organizations.

Analogamente a `aws:SourceOrgID`, per evitare l'impatto sulle integrazioni di servizi che non richiedono l'uso di questa chiave, utilizza l'operatore di condizione `Null` con la chiave di condizione `aws:SourceAccount` in modo che il controllo continui ad essere applicato se la richiesta proviene da un account che non appartiene a un'organizzazione.

```
{
      "Condition": {
        "ForAllValues:StringNotLikeIfExists": {
            "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
}
```

`aws:SourceOrgPaths` è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. È necessario utilizzare gli operatori di insieme `ForAnyValue` o `ForAllValues` con gli [operatori di condizione di stringa](reference_policies_elements_condition_operators.md#Conditions_String) quando si utilizza questa chiave. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare [Operatori dell’insieme per le chiavi di contesto multivalore](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:UserAgent
<a name="condition-keys-useragent"></a>

Utilizzare questa chiave per confrontare l'applicazione client del richiedente con l'applicazione specificata nella policy.
+ **Disponibilità**: questa chiave è sempre inclusa nel contesto della richiesta.
+ **Tipo di dati**: [stringa](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Tipo di valore**: valore singolo

**avvertimento**  
Questa chiave deve essere utilizzata con attenzione. Poiché il valore `aws:UserAgent` viene fornito dall'intermediario in un'intestazione HTTP, le parti non autorizzate possono utilizzare browser modificati o personalizzati per fornire qualsiasi valore `aws:UserAgent` da essi scelto. Di conseguenza, non `aws:UserAgent` deve essere utilizzato per impedire a parti non autorizzate di effettuare AWS richieste dirette. Puoi utilizzarlo per consentire solo applicazioni client specifiche e solo dopo il test della policy.

### aws:IsMcpServiceAction
<a name="condition-keys-ismcpserviceaction"></a>

Utilizzate questa chiave per verificare che l'azione da autorizzare sia un'azione del servizio MCP. Questa chiave non si riferisce alle azioni intraprese dal servizio MCP su altri AWS servizi.
+ **Disponibilità**: questa chiave è inclusa nel contesto della richiesta e impostata su True solo quando il servizio MCP autorizza un'azione del servizio MCP.
+ **Tipo di dati**: [booleano](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Tipo di valore**: valore singolo

## Altre chiavi di condizione cross-service
<a name="condition-keys-other"></a>

AWS STS [supporta chiavi di condizione di [federazione basate su SAML e chiavi di condizione](reference_policies_iam-condition-keys.md#condition-keys-saml) tra servizi per la federazione OIDC.](reference_policies_iam-condition-keys.md#condition-keys-wif) Queste chiavi sono disponibili quando un utente federato tramite OIDC o SAML esegue operazioni in altri servizi. AWS 

# chiavi contestuali IAM e AWS STS condition
<a name="reference_policies_iam-condition-keys"></a>

Puoi utilizzare l'`Condition`elemento in una policy JSON per testare il valore delle chiavi incluse nel contesto di richiesta di tutte le AWS richieste. Queste chiavi forniscono informazioni sulla richiesta in sé o sulle risorse a cui la richiesta fa riferimento. È possibile controllare che le chiavi abbiano determinati valori prima di consentire l'operazione richiesta dall'utente. Ciò consente un controllo granulare sulla corrispondenza o meno delle istruzioni della policy JSON rispetto a una richiesta API in ingresso. Per informazioni su come utilizzare l'elemento `Condition` in una policy JSON, consulta [Elementi delle policy JSON IAM: Condition](reference_policies_elements_condition.md).

Questo argomento descrive le chiavi definite e fornite dal servizio IAM (con un `iam:` prefisso) e dal servizio AWS Security Token Service (AWS STS) (con un `sts:` prefisso). Diversi altri AWS servizi forniscono anche chiavi specifiche del servizio che sono rilevanti per le azioni e le risorse definite da quel servizio. Per ulteriori informazioni, consulta [Azioni, risorse e chiavi di condizione per i AWS servizi](reference_policies_actions-resources-contextkeys.html). La documentazione relativa a un servizio che supporta le chiavi di condizione contiene spesso ulteriori informazioni. Ad esempio, per informazioni sulle chiavi che puoi utilizzare nelle policy per le risorse Amazon S3, consulta [Chiavi di policy Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#AvailableKeys-iamV2) nella *Guida per l'utente di Amazon Simple Storage Service*.

**Topics**
+ [Chiavi disponibili per IAM](#available-keys-for-iam)
+ [Chiavi disponibili per la federazione AWS OIDC](#condition-keys-wif)
+ [Chiavi disponibili per la federazione basata su SAML AWS STS](#condition-keys-saml)
+ [Chiavi contestuali di federazione basate su SAML tra servizi AWS STS](#cross-condition-keys-saml)
+ [Chiavi disponibili per AWS STS](#condition-keys-sts)

## Chiavi disponibili per IAM
<a name="available-keys-for-iam"></a>

È possibile utilizzare le seguenti chiavi di condizione nelle policy che controllano l'accesso alle risorse IAM: 

**Io sono: AssociatedResourceArn**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Specifica l'ARN della risorsa a cui verrà associato questo ruolo al servizio di destinazione. La risorsa in genere appartiene al servizio a cui l'entità sta passando il ruolo. A volte, la risorsa potrebbe appartenere a un terzo servizio. Ad esempio, potresti passare un ruolo a Amazon EC2 Auto Scaling che può essere utilizzato in un'istanza di Amazon EC2. In questo caso, la condizione corrisponderebbe all'ARN dell'istanza Amazon EC2.   
Questa chiave di condizione si applica solo all'[PassRole](id_roles_use_passrole.md)azione in una politica. Non può essere usata per limitare altre operazioni.   
Quando si utilizza la `iam:AssociatedResourceArn` condizione in una politica per limitare l'[PassRole](id_roles_use_passrole.md)azione, si applicano considerazioni speciali se la politica è destinata a definire l'accesso all'[AddRoleToInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html)azione. In questo caso, non è possibile specificare una regione o un ID istanza nell'ARN dell'istanza EC2. Il valore dell'ARN deve essere `arn:aws:ec2:*:CallerAccountId:instance/*`. L'utilizzo di qualsiasi altro valore dell'ARN può portare a risultati di valutazione imprevisti.
Utilizza questa chiave di condizione in una policy basata su identità per consentire a un'entità di passare un ruolo, ma solo se tale ruolo è associato alla risorsa specificata. Ad esempio, è possibile consentire a un utente o a un ruolo IAM di passare qualsiasi ruolo al servizio Amazon EC2 da utilizzare con istanze nell' Account AWS. L'utente o il ruolo IAM non è autorizzato a passare ruoli ad altri servizi.  

```
{
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "iam:PassedToService": "ec2.amazonaws.com"
        },
        "ArnLike": {
            "iam:AssociatedResourceARN": [
                "arn:aws:ec2:*:111122223333:instance/*"
            ]
        }
    }
}
```
AWS servizi che supportano [iam:](#ck_PassedToService) supportano PassedToService anche questa chiave di condizione.

**iam: AWSService nome**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Speciifica il AWS servizio a cui è associato questo ruolo.  
Questa chiave di condizione è supportata dall’operazione API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html).  
Per informazioni su quali servizi supportano i ruoli collegati ai servizi, consulta la pagina [AWS servizi che funzionano con IAM](reference_aws-services-that-work-with-iam.md) e cerca i servizi per cui è indicato **Sì **nella colonna **Ruolo collegato ai servizi**. Scegliere **Sì** in corrispondenza di un link per visualizzare la documentazione relativa al ruolo collegato al servizio per tale servizio.
In questo esempio, consenti a un’entità di creare un ruolo collegato al servizio utilizzando l’operazione API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) se il nome del servizio è *access-analyzer.amazonaws.com.*    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
       "Effect": "Allow",
       "Action": "iam:CreateServiceLinkedRole",
       "Resource": "*",
       "Condition": {
         "StringLike": {
           "iam:AWSServiceName": "access-analyzer.amazonaws.com"
         }
       }
     }]
 }
```

**iam:FIDO-certification**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica il livello di certificazione FIDO del dispositivo MFA al momento della registrazione di una chiave di sicurezza FIDO. La certificazione del dispositivo viene recuperata dal [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/). Se lo stato o il livello di certificazione della chiave di sicurezza FIDO cambia, questa non verrà aggiornata a meno che la registrazione del dispositivo non sia stata annullata e poi effettuata nuovamente per recuperare le informazioni di certificazione aggiornate.  
Valori possibili di L1, L1plus, L2, L2plus, L3, L3plus  
In questo esempio, registri una chiave di sicurezza e recuperi la certificazione FIDO Level 1 plus per il tuo dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-certification": "L1plus"
                }
            }
        }
    ]
                  
 }
```

**iam:FIDO-FIPS-140-2-certification**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica il livello di certificazione di convalida FIPS-140-2 del dispositivo MFA al momento della registrazione di una chiave di sicurezza FIDO. La certificazione del dispositivo viene recuperata dal [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/). Se lo stato o il livello di certificazione della chiave di sicurezza FIDO cambia, questa non verrà aggiornata a meno che la registrazione del dispositivo non sia stata annullata e poi effettuata nuovamente per recuperare le informazioni di certificazione aggiornate.  
Valori possibili di L1, L2, L3, L4  
In questo esempio, registri una chiave di sicurezza e recuperi la certificazione FIPS-140-2 Level 2 per il tuo dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
                  
 }
```

**iam:FIDO-FIPS-140-3-certification**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica il livello di certificazione di convalida FIPS-140-3 del dispositivo MFA al momento della registrazione di una chiave di sicurezza FIDO. La certificazione del dispositivo viene recuperata dal [FIDO Alliance Metadata Service (MDS)](https://fidoalliance.org/metadata/). Se lo stato o il livello di certificazione della chiave di sicurezza FIDO cambia, questa non verrà aggiornata a meno che la registrazione del dispositivo non sia stata annullata e poi effettuata nuovamente per recuperare le informazioni di certificazione aggiornate.  
Valori possibili di L1, L2, L3, L4  
In questo esempio, registri una chiave di sicurezza e recuperi la certificazione FIPS-140-3 Level 3 per il tuo dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L3"
                }
            }
        }
    ]
                  
 }
```

**sono: OrganizationsPolicyId**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica che la politica con l' AWS Organizations ID specificato corrisponda alla politica utilizzata nella richiesta. Per visualizzare una policy IAM di esempio che utilizza la chiave di condizione, consulta [IAM: visualizza le informazioni sull'ultimo accesso al servizio per una AWS Organizations policy](reference_policies_examples_iam_service-accessed-data-orgs.md).

**Io sono: PassedToService**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Specifica il principale del servizio a cui un ruolo può essere passato. Questa chiave di condizione si applica solo all'[PassRole](id_roles_use_passrole.md)azione in una politica. Non può essere usata per limitare altre operazioni.   
Quando si utilizza questa chiave di condizione in una policy, specificare il servizio utilizzando un principale del servizio. Il principale di un servizio è il nome di un servizio che può essere specificato nell'elemento `Principal` di una policy. Il formato tipico è `SERVICE_NAME_URL.amazonaws.com`.   
Puoi utilizzare `iam:PassedToService` per limitare gli utenti in modo che possano passare ruoli solo a servizi specifici. Ad esempio, un utente potrebbe creare un [ruolo di servizio](id_roles.md#iam-term-service-role) che si fida della scrittura CloudWatch di dati di log in un bucket Amazon S3 per suo conto. L'utente deve quindi collegare una policy di autorizzazione e una policy di affidabilità al nuovo ruolo di servizio. In questo caso, la policy di affidabilità deve specificare `cloudwatch.amazonaws.com` nell'elemento `Principal`. Per visualizzare una policy che consenta all'utente di trasferire il ruolo a CloudWatch, consulta. [IAM: passa un ruolo IAM a un AWS servizio specifico](reference_policies_examples_iam-passrole-service.md)  
Utilizzando questa chiave di condizione, puoi assicurarti che gli utenti creino ruoli di servizio solo per i servizi specificati. Ad esempio, se un utente con la policy precedente tenta di creare un ruolo di servizio per Amazon EC2, l'operazione avrà esito negativo. L'errore si verifica perché l'utente non dispone dell'autorizzazione per trasferire il ruolo ad Amazon EC2.   
A volte si passa un ruolo a un servizio che poi a sua volta lo passa a un servizio diverso. `iam:PassedToService` include solo il servizio finale che assume il ruolo, non il servizio intermedio che lo passa.  
Alcuni servizi non supportano questa chiave di condizione.

**Io sono: PermissionsBoundary**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Verifica che la policy specificata è collegata come limite delle autorizzazioni sulla risorsa del principale IAM. Per ulteriori informazioni, consulta la sezione [Limiti delle autorizzazioni per le entità IAM](access_policies_boundaries.md)

**iam:PolicyARN**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Controlla l'Amazon Resource Name (ARN) di una policy gestita nelle richieste che implicano una policy gestita. Per ulteriori informazioni, consulta [Controllo dell'accesso alle policy](access_controlling.md#access_controlling-policies). 

**Io sono: RegisterSecurityKey**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Verifica lo stato corrente dell'abilitazione dei dispositivi MFA.  
Valori possibili di `Create` o `Activate`.  
In questo esempio, registri una chiave di sicurezza e recuperi la certificazione FIPS-140-3 Level 1 per il tuo dispositivo.    
****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L1"
                }
            }
        }
    ]
                  
 }
```

**io:ResourceTag/*key-name***  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Controlla che il tag collegato alla risorsa dell'identità (utente o ruolo) corrisponda al nome e al valore della chiave specificata.  
IAM e AWS STS supportano sia la chiave di condizione `iam:ResourceTag` IAM che la chiave di condizione `aws:ResourceTag` globale.
Puoi aggiungere attributi personalizzati alle risorse IAM sotto forma di coppia chiave-valore. Per ulteriori informazioni sui tag per le risorse IAM, consulta [Tag per AWS Identity and Access Management le risorse](id_tags.md). Puoi utilizzare `ResourceTag` per [controllare l'accesso](access_tags.md#access_tags_control-resources) alle risorse AWS , incluse le risorse IAM. Tuttavia, poiché IAM non supporta i tag per i gruppi, non puoi utilizzare i tag per controllare l'accesso ai gruppi.  
Questo esempio mostra come creare una policy basata sull'identità che consenta di eliminare gli utenti con il tag **status=terminated**. Per utilizzare questa politica, sostituisci la *italicized placeholder text* politica dell'esempio con le tue informazioni. Quindi, segui le indicazioni fornite in [Creazione di una policy](access_policies_create.md) o [Modifica di una policy](access_policies_manage-edit.md).    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "iam:DeleteUser",
        "Resource": "*",
        "Condition": {"StringEquals": {"iam:ResourceTag/status": "terminated"}}
    }]
}
```

**Io sono: ServiceSpecificCredentialAgeDays**  
Lavora con [operatori numerici](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Questa chiave di condizione limita la creazione di credenziali specifiche del servizio in base alle relative impostazioni di scadenza. Consente di controllare l’età massima, in giorni, delle credenziali specifiche del servizio che possono essere create.  
L’intervallo valido per i giorni è compreso tra 1 e 36600 (minimo 1 giorno, massimo 36600 giorni).  
Questa chiave di condizione è supportata dall’operazione API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html).  
In questo esempio, consenti a un utente di creare credenziali specifiche per il servizio Amazon Bedrock solo se scadono entro 90 giorni.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/username",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
                },
                "NumericLessThanEquals": {
                    "iam:ServiceSpecificCredentialAgeDays": "90"
                }
            }
        }
    ]
}
```

**Io sono: ServiceSpecificCredentialServiceName**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Speciifica quali AWS servizi possono essere utilizzati per la gestione delle credenziali specifiche del servizio. Questa chiave di condizione consente di limitare i AWS servizi consentiti nella gestione delle credenziali specifiche del servizio.  
Questa chiave di condizione è supportata dalle seguenti operazioni API:  
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html)
I seguenti servizi sono supportati per le credenziali specifiche del servizio con la formattazione esatta dei valori:  
+ `bedrock.amazonaws.com`
+ `cassandra.amazonaws.com`
+ `codecommit.amazonaws.com`
In questo esempio, consenti a un utente di creare credenziali specifiche del servizio utilizzando l’operazione API [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) solo per il servizio Amazon Bedrock.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "arn:aws:iam::111122223333:user/username",
            "Condition": {
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
                }
            }
        }
    ]
}
```

**Io sono: DelegationDuration**  
Lavora con [operatori numerici](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Filtra l'accesso in base alla durata dell'accesso temporaneo richiesto in una richiesta di delega.  
I fornitori di prodotti possono utilizzare questa chiave di condizione per controllare la durata massima consentita nelle richieste di delega inviate ai clienti. La durata è specificata in secondi e determina per quanto tempo le credenziali temporanee rimangono valide dopo il rilascio del token di scambio da parte del cliente. Questo aiuta i fornitori di prodotti a far rispettare le politiche interne relative ai limiti di durata dell'accesso in base al loro caso d'uso.  
Questa chiave di condizione è supportata dall’operazione API `CreateDelegationRequest`.  
In questo esempio, è possibile creare richieste di delega solo se la durata richiesta è pari o inferiore a 7200 secondi (2 ore).  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "NumericLessThanEquals": {
                    "iam:DelegationDuration": "7200"
                }
            }
        }
    ]
}
```

**Io sono: NotificationChannel**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra l'accesso in base all'argomento Amazon SNS ARN specificato per la ricezione delle notifiche di richiesta di delega.  
I fornitori di prodotti possono utilizzare questa chiave di condizione per limitare gli argomenti SNS che possono essere utilizzati per le notifiche di richiesta di delega nella CreateDelegationRequest chiamata API. I fornitori di prodotti devono specificare un argomento SNS per ricevere notifiche di modifica dello stato e scambiare token. Ciò garantisce che le notifiche vengano inviate solo ai canali approvati all'interno dell'organizzazione del fornitore del prodotto.  
Questa chiave di condizione è supportata dall’operazione API `CreateDelegationRequest`.  
In questo esempio, consentite la creazione di richieste di delega solo se utilizzano un argomento SNS specifico per le notifiche.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:NotificationChannel": "arn:aws:sns:us-east-1:123456789012:delegation-notifications"
                }
            }
        }
    ]
}
```

**Io sono: TemplateArn**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra l'accesso in base al modello di policy ARN utilizzato per definire le autorizzazioni in una richiesta di delega.  
I fornitori di prodotti possono utilizzare questa chiave di condizione per controllare quali modelli di policy possono essere utilizzati nella chiamata CreateDelegationRequest API. I modelli di policy definiscono le autorizzazioni temporanee richieste dai fornitori di prodotti negli account dei clienti. Ciò consente ai fornitori di prodotti di limitare i modelli di policy registrati che possono essere utilizzati durante la creazione di richieste di delega.  
Questa chiave di condizione è supportata dall’operazione API `CreateDelegationRequest`.  
In questo esempio, è consentita la creazione di richieste di delega solo se utilizzano un modello di policy proveniente da un dominio partner specifico.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateDelegationRequest",
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                    "iam:TemplateArn": "arn:aws:iam:::delegation-template/partner_*"
                }
            }
        }
    ]
}
```

**Io sono: DelegationRequestOwner**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Filtra l'accesso in base all' AWS identità o al principale proprietario della richiesta di delega.  
I clienti possono utilizzare questa chiave di condizione per controllare chi può eseguire azioni sulle richieste di delega in base alla proprietà. Il proprietario di una richiesta di delega è l' AWS identità o il principale dell'account cliente che ha avviato o ricevuto la richiesta di delega.  
Questa chiave di condizione è supportata dalle seguenti operazioni API:  
+ `GetDelegationRequest`
+ `AcceptDelegationRequest`
+ `RejectDelegationRequest`
+ `SendDelegatedToken`
+ `ListDelegationRequests`
+ `UpdateDelegationRequest`
In questo esempio, consenti agli utenti di gestire solo le richieste di delega di loro proprietà.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetDelegationRequest",
                "iam:AcceptDelegationRequest",
                "iam:RejectDelegationRequest",
                "iam:SendDelegatedToken",
                "iam:UpdateDelegationRequest",
                "iam:ListDelegationRequests"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "iam:DelegationRequestOwner": "${aws:PrincipalArn}"
                }
            }
        }
    ]
}
```

## Chiavi disponibili per la federazione AWS OIDC
<a name="condition-keys-wif"></a>

Puoi utilizzare la federazione OIDC per fornire credenziali di sicurezza temporanee agli utenti che sono stati autenticati tramite un provider di identità (IdP) compatibile con OpenID Connect a un provider di identità IAM OpenID Connect (OIDC) nel tuo account. AWS Esempi di tali fornitori includono GitHub Amazon Cognito, Login with Amazon e Google. È possibile utilizzare token di identità e token di accesso del proprio IdP, nonché [token di account di servizio](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-account-tokens) concessi ai carichi di lavoro di Amazon Elastic Kubernetes Service.

Puoi utilizzare le chiavi contestuali delle condizioni AWS OIDC per scrivere politiche che limitano l'accesso dei principali federati alle risorse associate a un provider, un'app o un utente specifico. Queste chiavi vengono in genere utilizzate nelle policy di trust di un ruolo. Definisci le chiavi di condizione utilizzando il nome del provider OIDC (`token.actions.githubusercontent.com`) seguito da un'attestazione (`:aud`): `token.actions.githubusercontent.com:aud`.

Alcune chiavi di condizioni di federazione OIDC possono essere utilizzate nella sessione di ruolo per autorizzare l'accesso alle risorse. Se il valore è **Sì** nella colonna **Disponibile nella sessione**, puoi utilizzare queste chiavi di condizione nelle politiche per definire a quali utenti è consentito accedere in altri servizi. AWS Quando un claim non è disponibile nella sessione, la chiave di contesto della condizione OIDC può essere utilizzata solo in una policy di fiducia dei ruoli per l'autenticazione iniziale [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

Seleziona il tuo IdP per vedere in che modo le attestazioni del tuo IdP vengono mappate alle chiavi di contesto delle condizioni IAM in AWS. Ulteriori informazioni sulle chiavi per GitHub e Google sono disponibili nella scheda **Predefinito**.

------
#### [ Default ]

L'impostazione predefinita elenca le attestazioni OIDC standard e il modo in cui vengono mappate per AWS STS condizionare le chiavi contestuali. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**. Usa questa mappatura se il tuo IdP non è elencato nelle opzioni della scheda. 

GitHub Actions, Workflows e Google sono alcuni esempi IdPs che utilizzano l'implementazione predefinita nel token ID JWT OIDC.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| amr | amr | Sì | 
| aud | azp Se non è impostato alcun valore per `azp`, la chiave di condizione `aud` corrisponde all'attestazione `aud`. | Sì | 
| e-mail | e-mail | No | 
| oaud | aud | No | 
| sub | sub | Sì | 

Per ulteriori informazioni sull'utilizzo delle chiavi contestuali delle condizioni OIDC con GitHub, vedere. [Configurazione di un ruolo per il provider di GitHub identità OIDC](id_roles_create_for-idp_oidc.md#idp_oidc_Create_GitHub) Per ulteriori informazioni sui campi `aud` e `azp` di Google, consulta la Guida [OpenID Connect di Google Identity Platform](https://developers.google.com/identity/protocols/OpenIDConnect) . 

**amr**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String). La chiave è multivalore, il che significa che è possibile testarla in una policy con [operatori di definizione di condizioni](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Esempio**: `token.actions.githubusercontent.com:amr`  
Il riferimento ai metodi di autenticazione include le informazioni di accesso relative all'utente. La chiave può contenere i seguenti valori:  
+ Se l'utente non è autenticato, la chiave contiene solo `unauthenticated`.
+ Se l'utente è autenticato, la chiave contiene il valore `authenticated` e il nome del provider di accesso utilizzato nella chiamata (`accounts.google.com`).

**aud**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempi:**   
+ `accounts.google.com:aud`
+ `token.actions.githubusercontent.com:aud`
Utilizza la chiave di condizione `aud` per verificare che il pubblico corrisponda a quello specificato nella policy È possibile utilizzare la chiave aud con la chiave sub per lo stesso provider di identità.  
Questa chiave di condizione è impostata dai seguenti campi di token:  
+ `aud`per il client Google OAuth 2.0 IDs dell'applicazione, quando il `azp` campo non è impostato. Quando il campo `azp` è impostato, il campo `aud` corrisponde alla chiave della condizione `accounts.google.com:oaud`.
+ `azp` quando il campo `azp` è impostato. Questo può accadere per le app ibride in cui un'applicazione web e un'app Android hanno un ID client Google OAuth 2.0 diverso ma condividono lo stesso APIs progetto Google. 
Quando si scrive una policy utilizzando la chiave di condizione `accounts.google.com:aud`, occorre sapere se l'app è un'app ibrida che imposta il campo `azp`.   
Campo `azp` non impostato  
La policy di esempio seguente funziona per le app non ibride che non impostano il campo `azp`. In questo caso, il valore del campo `aud` del token ID di Google corrisponde a entrambi i valori della chiave di condizione `accounts.google.com:aud` e `accounts.google.com:oaud`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Federated": "accounts.google.com"},
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:aud": "aud-value",
                    "accounts.google.com:oaud": "aud-value",
                    "accounts.google.com:sub": "sub-value"
                }
            }
        }
    ]
}
```
Campo `azp` impostato  
La policy di esempio seguente funziona per app ibride che impostano il campo `azp`. In questo caso, il valore del campo `aud` del token ID di Google corrisponde solo al valore della chiave di condizione `accounts.google.com:oaud`. Il valore del campo `azp` corrisponde al valore della chiave di condizione `accounts.google.com:aud`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Federated": "accounts.google.com"},
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:aud": "azp-value",
                    "accounts.google.com:oaud": "aud-value",
                    "accounts.google.com:sub": "sub-value"
                }
            }
        }
    ]
}
```

**e-mail**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `accounts.google.com:email`  
Questa chiave di condizione convalida l'indirizzo e-mail dell'utente. Il valore di questa attestazione potrebbe non essere univoco per l'account e potrebbe cambiare nel tempo, pertanto non dovresti utilizzare questo valore come identificatore principale per verificare il tuo record utente.

**oaud**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `accounts.google.com:oaud`  
Questa chiave specifica l'altro pubblico (`aud`) a cui è rivolto questo token ID. Deve essere uno dei client OAuth 2.0 IDs dell'applicazione.

**sub**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempi:**  
+ `accounts.google.com:sub`
+ token.actions.githubusercontent.com:sub
Utilizzare queste chiavi per verificare che il soggetto corrisponda a quello specificato nella policy. È possibile utilizzare la chiave `sub` con la chiave `aud` per lo stesso provider di identità.  
Nella seguente politica di attendibilità dei ruoli, la chiave di `sub` condizione limita il ruolo al GitHub ramo denominato`demo`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
          "token.actions.githubusercontent.com:sub": "repo:org-name/repo-name:ref:refs/heads/demo"
        }
      }
    }
  ]
}
```

------
#### [ Amazon Cognito ]

Questa scheda spiega in che modo Amazon Cognito mappa le dichiarazioni OIDC per AWS STS condizionare le chiavi di contesto. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.

Per i ruoli utilizzati da Amazon Cognito, le chiavi vengono definite utilizzando `cognito-identity.amazonaws.com` seguita dall'attestazione.

Per ulteriori informazioni sulla mappatura delle attestazioni del pool di identità, consulta [Mappature dei provider predefinite](https://docs.aws.amazon.com/cognito/latest/developerguide/provider-mappings.html) nella *Guida per gli sviluppatori di Amazon Cognito*. Per ulteriori informazioni sulla mappatura delle attestazioni del pool di utenti, consulta [Utilizzo del token ID](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html) nella *Guida per gli sviluppatori di Amazon Cognito*.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| amr | amr | Sì | 
| aud | aud | Sì | 
| oaud | aud | No | 
| sub | sub | Sì | 

**amr**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String). La chiave è multivalore, il che significa che è possibile testarla in una policy con [operatori di definizione di condizioni](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**Esempio**: `cognito-identity.amazonaws.com:amr`  
Il riferimento ai metodi di autenticazione include le informazioni di accesso relative all'utente. La chiave può contenere i seguenti valori:  
+ Se l'utente non è autenticato, la chiave contiene solo `unauthenticated`.
+ Se l'utente è autenticato, la chiave contiene il valore `authenticated` e il nome del provider di accesso utilizzato nella chiamata (`cognito-identity.amazonaws.com`).
Ad esempio, la seguente condizione nella policy di attendibilità di un ruolo Amazon Cognito verifica se l'utente non è autenticato.  

```
"Condition": {
  "StringEquals": 
    { "cognito-identity.amazonaws.com:aud": "us-east-2:identity-pool-id" },
  "ForAnyValue:StringLike": 
    { "cognito-identity.amazonaws.com:amr": "unauthenticated" }
}
```

**aud**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `cognito-identity.amazonaws.com:aud`  
Il client dell'app del pool di utenti che ha autenticato l'utente. Amazon Cognito restituisce lo stesso valore nell'attestazione `client_id` del token di accesso.

**oaud**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `cognito-identity.amazonaws.com:oaud`  
Il client dell'app del pool di utenti che ha autenticato l'utente. Amazon Cognito restituisce lo stesso valore nell'attestazione `client_id` del token di accesso.

**sub**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `cognito-identity.amazonaws.com:sub`  
L'identificatore univoco (UUID), o soggetto, dell'utente autenticato. Il nome utente potrebbe non essere univoco nel pool di utenti. L'attestazione sub è il modo migliore per identificare un determinato utente. È possibile utilizzare la chiave `sub` con la chiave `aud` per lo stesso provider di identità.  

```
"Condition": {
         "StringEquals": {
            "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab",
            "cognito-identity.amazonaws.com:sub": [
               "us-east-1:12345678-1234-1234-1234-123456790ab",
               "us-east-1:98765432-1234-1234-1243-123456790ab"
            ]
         }
      }
```

------
#### [ Login with Amazon ]

Questa scheda spiega in che modo Login with Amazon mappa le dichiarazioni di OIDC di AWS STS condizionare le chiavi contestuali. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
|  app\$1id  |  ID applicazione  |  Sì  | 
|  sub  |  ID utente  |  Sì  | 
|  user\$1id  |  ID utente  |  Sì  | 

**app\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `www.amazon.com:app_id`  
Questa chiave specifica il contesto del pubblico che corrisponde al campo `aud` utilizzato da altri provider di identità.

**sub**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `www.amazon.com:sub`  
Questa chiave verifica che l'ID utente corrisponda a quello specificato nella policy. È possibile utilizzare la chiave `sub ` con la chiave `aud` per lo stesso provider di identità.

**user\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `www.amazon.com:user_id`  
Questa chiave specifica il contesto del pubblico che corrisponde al campo `aud` utilizzato da altri provider di identità. È possibile utilizzare la chiave `user_id` con la chiave `id` per lo stesso provider di identità.

------
#### [ Facebook ]

Questa scheda spiega in che modo Facebook mappa OIDC dichiara di AWS STS condizionare le chiavi di contesto. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| app\$1id | ID applicazione | Sì | 
| id | id | Sì | 

**app\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `graph.facebook.com:app_id`  
Questa chiave verifica che il contesto del pubblico corrisponda al campo `aud` utilizzato da altri provider di identità.

**id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `graph.facebook.com:id`  
Questa chiave verifica che l'ID applicazione (o del sito) corrisponda a quello specificato nella policy.

------
#### [ GitHub ]

Questa scheda spiega in che modo GitHub Actions mappa le affermazioni OIDC per AWS STS condizionare le chiavi di contesto. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| attore | attore | No | 
| actor\$1id | actor\$1id | No | 
| job\$1workflow\$1ref | job\$1workflow\$1ref | No | 
| repository | repository | No | 
| id\$1repository | id\$1repository | No | 
| flusso di lavoro | flusso di lavoro | No | 
| rif | rif | No | 
| ambiente | ambiente | No | 
| id\$1azienda | id\$1azienda | No | 

**attore**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:actor`  
Questa chiave identifica l'account personale che ha avviato l'esecuzione del flusso di lavoro. Utilizzatela per limitare l'accesso a attori specifici.

**actor\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:actor_id`  
Questa chiave verifica l'ID dell'account personale che ha avviato l'esecuzione del flusso di lavoro. IDs Gli attori sono generati da GitHub e sono immutabili.

**job\$1workflow\$1ref**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:job_workflow_ref`  
Questa chiave contiene il percorso di riferimento al flusso di lavoro riutilizzabile per i lavori che utilizzano un flusso di lavoro riutilizzabile. Utilizzatela per limitare l'accesso a flussi di lavoro specifici e per garantire che solo i flussi di lavoro approvati possano assumere ruoli.

**repository**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:repository`  
Questa chiave identifica l'archivio da cui viene eseguito il flusso di lavoro. Utilizzatela per limitare l'accesso a repository specifici GitHub .

**repository\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:repository_id`  
Questa chiave verifica l'ID del repository da cui viene eseguito il flusso di lavoro. I repository IDs sono immutabili e non cambiano anche se il repository viene rinominato.

**flusso di lavoro**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:workflow`  
Questa chiave contiene il nome del flusso di lavoro. Utilizzatela per limitare l'accesso a flussi di lavoro specifici all'interno dei vostri repository.

**rif.**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:ref`  
Questa chiave identifica il git ref (branch o tag) che ha attivato l'esecuzione del flusso di lavoro. Usalo per limitare l'accesso in base a rami specifici, ad esempio consenti `main` o `production` rami.

**environment**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:environment`  
Questa chiave contiene il nome dell'ambiente utilizzato dal job. Utilizzatela per implementare controlli di accesso basati sull'ambiente, come autorizzazioni separate per ambienti di sviluppo, gestione temporanea e produzione.  
Se la dichiarazione ambientale è inclusa nella politica di attendibilità, è necessario configurare e fornire un ambiente nel flusso di lavoro. GitHub 

**enterprise\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `token.actions.githubusercontent.com:enterprise_id`  
Questa chiave verifica l'ID dell'azienda che contiene il repository da cui viene eseguito il flusso di lavoro. Utilizzatela per assicurarvi che l'accesso sia limitato ai repository all'interno dell'organizzazione GitHub Enterprise.

L'esempio seguente di politica di fiducia utilizza attestazioni personalizzate nel token GitHub OIDC per limitare l'accesso a un ruolo.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/token.actions.githubusercontent.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "StringLike": {
                "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
                "token.actions.githubusercontent.com:job_workflow_ref": "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main",
                "token.actions.githubusercontent.com:repository": "octo-org/octo-repo",
                "token.actions.githubusercontent.com:actor": "octocat",
                "token.actions.githubusercontent.com:ref": "refs/heads/main",
                "token.actions.githubusercontent.com:enterprise_id": "345"
               }
           }
        }
    ]
}
```

------
#### [ Google ]

Questa scheda spiega in che modo Google Maps OIDC dichiara di AWS STS condizionare le chiavi contestuali. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| google/numero\$1organizzazione | google:numero\$1organizzazione | No | 

**google/numero\$1organizzazione**  
Lavora con [operatori numerici](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
**Esempio**: `accounts.google.com:google/organization_number`  
Questa chiave verifica che un token rappresenti un'identità Google appartenente a una specifica organizzazione Google Cloud o Google Workspace. Utilizzalo per limitare l'accesso agli utenti di organizzazioni specifiche, assicurandoti che solo le identità della tua organizzazione possano assumere il ruolo.

L'esempio seguente di politica di fiducia utilizza l'`google/organization_number`affermazione per limitare l'accesso a un ruolo.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Federated": "accounts.google.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
            "NumericEquals": {
                "accounts.google.com:google/organization_number": "123456"
               }
           }
        }
    ]
}
```

------
#### [ CircleCI ]

Questa scheda spiega come CircleCI mappa le affermazioni AWS STS OIDC per condizionare le chiavi di contesto. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| oidc.circleci.com/project-id | oidc.circleci.com/project-id | No | 

**oidc.circleci.com/project-id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `circleci-issuer-url:oidc.circleci.com/project-id`  
Questa chiave identifica il progetto CircleCI in cui è in esecuzione il job. Il suo valore è una stringa contenente un UUID che identifica in modo univoco il progetto CircleCI. Usalo per limitare l'accesso a specifici progetti CircleCI.

L'esempio seguente di politica di fiducia utilizza l'`oidc.circleci.com/project-id`affermazione per limitare l'accesso a un ruolo.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.circleci.com/org/12345"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "oidc.circleci.com/org/12345:aud": "sts.amazonaws.com",
          "oidc.circleci.com/org/12345:oidc.circleci.com/project-id": "76543210-ba98-fedc-3210-edcba0987654"
        }
      }
    }
  ]
}
```

------
#### [ Oracle Cloud Infrastructure (OCI) ]

Questa scheda spiega come Oracle Cloud Infrastructure mappa le dichiarazioni OIDC per AWS STS condizionare le chiavi di contesto. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le **chiavi di condizioni AWS STS ** con i valori nella colonna delle **attestazioni di JWT dell'IdP**.


| AWS STS chiave di condizione | Attestazione JWT IdP | Disponibile nella sessione | 
| --- | --- | --- | 
| rpst\$1id | rpst\$1id | No | 

**rpst\$1id**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
**Esempio**: `oci-issuer-url:rpst_id`  
Questa chiave identifica in modo univoco la risorsa principale in OCI. Usalo per limitare l'accesso a specifici principali di risorse OCI. Il rpst\$1id (Resource Principal Session Token ID) fornisce un identificatore stabile per l'autenticazione basata sulle risorse OCI.

L'esempio seguente di politica di fiducia utilizza l'`rpst_id`affermazione per limitare l'accesso a un ruolo.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::123456789012:oidc-provider/idcs-abc123ef5678901234abcd.identity.oraclecloud.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:aud": "sts.amazonaws.com",
          "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:rpst_id": "your-rpst-id"
        }
      }
    }
  ]
}
```

------

### Ulteriori informazioni sulla federazione OIDC
<a name="condition-keys-wif-more-info"></a>


+ [Guida per l'utente di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)
+ [Federazione OIDC](id_roles_providers_oidc.md)

## Chiavi disponibili per la federazione basata su SAML AWS STS
<a name="condition-keys-saml"></a>

Se utilizzi una [federazione basata su SAML](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html) utilizzando AWS Security Token Service (AWS STS), puoi includere chiavi di condizione aggiuntive nella politica. 

### Policy di affidabilità di un ruolo SAML
<a name="condition-keys-saml_trust-policy"></a>

Nella policy di affidabilità di un ruolo è possibile includere le chiavi seguenti, che consentono di stabilire se il chiamante è autorizzato ad assumere il ruolo. Salvo per `saml:doc`, tutti i valori sono derivati dall'asserzione SAML. Tutti gli elementi nell'elenco sono disponibili nell'editor visivo della console IAM quando crei o modifichi una policy con condizioni. Gli elementi contrassegnati con `[]` *possono* avere un valore che è un elenco del tipo specificato.

**saml:aud**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
L'URL di un endpoint a cui vengono presentate le asserzioni SAML. Il valore di questa chiave proviene dal campo `SAML Recipient` dell'asserzione, *non *dal campo `Audience`.

**saml:commonName[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `commonName`.

**saml:cn[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduOrg`.

**saml:doc**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Rappresenta il principale utilizzato per assumere il ruolo. Il formato è*account-ID*/*provider-friendly-name*, ad esempio. `123456789012/SAMLProviderName` Il valore *ID account* si riferisce all'account proprietario del [provider SAML](id_roles_providers_create_saml.md). 

**saml:edupersonaffiliation[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonassurance[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonentitlement[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonnickname[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonorgdn**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonorgunitdn[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonprimaryaffiliation**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonprimaryorgunitdn**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonprincipalname**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersonscopedaffiliation[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:edupersontargetedid[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduPerson`.

**saml:eduorghomepageuri[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduOrg`.

**saml:eduorgidentityauthnpolicyuri[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduOrg`.

**saml:eduorglegalname[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduOrg`.

**saml:eduorgsuperioruri[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduOrg`.

**saml:eduorgwhitepagesuri[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `eduOrg`.

**saml:givenName[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `givenName`.

**saml:iss**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
L'approvatore, che è rappresentato da un URN. 

**saml:mail[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `mail`.

**saml:name[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `name`.

**saml:namequalifier**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Un valore hash basato sul nome descrittivo del provider SAML. Il valore è la concatenazione dei seguenti valori, in ordine e separati da un carattere '/':  

1. Il valore di risposta `Issuer` (`saml:iss`)

1. L'ID dell'account `AWS`

1.  Il nome descrittivo (l'ultima parte dell'ARN) del provider SAML in IAM 
La concatenazione dell'ID account e del nome descrittivo del provider SAML è disponibile per le policy IAM sotto forma di chiave `saml:doc`. Per ulteriori informazioni, consulta [Identificazione univoca degli utenti nella federazione basata su SAML](id_roles_providers_saml.md#CreatingSAML-userid).

**saml:organizationStatus[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `organizationStatus`.

**saml:primaryGroupSID[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `primaryGroupSID`.

**saml:sub**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è l'oggetto della richiesta, che include un valore che identifica in modo univoco un singolo utente in un'organizzazione (ad esempio, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**saml:sub\$1type**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questa chiave può avere il valore `persistent` o `transient` oppure consistere dell'URI `Format` completo, tratto dagli elementi `Subject` e `NameID` utilizzati nell'asserzione SAML. Il valore `persistent` indica che il valore in `saml:sub` è lo stesso per un utente da una sessione all'altra. Se il valore è `transient`, l'utente dispone di un valore `saml:sub` diverso per ogni sessione. Per ulteriori informazioni sull'attributo `Format` dell'elemento `NameID`, consulta [Configurare le asserzioni SAML per la risposta di autenticazione](id_roles_providers_create_saml_assertions.md).

**saml:surname[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `surnameuid`.

**saml:uid[]**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `uid`.

**saml: x500 [] UniqueIdentifier**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è un attributo `x500UniqueIdentifier`.

Per informazioni generali sugli attributi `eduPerson` ed `eduOrg`, consulta il [sito Web REFEDS](https://wiki.refeds.org/display/STAN/eduPerson). Per un elenco di `eduPerson` attributi, consulta la [specifica della classe di oggetti eduPerson (201602)](https://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201602.html). 

Le chiavi di condizione il cui tipo è un elenco possono includere più valori. Per creare condizioni nelle policy per valori con elenchi, è possibile utilizzare gli [operatori di definizione](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) (`ForAllValues`, `ForAnyValue`). Ad esempio, per consentire l'accesso a qualsiasi utente la cui affiliazione è "facoltà" o "staff" (ma non "studente") è possibile utilizzare una condizione come la seguente: 

```
"Condition": {
   "ForAllValues:StringLike": {
     "saml:edupersonaffiliation":[ "faculty", "staff"] 
   }
}
```

## Chiavi contestuali di federazione basate su SAML tra servizi AWS STS
<a name="cross-condition-keys-saml"></a>

Alcune chiavi di condizione di federazione basate su SAML possono essere utilizzate nelle richieste successive per autorizzare le AWS operazioni in altri servizi e chiamate. `AssumeRole` Queste sono le seguenti chiavi di condizione che possono essere utilizzate nelle politiche di fiducia dei ruoli quando i responsabili federati assumono un altro ruolo e nelle politiche delle risorse di altri AWS servizi per autorizzare l'accesso alle risorse da parte dei responsabili federati. Per ulteriori informazioni sull'utilizzo di queste chiavi, consulta [Informazioni sulla federazione basata su SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html#CreatingSAML-userid). 

Seleziona una chiave di condizione per visualizzarne la descrizione.
+ [saml:namequalifier](#ck_saml-namequalifier)
+ [saml:sub](#ck_saml-sub)
+ [saml:sub_type](#ck_saml-subtype)

**Nota**  
Non sono disponibili altre chiavi di condizione di federazione basate su SAML da utilizzare dopo la risposta iniziale di autenticazione del gestore dell'identità digitale esterno.

## Chiavi disponibili per AWS STS
<a name="condition-keys-sts"></a>

È possibile utilizzare le seguenti chiavi di condizione nelle policy di fiducia dei ruoli IAM per i ruoli che vengono assunti utilizzando le operazioni AWS Security Token Service (AWS STS). 

**saml:sub**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Questo è l'oggetto della richiesta, che include un valore che identifica in modo univoco un singolo utente in un'organizzazione (ad esempio, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**sts: AWSService Nome**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizzare questa chiave per specificare il servizio in cui è possibile utilizzare un token al portatore. Quando si utilizza questa chiave di condizione in una policy, specificare il servizio utilizzando un principale del servizio. Il principale di un servizio è il nome di un servizio che può essere specificato nell'elemento `Principal` di una policy. Ad esempio, `codeartifact.amazonaws.com` è il responsabile del AWS CodeArtifact servizio.  
**Disponibilità**: questa chiave è presente nelle richieste che ottengono un token di connessione. Non è possibile effettuare una chiamata diretta per AWS STS ottenere un token al portatore. Quando si eseguono alcune operazioni in altri servizi, il servizio richiede il token del portatore per conto dell'utente.  
Alcuni AWS servizi richiedono l'autorizzazione per ottenere un token AWS STS service bearer prima di poter accedere alle loro risorse a livello di programmazione. Ad esempio, AWS CodeArtifact richiede che le entità utilizzino token portatori per eseguire alcune operazioni. Il comando `aws codeartifact get-authorization-token` restituisce un token di connessione. È quindi possibile utilizzare il token bearer per eseguire operazioni. AWS CodeArtifact Per ulteriori informazioni sui token del portatore, vedere [Token di connessione al servizio](id_credentials_bearer.md).   
È possibile utilizzare questa chiave di condizione per consentire ai principal di ottenere un token di portatore da utilizzare con un servizio specifico.

**set: DurationSeconds**  
Lavora con [operatori numerici](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Usa questa chiave per specificare la durata (in secondi) che un principale può utilizzare per ottenere un token AWS AWS STS bearer o un token Web JSON dall'[GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API.  
**Disponibilità**: questa chiave è presente nelle richieste che ottengono un token bearer o un token Web JSON dall'API. GetWebIdentityToken Non è possibile effettuare una chiamata diretta per ottenere un AWS STS token al portatore. Quando si eseguono alcune operazioni in altri servizi, il servizio richiede il token del portatore per conto dell'utente. La chiave non è applicabile per le operazioni con AWS STS ruolo principale.  
Alcuni AWS servizi richiedono l'autorizzazione per ottenere un token AWS STS service bearer prima di poter accedere alle loro risorse a livello di programmazione. Ad esempio, AWS CodeArtifact richiede che le entità utilizzino token portatori per eseguire alcune operazioni. Il comando `aws codeartifact get-authorization-token` restituisce un token di connessione. È quindi possibile utilizzare il token bearer per eseguire operazioni. AWS CodeArtifact Per ulteriori informazioni sui token del portatore, vedere [Token di connessione al servizio](id_credentials_bearer.md). 

**set: IdentityTokenAudience**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Usa questa chiave per specificare il pubblico per il quale un principale IAM può richiedere JSON Web Tokens (JWTs) utilizzando l'[GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API. Quando questa chiave di condizione è presente in una policy IAM, i responsabili IAM possono richiedere token solo per i destinatari specificati nella policy. I servizi esterni convalidano l'indicazione del pubblico («aud») nel token Web JSON per garantire che il token sia destinato a loro.  
**Disponibilità**: questa chiave è presente nelle richieste all' GetWebIdentityToken API utilizzata per ottenere JSON Web Tokens (JWTs) per l'autenticazione con servizi esterni.  
Quando utilizzate questa chiave di condizione in una politica, specificate il valore del pubblico che corrisponde all'identificatore del destinatario previsto (ad esempio,). https://api.example.com  
La seguente politica di esempio consente a un preside di richiedere token per i servizi esterni specificati:  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "sts:IdentityTokenAudience": [
                        "https://api2.example.com",
                        "https://api1.example.com"
                    ]
                }
            }
        }
    ]
}
```

**set: SigningAlgorithm**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizzate questa chiave per specificare l'algoritmo crittografico AWS AWS STS utilizzato per firmare JSON Web Tokens (JWTs) generati dall'API. [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) Quando utilizzate questa chiave di condizione in una policy, specificate ES384 (ECDSA con curva P-384 e SHA-384) o (RSA con SHA-256). RS256   
**Disponibilità**: questa chiave è presente nelle richieste all' GetWebIdentityToken API utilizzata per ottenere JSON Web Tokens () per l'autenticazione con servizi esterni. JWTs  
Puoi utilizzare questa chiave di condizione per far sì che i responsabili IAM richiedano i token utilizzando algoritmi di firma compatibili con i tuoi requisiti di sicurezza o con i servizi esterni con cui ti integri. ES384 offre sicurezza e prestazioni ottimali, offrendo al contempo RS256 una maggiore compatibilità con i sistemi che non supportano ECDSA.  
La seguente politica di esempio richiede ai principali di utilizzare l'algoritmo di firma: ES384   

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "sts:SigningAlgorithm": "ES384"
                }
            }
        }
    ]
}
```

**st: ExternalId**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizza questa chiave per richiedere che un'entità principale fornisca un identificatore specifico quando assume un ruolo IAM.  
**Disponibilità**: questa chiave è presente nella richiesta quando il principale fornisce un ID esterno mentre assume un ruolo utilizzando l' AWS API AWS CLI or.   
Un identificatore univoco che può essere richiesto quando assumi un ruolo in un altro account. Se l'amministratore dell'account a cui appartiene il ruolo ha fornito un ID esterno, specifica questo valore nel parametro `ExternalId`. Questo valore può essere qualsiasi stringa, ad esempio una passphrase o un numero di account. La funzione principale dell'ID esterno è quella di risolvere e prevenire il problema del "confused deputy" (delegato confuso). Per ulteriori informazioni sull'ID esterno e il problema del "confused deputy", consulta [Accesso a Account AWS siti di proprietà di terzi](id_roles_common-scenarios_third-party.md).  
Il valore `ExternalId` deve avere un minimo di 2 caratteri e un massimo di 1.224 caratteri. Il valore deve essere alfanumerico senza spazi. Può anche includere i seguenti simboli: più (\$1), uguale (=), virgola (,), punto (.), chiocciola (@), due punti (:), barra (/) e trattino (-).

***sts:RequestContext//chiave contestuale***  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizza questa chiave per confrontare le coppie chiave-valore del contesto di sessione incorporate nell'asserzione di contesto firmata dall'emittente del token affidabile passata nella richiesta con i valori chiave-valore del contesto specificati nella policy di attendibilità del ruolo.  
**Disponibilità**: questa chiave è presente nella richiesta quando viene fornita un'asserzione di contesto nel parametro di `ProvidedContexts` richiesta mentre si assume un ruolo utilizzando l'operazione API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)  
Questa chiave di contesto è formattata come `"sts:RequestContext/context-key":"context-value"` dove `context-key` e `context-value` rappresentano una coppia chiave-valore di contesto. Quando più chiavi di contesto sono incorporate nell'asserzione di contesto firmata passata nella richiesta, è presente una chiave di contesto per ogni coppia chiave-valore. È necessario concedere l'autorizzazione per l'azione `sts:SetContext` nella policy di attendibilità del ruolo per consentire a un principale di impostare le chiavi di contesto all'interno del token di sessione risultante. Per ulteriori informazioni sulle chiavi di contesto del Centro identità IAM supportate che possono essere utilizzate con questa chiave, consulta [Chiavi di condizione AWS STS per il Centro identità IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html) nella *Guida per l'utente di AWS IAM Identity Center *.  
È possibile utilizzare questa chiave in una policy di attendibilità del ruolo per applicare un controllo di accesso granulare in base all'utente o ai suoi attributi quando assume un ruolo. Dopo aver assunto il ruolo, l'attività viene visualizzata nei AWS CloudTrail log all'interno dell'`AdditionalEventData`attributo, contenenti le coppie chiave-valore del contesto di sessione impostate dal provider del contesto nella richiesta di assunzione del ruolo. Ciò consente agli amministratori di distinguere tra le sessioni di ruolo quando un ruolo viene utilizzato da principali diversi. Le coppie chiave-valore vengono impostate dal provider di contesto specificato, non da o. AWS CloudTrail AWS STS Ciò consente al provider di contesto il controllo sul contesto incluso nei CloudTrail log e nelle informazioni sulla sessione.

**set: RequestContextProviders**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Utilizza questa chiave per confrontare l'ARN del provider di contesto nella richiesta con l'ARN del provider di contesto specificato nella policy di attendibilità del ruolo.  
**Disponibilità**: questa chiave è presente nella richiesta quando viene fornita un'asserzione di contesto nel parametro di `ProvidedContexts` richiesta mentre si assume un ruolo utilizzando l'operazione AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API.  
La condizione di esempio seguente verifica che l'ARN del provider di contesto passato nella richiesta corrisponda all'ARN specificato nella condizione della policy di attendibilità del ruolo. Ti consigliamo di aggiungere un controllo di valore null con `ForAllValues` per evitare che le chiavi di contesto mancanti o con valori vuoti vengano valutate come True. Per informazioni dettagliate, vedi [Operatore di condizione per verificare la presenza di chiavi di condizione](reference_policies_elements_condition_operators.md#Conditions_Null).    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Action": "sts:SetContext",
    "Effect": "Allow",
    "Resource": "*",
    "Condition": {
      "ForAllValues:ArnEquals": {
        "sts:RequestContextProviders": [
          "arn:aws:iam::aws:contextProvider/IdentityCenter"
        ]
      },
      "Null": {
        "sts:RequestContextProviders": "false"
      }
    }
  }
}
```

**set: RoleSessionName**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizzare questa chiave per confrontare il nome di sessione specificato da un'entità principale quando si assume un ruolo con il valore specificato nella policy.  
**Disponibilità**: questa chiave è presente nella richiesta quando il principale assume il ruolo utilizzando il comando CLI Console di gestione AWS any assume-role o qualsiasi operazione API. AWS STS `AssumeRole`  
È possibile utilizzare questa chiave in una policy di attendibilità del ruolo per richiedere che gli utenti forniscano un nome di sessione specifico quando assumono un ruolo. Ad esempio, è possibile richiedere che gli utenti IAM specifichino il proprio nome utente come nome di sessione. Dopo che l'utente IAM assume il ruolo, l'attività viene visualizzata nei [log AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) con il nome della sessione corrispondente al nome utente. Ciò consente agli amministratori di distinguere tra le sessioni di ruolo quando un ruolo viene utilizzato da principali diversi.  
La seguente policy di attendibilità del ruolo richiede che gli utenti IAM nell'account `111122223333` forniscano il nome utente IAM come nome di sessione quando assumono il ruolo. Questo requisito viene applicato utilizzando la [variabile di condizione](reference_policies_variables.md) `aws:username` nella chiave di condizione. Questa policy consente agli utenti IAM di assumere il ruolo a cui è collegata la policy. Questa policy non consente a chiunque utilizzi credenziali temporanee di assumere il ruolo perché la variabile `username` è presente solo per gli utenti IAM.  
È possibile utilizzare qualsiasi chiave di condizione a valore singolo come [variabile](reference_policies_variables.md). Non è possibile utilizzare una chiave della condizione multi-valore come variabile.  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "prefix-${aws:username}"}
            }
        }
    ]
}
```
Quando un amministratore visualizza il AWS CloudTrail registro di un'azione, può confrontare il nome della sessione con i nomi utente del proprio account. Nell'esempio seguente, l'utente denominato `matjac` ha eseguito l'operazione utilizzando il ruolo denominato `MateoRole`. L'amministratore può quindi contattare Mateo Jackson, che ha il nome dell'utente `matjac`.  

```
    "assumedRoleUser": {
        "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:matjac",
        "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole/matjac"
    }
```
Se si consente [l'accesso tra account mediante i ruoli](id_roles_common-scenarios_aws-accounts.md), gli utenti di un account possono assumere un ruolo in un altro account. L'ARN dell'utente del ruolo assunto elencato in CloudTrail include l'account *in cui esiste il ruolo*. Non include l'account dell'utente che ha assunto il ruolo. Gli utenti sono univoci solo all'interno di un account. Pertanto, si consiglia di utilizzare questo metodo per controllare CloudTrail i registri solo per i ruoli assunti dagli utenti negli account che amministri. Gli utenti potrebbero utilizzare lo stesso nome utente in più account.

**set: SourceIdentity**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizza questa chiave per confrontare l'identità di origine che un principale specifica quando si assume un ruolo con il valore specificato nella policy.  
**Disponibilità**: questa chiave è presente nella richiesta quando il principale fornisce un'identità di origine assumendo un ruolo utilizzando qualsiasi comando CLI o operazione API di AWS STS assume-role. AWS STS `AssumeRole`  
È possibile utilizzare questa chiave in una policy di attendibilità del ruolo per richiedere che gli utenti forniscano un nome di sessione specifico quando assumono un ruolo. Ad esempio, è possibile richiedere alla forza lavoro o alle identità federate di specificare un valore per l'identità di origine. Puoi configurare il provider di identità (IdP) per utilizzare uno degli attributi associati agli utenti, ad esempio un nome utente o un messaggio di posta elettronica come identità di origine. L'IdP passa quindi l'identità di origine come attributo nelle asserzioni o nelle affermazioni a cui invia. AWS Il valore dell'attributo di identità di origine identifica l'utente o l'applicazione che assume il ruolo.  
Dopo che l'utente assume il ruolo, l'attività viene visualizzata in [Log di AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) con il valore dell'identità di origine impostato. In questo modo è più facile per gli amministratori determinare chi o cosa ha eseguito le azioni con un ruolo. AWS Per consentire a un'identità di impostare un'identità di origine, è necessario concedere le autorizzazioni per l'operazione `sts:SetSourceIdentity`.   
A differenza di [`sts:RoleSessionName`](#ck_rolesessionname), dopo aver impostato l'identità di origine, il valore non può essere modificato. È presente nel contesto della richiesta di tutte le operazioni intraprese con il ruolo dall'identità di origine. Il valore persiste nelle sessioni di ruolo successive quando si utilizzano le credenziali di sessione per assumere un altro ruolo. L'assunzione di un ruolo partendo da un altro si chiama [concatenamento del ruolo](id_roles.md#iam-term-role-chaining).   
È possibile utilizzare la chiave di condizione [`aws:SourceIdentity`](reference_policies_condition-keys.md#condition-keys-sourceidentity)globale per controllare ulteriormente l'accesso alle AWS risorse in base al valore dell'identità di origine nelle richieste successive.   
La seguente policy di attendibilità del ruolo consente all'utente IAM `AdminUser` di assumere un ruolo nell'account `111122223333`. Inoltre, concede l'autorizzazione all'`AdminUser` per impostare un'identità di origine, purché il set di identità di origine sia `DiegoRamirez`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdminUserAssumeRole",
            "Effect": "Allow",
            "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"},
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"}
            }
        }
    ]
}
```
Per ulteriori informazioni sull'utilizzo dell'identità di origine, consulta [Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti](id_credentials_temp_control-access_monitor.md).

**set: TaskPolicyArn**  
Lavora con [operatori ARN](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Usa questa chiave per confrontare l'ARN della policy in una AssumeRoot richiesta [sts:](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) con l'ARN della policy specificato nella policy.  
**Disponibilità**: questa chiave è presente nella richiesta quando si effettua una richiesta utilizzando [sts](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html):. AssumeRoot  
Gli amministratori possono utilizzare questa chiave di condizione nelle policy IAM per impedire a ruoli o utenti specifici all’interno dell’account di gestione o dell’account amministratore delegato di eseguire determinate operazioni quando assumono le credenziali root. Per ulteriori informazioni, consulta [Esegui un'attività privilegiata su un account AWS Organizations membro](id_root-user-privileged-task.md).

**sts: TransitiveTagKeys**  
Lavora con [operatori stringa](reference_policies_elements_condition_operators.md#Conditions_String).  
Utilizzare questa chiave per confrontare le chiavi dei tag di sessione transitivi nella richiesta con quelle specificate nella policy.   
**Disponibilità**: questa chiave è presente nella richiesta quando si effettua una richiesta utilizzando credenziali di sicurezza temporanee. Queste includono le credenziali create utilizzando qualsiasi operazione di assume-role o l'operazione `GetFederationToken`.  
Quando si effettua una richiesta utilizzando credenziali di sicurezza temporanee, il [contesto della richiesta](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext) include la chiave di contesto `aws:PrincipalTag`. Questa chiave include un elenco di [tag di sessione](id_session-tags.md), [tag di sessione transitivi](id_session-tags.md#id_session-tags_role-chaining) e tag di ruolo. I tag di sessione transitivi sono tag che persistono in tutte le sessioni successive quando si utilizzano le credenziali di sessione per assumere un altro ruolo. L'assunzione di un ruolo partendo da un altro si chiama [concatenamento del ruolo](id_roles.md#iam-term-role-chaining).   
È possibile utilizzare questa chiave di condizione in una policy per richiedere l'impostazione di specifici tag di sessione come transitivi quando si assume un ruolo o si federa un utente.

# Azioni, risorse e chiavi di condizione per AWS i servizi
<a name="reference_policies_actions-resources-contextkeys"></a>

Ogni AWS servizio può definire azioni, risorse e chiavi di contesto di condizione da utilizzare nelle policy IAM. Per un elenco dei AWS servizi e delle relative azioni, risorse e chiavi di contesto delle condizioni, consulta [Actions, resources and condition keys](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) nel *Service Authorization Reference.*