

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

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

Garantire l'accesso a AWS KMS keys è fondamentale per la sicurezza di tutte le AWS risorse. Le chiavi KMS vengono utilizzate per proteggere molte risorse sensibili nell' Account AWS. Prenditi il tempo necessario per progettare le [policy chiave, le policy](key-policies.md) IAM, le [sovvenzioni](grants.md) e le policy degli endpoint VPC che controllano l'accesso alle tue chiavi KMS.

Nelle istruzioni delle policy IAM che controllano l'accesso alle chiavi KMS, utilizza il [principio del privilegio minimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Assegna ai principali IAM solo le autorizzazioni necessarie solo per quelle chiavi KMS che devono utilizzare o gestire. 

Le seguenti best practice si applicano alle policy IAM che controllano l'accesso a AWS KMS chiavi e alias. Per una guida generale alle best practice delle policy IAM, 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*.

**Utilizzo delle policy delle chiavi**  
Quando possibile, concedi le autorizzazioni nelle policy chiave che interessano una chiave KMS anziché in una policy IAM applicabile a molte chiavi KMS, incluse quelle di altri Account AWS. Ciò è particolarmente importante per le autorizzazioni sensibili come [kms: PutKeyPolicy e [kms: ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) ma anche per le operazioni crittografiche che determinano il modo in cui i dati sono protetti.

** CreateKey Limita le autorizzazioni**  
Concedi il permesso di creare chiavi ([kms: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)) solo ai principali che ne hanno bisogno. I principali che creano una chiave KMS impostano anche le policy delle chiavi, in modo che possano concedere a se stessi e agli altri l'autorizzazione per utilizzare e gestire le chiavi KMS che creano. Quando concedi questa autorizzazione, è consigliabile limitarla utilizzando [le condizioni delle policy](policy-conditions.md). Ad esempio, puoi utilizzare la KeySpec condizione [kms:](conditions-kms.md#conditions-kms-key-spec) per limitare l'autorizzazione alle chiavi KMS di crittografia simmetrica.

**Specificare le chiavi KMS in una policy IAM**  
Come best practice, specifica l'[ARN di chiave](concepts.md#key-id-key-ARN) di ciascuna chiave KMS a cui si applica l'autorizzazione nell'elemento `Resource` dell'istruzione della policy. Questa procedura limita l'autorizzazione per le chiavi KMS a quella richiesta dal principale. Ad esempio, questo elemento `Resource` elenca solo le chiavi KMS che il principale deve utilizzare.  

```
"Resource": [
    "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"
]
```
Quando non è possibile specificare le chiavi KMS, utilizza un `Resource` valore che limiti l'accesso alle chiavi KMS in una regione affidabile e affidabile, ad esempio. Account AWS `arn:aws:kms:region:account:key/*` Oppure limita l'accesso alle chiavi KMS in tutte le regioni (\$1) di una persona affidabile, ad esempio. Account AWS`arn:aws:kms:*:account:key/*`  
Non puoi utilizzare un [ID chiave](concepts.md#key-id-key-id), un [nome alias](concepts.md#key-id-alias-name)o l'[ARN dell'alias](concepts.md#key-id-alias-ARN) per rappresentare una chiave KMS nel campo `Resource` di una policy IAM. Se si specifica un alias ARN, la policy si applica all'alias e non alla chiave KMS. Per informazioni generali sulle policy IAM, consulta [Controllo dell'accesso agli alias](alias-access.md).

**Evita "Resource": "\$1" in una policy IAM**  <a name="avoid-resource-star"></a>
Utilizza i caratteri jolly (\$1) in modo giudizioso. In una policy delle chiavi, il carattere jolly nell'elemento `Resource` rappresenta la chiave KMS a cui è collegata la policy delle chiavi. Tuttavia, in una policy IAM, un solo carattere jolly presente nell'`Resource`elemento (`"Resource": "*"`) applica le autorizzazioni a tutte le chiavi KMS relative a tutte le chiavi KMS Account AWS che l'account del principale è autorizzato a utilizzare. Ciò potrebbe includere [le chiavi KMS in altri account Account AWS](key-policy-modifying-external-accounts.md), oltre alle chiavi KMS nell'account del principale.  
Ad esempio, per utilizzare una chiave KMS in un'altra Account AWS, un principale necessita dell'autorizzazione della politica chiave della chiave KMS nell'account esterno e di una politica IAM nel proprio account. Supponiamo che un account arbitrario conceda l'autorizzazione Account AWS [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) sulle sue chiavi KMS. In tal caso, una policy IAM nell'account che concede a un ruolo l'autorizzazione `kms:Decrypt` per tutte le chiavi KMS (`"Resource": "*"`) soddisferebbe la parte IAM del requisito. Di conseguenza, i principali che possono assumere tale ruolo possono ora decrittare i testi cifrati utilizzando la chiave KMS nell'account non attendibile. Le voci relative alle relative operazioni vengono visualizzate nei CloudTrail registri di entrambi gli account.  
In particolare, evita di utilizzare `"Resource": "*"` in un'istruzione della policy che consente le seguenti operazioni API. Queste operazioni possono essere richiamate sulle chiavi KMS di altri. Account AWS  
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html)
+ [Operazioni crittografiche](kms-cryptography.md#cryptographic-operations) [https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)
+ [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html), [ListRetirableGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListRetirableGrants.html), [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html), [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)

**Quando utilizzare "Resource": "\$1"**  <a name="require-resource-star"></a>
In una policy IAM usi un carattere jolly nell'elemento `Resource` solo per le autorizzazioni che lo richiedono. Solo le seguenti autorizzazioni richiedono l'elemento `"Resource": "*"`.  
+ [km: CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
+ [km: GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)
+ [km: ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)
+ [km: ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)
+ [Autorizzazioni per archivi di chiavi personalizzati, come [kms: CreateCustomKeyStore e kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html). ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html)
Le autorizzazioni per le operazioni con alias ([kms:CreateAlias, kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html), [kms: UpdateAlias DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html)[) devono essere allegate all'alias e alla chiave KMS](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html). Puoi utilizzare `"Resource": "*"` in una policy IAM per rappresentare gli alias e le chiavi KMS oppure per specificare gli alias e le chiavi KMS nell'elemento `Resource`. Per alcuni esempi, consulta [Controllo dell'accesso agli alias](alias-access.md).

 

Negli esempi riportati in questo argomento vengono fornite ulteriori informazioni e indicazioni per la progettazione di policy IAM per le chiavi KMS. *Per le migliori pratiche IAM per tutte le AWS risorse, consulta le [migliori pratiche di sicurezza in IAM nella IAM User](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) Guide.*