Autorizzazione per gli utenti in altri account di utilizzare una chiave KMS - 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à.

Autorizzazione per gli utenti in altri account di utilizzare una chiave KMS

Puoi consentire a utenti o ruoli in un Account AWS diverso di usare una chiave KMS nel tuo account. L'accesso tra account richiede l'autorizzazione nella policy chiave della chiave dKMS e in una policy IAM nell'account dell'utente esterno.

L'autorizzazione tra account è valida solo per le seguenti operazioni:

Se concedi a un utente in un account diverso l'autorizzazione per altre operazioni, tali autorizzazioni non hanno effetto. Ad esempio, se concedi a un account principale kms: ListKeys permission in una policy IAM o kms: ScheduleKeyDeletion permission on a KMS key in una key policy chiave, i tentativi dell'utente di richiamare tali operazioni sulle tue risorse continuano a fallire.

Per informazioni dettagliate sull'utilizzo delle chiavi KMS in account diversi per le operazioni AWS KMS, consulta la colonna Utilizzo tra account in AWS KMS autorizzazioni e Utilizzo delle chiavi KMS in altri account. C'è anche una sezione Utilizzo tra account in ogni descrizione API nella Documentazione di riferimento dell'API AWS Key Management Service.

avvertimento

Fai attenzione a concedere ai principali le autorizzazioni per utilizzare le chiavi KMS. Quando possibile, segui il principio del privilegio minimo. Offri agli utenti l'accesso solo alle chiavi KMS necessarie solo per le operazioni che richiedono.

Inoltre, presta cautela nell'utilizzare qualsiasi chiave KMS sconosciuta, in particolare una chiave KMS in un account diverso. Gli utenti malintenzionati potrebbero concederti le autorizzazioni per utilizzare la loro chiave KMS e ottenere informazioni su di te o sul tuo account.

Per informazioni sull'utilizzo delle policy per proteggere le risorse dell'account, consulta Best practice per le policy IAM.

Per concedere l'autorizzazione a utilizzare una chiave KMS a utenti e ruoli in un altro account, è necessario utilizzare due diversi tipi di policy:

  • La policy chiave per la chiave KMS deve fornire all'account esterno (o utenti e ruoli nell'account esterno) l'autorizzazione per utilizzare la chiave KMS. La policy delle chiavi si trova nell'account proprietario della chiave KMS.

  • Le policy IAM nell'account esterno devono delegare le autorizzazioni delle policy delle chiavi ai relativi utenti e ruoli. Queste policy sono impostate nell'account esterno e concedono autorizzazioni agli utenti e ai ruoli in tale account.

La policy chiave determina chi può avere accesso alla chiave KMS. La policy IAM determina chi ha accesso alla chiave KMS. Né la policy chiave né la policy IAM sono sufficienti, è necessario modificarle entrambe.

Per modificare la politica chiave, puoi utilizzare la Policy View in AWS Management Console o utilizzare le CreateKeyoperazioni or. PutKeyPolicy Per informazioni sull'impostazione della policy delle chiavi durante la creazione di una chiave KMS, consulta Creazione di chiavi KMS utilizzabili da altri account.

Per informazioni sulla modifica delle policy IAM, consulta Utilizzo delle politiche IAM con AWS KMS.

Per un esempio che mostra come la policy chiave e le policy IAM collaborano per consentire l'utilizzo di una chiave KMS in un altro account, consulta Esempio 2: un utente assume un ruolo con l'autorizzazione per l'utilizzo di una chiave KMS in un altro Account AWS.

Puoi visualizzare le operazioni AWS KMS tra account risultanti nella chiave KMS nei logs AWS CloudTrail. Le operazioni che usano le chiavi KMS in altri account vengono registrate sia nell'account del chiamante che nell'account del proprietario della chiave KMS.

Nota

Gli esempi in questo argomento mostrano come utilizzare insieme una policy chiave e una policy IAM per fornire e limitare l'accesso a una chiave KMS. Questi esempi generici non hanno lo scopo di rappresentare le autorizzazioni che un particolare Servizio AWS richiede per una chiave KMS. Per informazioni sulle autorizzazioni richieste da un Servizio AWS, consulta l'argomento relativo alla crittografia nella documentazione del servizio.

Fase 1: aggiungere una dichiarazione di policy delle chiavi nell'account locale

