Creazione di una policy delle chiavi - AWS Key Management Service

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

È possibile creare e gestire le politiche chiave nella AWS KMS console, utilizzando operazioni AWS KMS API, come CreateKey, and ReplicateKeyPutKeyPolicy, o utilizzando un modello.AWS CloudFormation

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. Quando utilizzi le API CreateKey o ReplicateKey, se non specifichi una policy della chiave, le API applicano la policy della chiave predefinita per le chiavi create a livello di programmazione. 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.

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

Formato della policy della chiave

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

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 è l'identità che ottiene le autorizzazioni specificate nell'istruzione di policy. Puoi specificare gli utenti IAM Account AWS, i ruoli IAM e alcuni AWS servizi come principali in una policy chiave. I gruppi di utenti 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.

Importante

Non impostare il principale su un asterisco (*) in un'istruzione della policy della chiave che consenta autorizzazioni, a meno che non utilizzi condizioni 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.

Nota

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 nella Guida per l'utente IAM.

Quando il principale in una istruzione di policy delle chiavi è un principale Account AWS 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, 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 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.

Azione

(Obbligatorio) Specificano le operazioni API da permettere o negare. Ad esempio, l'kms:Encryptazione corrisponde all'operazione AWS KMS Encrypt. È possibile elencare più di un'operazione in un'istruzione di policy. Per ulteriori informazioni, consultare Riferimento per le autorizzazioni.

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.

Nota

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 un'informativa chiave, la AWS KMS console segnala correttamente un errore, ma le PutKeyPolicyAPI CreateKeyand hanno successo, anche se l'informativa è inefficace.

Condition

(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 di AWS KMS condizione. 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.

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.

Esempi di policy delle chiavi

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

{ "Id": "key-consolepolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "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": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }