

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creazione di una policy delle chiavi
<a name="key-policy-overview"></a>

Puoi creare e gestire le policy chiave nella AWS KMS console o utilizzando operazioni AWS KMS API, come [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html), [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)e. [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) 

Quando crei una chiave KMS nella AWS KMS console, la console ti guida attraverso i passaggi per creare una politica chiave basata sulla [politica chiave predefinita per la console](key-policy-default.md). Quando utilizzi `CreateKey` o `ReplicateKey` APIs, se non specifichi una politica chiave, questa APIs applica la politica chiave [predefinita per le chiavi create a livello di codice](key-policy-default.md). Quando usi l'API `PutKeyPolicy`, devi specificare una policy della chiave.

Ogni documento di policy può avere una o più istruzioni di policy. L'esempio seguente mostra un documento di policy della chiave valido con un'istruzione della policy.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DescribePolicyStatement",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/Alice"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeySpec": "SYMMETRIC_DEFAULT"
        }
      }
    }
  ]
}
```

------

**Topics**
+ [Formato della policy della chiave](#key-policy-format)
+ [Elementi in una policy della chiave](#key-policy-elements)
+ [Esempi di policy delle chiavi](#key-policy-example)

## Formato della policy della chiave
<a name="key-policy-format"></a>

Un documento di policy della chiave deve rispettare le seguenti regole:
+ Fino a 32 kilobyte (32.768 byte)
+ L'elemento `Sid` in un'istruzione di policy della chiave non può includere spazi. Gli spazi sono vietati nell'elemento `Sid` di un documento di policy IAM.

Un documento di policy della chiave può includere solo i seguenti caratteri:
+ Caratteri ASCII stampabili
+ I caratteri stampabili nel set di caratteri Basic Latin e Latin-1 Supplement
+ I caratteri speciali di tabulazione (`\u0009`), avanzamento di riga (`\u000A`) e ritorno a capo (`\u000D`)

## Elementi in una policy della chiave
<a name="key-policy-elements"></a>

Un documento di policy delle chiavi deve avere i seguenti elementi:

**Versione**  
Specifica la versione del documento della policy della chiave. Impostare la versione su `2012-10-17` (la versione più recente).

**Dichiarazione**  
Include le istruzioni della policy. Un documento di policy delle chiavi deve avere almeno un'istruzione.  
Ogni istruzione in una policy della chiave può contenere fino a sei elementi. Gli elementi `Effect`, `Principal`, `Action` e `Resource` sono obbligatori.    
**Sid **  
(Facoltativo) L'identificatore di istruzione (`Sid`) è una stringa arbitraria che è possibile utilizzare per descrivere l'istruzione. Il `Sid` in una policy della chiave può includere spazi. Non è possibile includere spazi nell'elemento `Sid` di una policy IAM.  
**Effetto**  
(Obbligatorio) Specifica se concedere o negare le autorizzazioni nell'istruzione di policy. I valori validi sono `Allow` e `Deny`. Se non concedi esplicitamente l'accesso a una chiave KMS, l'accesso viene implicitamente rifiutato. È anche possibile negare esplicitamente l'accesso a una chiave KMS. È possibile eseguire questa operazione per accertarsi che un utente non sia in grado di accedervi, anche quando l'accesso viene concesso da un'altra policy.  
**Principale**  
(Obbligatorio) Il [principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying) è l'identità che ottiene le autorizzazioni specificate nell'istruzione di policy. Puoi specificare utenti IAM Account AWS, ruoli IAM e alcuni AWS servizi come principali in una policy chiave. I [gruppi di utenti](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) IAM non sono un principale valido in alcun tipo di policy.  
Un valore asterisco, ad esempio `"AWS": "*"`, rappresenta tutte le identità AWS in tutti gli account.  
Non impostare il principale su un asterisco (\$1) in un'istruzione della policy della chiave che consenta autorizzazioni, a meno che non utilizzi [condizioni](policy-conditions.md) per limitare la policy della chiave. Un asterisco indica ogni identità in ogni Account AWS autorizzazione all'uso della chiave KMS, a meno che un'altra dichiarazione politica non lo neghi esplicitamente. Gli utenti di altri paesi Account AWS possono utilizzare la tua chiave KMS ogni volta che dispongono delle autorizzazioni corrispondenti nel proprio account.
Le best practice di IAM disincentivano l'uso di utenti IAM con credenziali a lungo termine. Quando possibile, utilizza i ruoli IAM che forniscono credenziali temporanee. Per i dettagli, consulta la sezione [Best practice di sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l'utente IAM*.
Quando il principale in una istruzione di policy delle chiavi è un [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) espresso come `arn:aws:iam::111122223333:root"`, l'istruzione non fornisce l'autorizzazione ad alcun principale IAM. Al contrario, dà il Account AWS permesso di utilizzare le politiche IAM per delegare le autorizzazioni specificate nella politica chiave. (Un principale in formato `arn:aws:iam::111122223333:root"` *non* rappresenta l'[utente root dell'account AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html), nonostante l'uso di "root" nell'identificatore dell'account. Tuttavia, il principale dell'account rappresenta l'account e i relativi amministratori, incluso l'utente root dell'account.)  
Quando il principale è un altro Account AWS o i suoi responsabili, le autorizzazioni sono effettive solo quando l'account è abilitato nella regione con la chiave KMS e la policy chiave. Per informazioni sulle regioni non abilitate per impostazione predefinita ("regioni attivate"), consulta [Gestione delle Regioni AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) nella *Riferimenti generali di AWS*.  
Per consentire a un altro Account AWS o ai suoi responsabili di utilizzare una chiave KMS, devi fornire l'autorizzazione in una politica chiave e in una politica IAM nell'altro account. Per informazioni dettagliate, vedi [Autorizzazione per gli utenti in altri account di utilizzare una chiave KMS](key-policy-modifying-external-accounts.md).  
**Azione**  
(Obbligatorio) Specificano le operazioni API da permettere o negare. Ad esempio, l'`kms:Encrypt`azione corrisponde all'operazione AWS KMS [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html). È possibile elencare più di un'operazione in un'istruzione di policy. Per ulteriori informazioni, consulta [Riferimento per le autorizzazioni](kms-api-permissions-reference.md).  
Se l'elemento `Action` obbligatorio non è presente nell'istruzione della policy delle chiavi, l'istruzione non avrà alcun effetto. Una dichiarazione politica chiave senza un `Action` elemento non si applica a nessuna chiave KMS.   
Quando manca un `Action` elemento in una dichiarazione politica chiave, la AWS KMS console riporta correttamente un errore, ma l'operazione viene [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)eseguita correttamente [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) APIs , anche se la dichiarazione politica è inefficace.  
**Risorsa**  
(Obbligatorio) In una policy della chiave, il valore dell'elemento Resource (Risorsa) è `"*"`, che significa "questa chiave KMS". L'asterisco (`"*"`) identifica la chiave KMS a cui è collegata la policy delle chiavi.  
Se l'elemento `Resource` obbligatorio non è presente nell'istruzione della policy delle chiavi, l'istruzione non avrà alcun effetto. Una istruzione di policy delle chiavi senza un elemento `Resource` non si applica ad alcuna chiave KMS.   
Quando manca un `Resource` elemento in una dichiarazione politica chiave, la AWS KMS console segnala correttamente un errore, ma l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)errore viene restituito [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) APIs correttamente, anche se la dichiarazione politica è inefficace.  
**Condizione**  
(Facoltativo) Le condizioni specificano i requisiti da soddisfare affinché una policy della chiave diventi effettiva. Con le condizioni, AWS può valutare il contesto di una richiesta API per determinare se l'informativa sulla politica è applicabile o meno.   
Per specificare le condizioni, si utilizzano *chiavi di condizione* predefinite. AWS KMS supporta chiavi di [condizione AWS globali e chiavi](conditions-aws.md) di [AWS KMS condizione](conditions-kms.md). Per supportare il controllo degli accessi basato sugli attributi (ABAC), AWS KMS fornisce chiavi di condizione che controllano l'accesso a una chiave KMS basata su tag e alias. Per informazioni dettagliate, vedi [ABAC per AWS KMS](abac.md).  
Il formato per una condizione è:  

```
"Condition": {"condition operator": {"condition key": "condition value"}}
```
come per esempio:  

```
"Condition": {"StringEquals": {"kms:CallerAccount": "111122223333"}}
```

*Per ulteriori informazioni sulla sintassi delle policy, consulta [AWS IAM AWS Policy Reference nella IAM User Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html).*

## Esempi di policy delle chiavi
<a name="key-policy-example"></a>

L'esempio seguente mostra una policy della chiave completa per una chiave KMS di crittografia simmetrica. È utile come riferimento mentre leggi i concetti della policy delle chiavi in questo capitolo. Questa policy delle chiavi combina le istruzioni di policy di esempio della sezione precedente sulla [policy delle chiavi predefinita](key-policy-default.md) in un'unica policy delle chiavi che ottiene quanto segue:
+ Consente all'esempio Account AWS, 111122223333, l'accesso completo alla chiave KMS. Concede all'account e ai relativi amministratori, incluso l'utente root dell'account (per le emergenze), l'uso delle policy IAM nell'account per consentire l'accesso alla chiave KMS.
+ Consente al ruolo IAM `ExampleAdminRole` di amministrare la chiave KMS.
+ Permette al ruolo IAM `ExampleUserRole` di utilizzare la chiave KMS.

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

****  

```
{
    "Id": "key-consolepolicy",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "AllowKeyAdministratorsAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleAdminRole"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion",
                "kms:RotateKeyOnDemand"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowKeyUse",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowAttachmentPersistentResources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
```

------