La policy delle chiavi per una chiave KMS è il principale determinante di chi può accedere alla chiave KMS e quali operazioni può eseguire. La policy della chiave è sempre definita nell'account proprietario della chiave KMS. A differenza delle policy IAM, le policy delle chiavi non specificano una risorsa. La risorsa è la chiave KMS associata alla policy delle chiavi. Nel processo di assegnazione delle autorizzazioni multi-account, la policy delle chiavi per la chiave KMS deve fornire all'account esterno (o utenti e ruoli nell'account esterno) l'autorizzazione per utilizzare la chiave KMS.

Per concedere a un account esterno l'autorizzazione per utilizzare la chiave KMS, aggiungi una dichiarazione alla policy delle chiavi che specifica l'account esterno. Nell'elemento Principal della policy delle chiavi, immetti l'Amazon Resource Name (ARN) dell'account esterno.

Quando specifichi un account esterno in una policy chiave, gli amministratori IAM nell'account esterno possono utilizzare le policy IAM per delegare tali autorizzazioni a qualsiasi utente e ruolo nell'account esterno. Possono anche decidere quali delle operazioni specificate nella policy delle chiavi possono eseguire gli utenti e i ruoli.

Le autorizzazioni concesse all'account esterno e alle relative entità principali sono valide solo se l'account esterno è abilitato nella Regione che ospita la chiave KMS e le relative policy chiave. Per informazioni sulle regioni non abilitate per impostazione predefinita ("regioni attivate"), consulta Gestione delle Regioni AWS nella Riferimenti generali di AWS.

Ad esempio, supponiamo che tu voglia permettere all'account 444455556666 di utilizzare una chiave KMS di crittografia simmetrica nell'account 111122223333. A tale scopo, aggiungi una dichiarazione di policy come quella nell'esempio seguente alla policy delle chiavi per la chiave KMS nell'account 111122223333. Questa istruzione di policy concede all'account esterno, 444455556666, l'autorizzazione per utilizzare la chiave KMS nelle operazioni di crittografia per le chiavi KMS di crittografia simmetrica.

Nota

L'esempio seguente rappresenta un esempio di policy delle chiavi per la condivisione di una chiave KMS con un altro account. Sostituisci i valori Sid, Principal e Action di esempio con valori validi per l'uso previsto della tua chiave KMS.

{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Invece di concedere l'autorizzazione all'account esterno, puoi specificare particolari utenti e ruoli esterni nella policy delle chiavi. Tuttavia, tali utenti e ruoli non possono utilizzare la chiave KMS finché gli amministratori IAM nell'account esterno non collegano le policy IAM appropriate alle loro identità. Le policy IAM possono concedere l'autorizzazione a tutti o a un sottoinsieme di utenti e ruoli esterni specificati nella policy delle chiavi. Inoltre, possono consentire tutte o un sottoinsieme delle operazioni specificate nella policy delle chiavi.

La specifica delle identità in una policy delle chiavi limita le autorizzazioni che gli amministratori IAM nell'account esterno possono fornire. Tuttavia, rende più complessa la gestione delle policy con due account. Ad esempio, supponiamo che sia necessario aggiungere un utente o un ruolo. È necessario aggiungere tale identità alla policy delle chiavi nell'account proprietario della chiave KMS e creare policy IAM nell'account dell'identità.

Per specificare particolari utenti o ruoli esterni in una policy delle chiavi, nell'elemento Principal immettere l'Amazon Resource Name (ARN) di un utente o un ruolo nell'account esterno.

Ad esempio, la seguente istruzione di policy delle chiavi di esempio consente a ExampleRole nell'account 444455556666 di utilizzare una chiave KMS nell'account 111122223333. Questa istruzione di policy della chiave concede all'account esterno, 444455556666, l'autorizzazione per utilizzare la chiave KMS nelle operazioni di crittografia per le chiavi KMS di crittografia simmetrica.

Nota

L'esempio seguente rappresenta un esempio di policy delle chiavi per la condivisione di una chiave KMS con un altro account. Sostituisci i valori Sid, Principal e Action di esempio con valori validi per l'uso previsto della tua chiave KMS.

{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
Nota

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 dà ogni identità in ogni Account AWS l'autorizzazione a utilizzare la chiave KMS, a meno che un'altra istruzione di policy lo neghi esplicitamente. Gli utenti in altri Account AWS possono utilizzare la tua chiave KMS ogni qualvolta dispongono delle autorizzazioni corrispondenti nel loro account.

È inoltre necessario decidere quali autorizzazioni concedere all'account esterno. Per l'elenco delle autorizzazioni sulle chiavi KMS, consulta AWS KMS autorizzazioni.

Puoi concedere all'account esterno l'autorizzazione per utilizzare la chiave KMS nelle operazioni di crittografia e utilizzare la chiave KMS con i servizi AWS integrati con AWS KMS. A tale scopo, utilizza la sezione Key Users (Utenti chiave) di AWS Management Console. Per informazioni dettagliate, vedi Creazione di chiavi KMS utilizzabili da altri account.

Per specificare altre autorizzazioni nelle policy delle chiavi, modifica il documento della policy delle chiavi. Ad esempio, potresti voler concedere agli utenti l'autorizzazione per decrittare ma non crittografare, oppure l'autorizzazione per visualizzare la chiave KMS ma non utilizzarla. Per modificare il documento di policy chiave, è possibile utilizzare la Policy View nelle PutKeyPolicyoperazioni AWS Management Console CreateKeyo nelle operazioni.

Fase 2: aggiungere le policy IAM nell'account esterno

La policy delle chiavi nell'account proprietario della chiave KMS imposta l'intervallo valido per le autorizzazioni. Tuttavia, gli utenti e i ruoli nell'account esterno non possono utilizzare la chiave KMS finché non si collegano alle policy IAM che delegano tali autorizzazioni o utilizzano le concessioni per gestire l'accesso alla chiave KMS. Le policy IAM sono impostate nell'account esterno.

Se la policy delle chiavi concede l'autorizzazione all'account esterno, puoi collegare le policy IAM a qualsiasi utente o ruolo nell'account. Tuttavia, se la policy delle chiavi concede l'autorizzazione a determinati utenti o ruoli, la policy IAM può concedere tali autorizzazioni solo a tutti o a un sottoinsieme degli utenti e dei ruoli specificati. Se una policy IAM concede alla chaive KMS l'accesso ad altri utenti o ruoli esterni, non ha alcun effetto.

La policy delle chiavi limita anche le operazioni nella policy IAM. La policy IAM può delegare tutte le operazioni o un sottoinsieme di quelle specificate nella policy delle chiavi. Se la policy IAM elenca le operazioni che non sono specificate nella policy delle chiavi, tali autorizzazioni non sono valide.

La policy IAM dell'esempio seguente consente al principale di utilizzare la chiave KMS nell'account 111122223333 per le operazioni di crittografia. Per concedere questa autorizzazione a utenti e ruoli nell'account 444455556666, collega la policy agli utenti o ai ruoli nell'account 444455556666.

Nota

L'esempio seguente rappresenta un esempio di policy IAM per la condivisione di una chiave KMS con un altro account. Sostituisci i valori Sid, Resource e Action di esempio con valori validi per l'uso previsto della tua chiave KMS.

{ "Sid": "AllowUseOfKeyInAccount111122223333", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

Tieni presente quanto segue riguardo a questa policy:

  • A differenza delle policy delle chiavi, le istruzioni delle policy IAM non contengono l'elemento Principal. Nelle policy IAM, il principale è implicito nell'identità a cui è collegata la policy.

  • L'elemento Resource nella policy IAM identifica la chiave KMS che l'entità principale può utilizzare. Per specificare una chiave KMS, aggiungi l'ARN chiave all'elemento Resource.

  • È possibile specificare più di una chiave KMS nell'elemento Resource. Tuttavia, se non specifichi particolari chiavi KMS nell'elemento Resource, potresti inavvertitamente concedere l'accesso a più chiavi KMS del previsto.

  • Per consentire all'utente esterno di utilizzare la chiave KMS con i servizi AWS che si integrano con AWS KMS, potrebbe essere necessario aggiungere autorizzazioni alla policy delle chiavi o alla policy IAM. Per informazioni dettagliate, vedi Autorizzazione per l'utilizzo di chiavi KMS esterne con Servizi AWS.

Per ulteriori informazioni sull'utilizzo di policy IAM, consulta Policy IAM.

Creazione di chiavi KMS utilizzabili da altri account

Quando si utilizza l'CreateKeyoperazione per creare una chiave KMS, è possibile utilizzare il relativo Policy parametro per specificare una politica chiave che consenta a un account esterno, o a utenti e ruoli esterni, l'autorizzazione a utilizzare la chiave KMS. È inoltre necessario aggiungere policy IAM nell'account esterno che delegano queste autorizzazioni agli utenti e ai ruoli dell'account, anche quando gli utenti e i ruoli sono specificati nella policy delle chiavi. È possibile modificare la politica delle chiavi in qualsiasi momento utilizzando l'PutKeyPolicyoperazione.

Quando crei una chiave KMS nella AWS Management Console, crei anche la relativa policy chiave. Quando selezioni le identità nelle sezioni Amministratori delle chiavi e Utenti delle chiavi, AWS KMS aggiunge istruzioni di policy per tali identità alla policy chiave della chiave KMS.

La sezione Key Users (Utenti chiave) consente inoltre di aggiungere account esterni come utenti delle chiavi.

L'elemento della console che aggiunge account esterni alla policy delle chiavi per una chiave KMS.

Quando immetti l'ID account di un account esterno, AWS KMS aggiunge due istruzioni alla policy delle chiavi. Questa operazione influisce solo sulla policy delle chiavi. Gli utenti e i ruoli nell'account esterno non possono utilizzare la chiave KMS finché non colleghi le policy IAM per concedere loro alcune o tutte queste autorizzazioni.

La prima istruzione di policy chiave concede all'account esterno l'autorizzazione per utilizzare la chiave KMS nelle operazioni di crittografia.

Nota

Gli esempi seguenti rappresentano un esempio di policy delle chiavi per la condivisione di una chiave KMS con un altro account. Sostituisci i valori Sid, Principal e Action di esempio con valori validi per l'uso previsto della tua chiave KMS.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

La seconda istruzione di policy chiave consente all'account esterno di creare, visualizzare e revocare concessioni sulla chiave KMS, ma solo quando la richiesta proviene da un servizio AWS integrato con AWS KMS. Queste autorizzazioni consentono altri servizi AWS che crittografano i dati utente di utilizzare la chiave KMS.

Queste autorizzazioni sono progettate per le chiavi KMS che crittografano i dati degli utenti nei AWS servizi, come Amazon. WorkMail Questi servizi in genere utilizzano concessioni per ottenere le autorizzazioni necessarie per utilizzare la chiave KMS per conto dell'utente. Per informazioni dettagliate, vedi Autorizzazione per l'utilizzo di chiavi KMS esterne con Servizi AWS.

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }

Se queste autorizzazioni non soddisfano le tue esigenze, puoi modificarle nella visualizzazione delle politiche della console o utilizzando l'operazione. PutKeyPolicy Puoi indicare utenti e ruolo esterni specifici anziché concedere l'autorizzazione all'account esterno. Puoi modificare le operazioni specificate dalla policy. Inoltre, puoi utilizzare le condizioni globali e di policy AWS KMS per perfezionare le autorizzazioni.

Autorizzazione per l'utilizzo di chiavi KMS esterne con Servizi AWS

Puoi concedere a un utente in un account diverso l'autorizzazione per utilizzare la chiave KMS con un servizio integrato con AWS KMS. Ad esempio, un utente in un account esterno può utilizzare la chiave KMS per crittografare gli oggetti in un bucket Amazon S3 o per crittografare i segreti archiviati in AWS Secrets Manager.

La policy delle chiavi deve fornire all'utente esterno o all'account dell'utente esterno l'autorizzazione per utilizzare la chiave KMS. Inoltre, è necessario collegare policy IAM all'identità che concede all'utente l'autorizzazione per utilizzare il Servizio AWS. Il servizio potrebbe richiedere che gli utenti dispongano di autorizzazioni aggiuntive nella policy chiave o nella policy IAM. Per un elenco delle autorizzazioni richieste dal Servizio AWS per una chiave gestita dal cliente, consulta l'argomento relativo alla protezione dei dati nel capitolo sulla sicurezza della guida per l'utente o la guida per gli sviluppatori del servizio.

Utilizzo delle chiavi KMS in altri account

Se si dispone dell'autorizzazione per utilizzare una chiave KMS in un Account AWS diverso, è possibile utilizzare la chiave KMS nella AWS Management Console, negli SDK AWS, in AWS CLI e in AWS Tools for PowerShell.

Per identificare una chiave KMS in un account diverso in un comando della shell o in una richiesta API, utilizzare i seguenti identificatori chiave.

Se si immette solo un ID chiave o un nome alias, AWS presume che la chiave KMS sia nell'account.

La console AWS KMS non visualizza le chiavi KMS in altri account, anche se si dispone dell'autorizzazione per utilizzarle. Inoltre, gli elenchi di chiavi KMS visualizzati nelle console di altri servizi AWS non includono chiavi KMS in altri account.

Per specificare una chiave KMS in un account diverso nella console di un servizio AWS, è necessario immettere l'ARN della chiave o l'ARN dell'alias della chiave KMS. L'identificatore chiave richiesto varia a seconda del servizio e potrebbe differire tra la console del servizio e le relative operazioni API. Per dettagli, consultare la documentazione del servizio.