Utilizzo dei tag per controllare l'accesso alle chiavi 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à.

Utilizzo dei tag per controllare l'accesso alle chiavi KMS

È possibile controllare l'accesso a AWS KMS keys in base ai tag sulla chiave KMS. Ad esempio, è possibile scrivere una policy IAM che consenta ai principali di abilitare e disabilitare solo le chiavi KMS con un tag specifico. In alternativa, è possibile utilizzare una policy IAM per impedire ai principali di utilizzare le chiavi KMS nelle operazioni di crittografia a meno che la chiave KMS non disponga di un tag specifico.

Questa caratteristica fa parte di supporto AWS KMS per Controllo degli accessi basato sugli attributi (ABAC). Per informazioni sull'uso dei tag per controllare l'accesso a AWS, consulta Che cos'è ABAC per AWS? e Controllo dell'accesso alle risorse AWSmediante i tag delle risorse nella Guida per l’utente di IAM. Per informazioni sulla risoluzione dei problemi di accesso relativi a ABAC, vedi Risoluzione dei problemi ABAC per AWS KMS.

Nota

Potrebbero essere necessari fino a cinque minuti per le modifiche di tag e alias per influenzare l'autorizzazione delle chiavi KMS. Le modifiche recenti potrebbero essere visibili nelle operazioni API prima che influiscano sull'autorizzazione.

AWS KMSsupporta la chiave di contesto della condizione globale aws:ResourceTag/tag-key, che consente di controllare l'accesso alle chiavi KMS in base ai tag sulla chiave KMS. Poiché più chiavi KMS possono avere lo stesso tag, questa caratteristica consente di applicare l'autorizzazione a un set selezionato di chiavi KMS. È inoltre possibile modificare facilmente le chiavi KMS nel set modificandone i tag.

Nello stato AWS KMS, la chiave di condizione aws:ResourceTag/tag-key è supportata solo nelle policy IAM. Non è supportato nelle politiche chiave, che si applicano solo a una chiave KMS, o nelle operazioni che non utilizzano una particolare chiave KMS, come le operazioni or. ListKeysListAliases

Il controllo dell'accesso con i tag offre un modo semplice, scalabile e flessibile per gestire le autorizzazioni. Tuttavia, se non è stata progettata e gestita correttamente, può consentire o negare l'accesso alle chiavi KMS inavvertitamente. Se utilizzi tag per controllare l'accesso, prendi in considerazione le seguenti procedure.

  • Utilizza i tag per rafforzare le best practice di Accesso meno privilegiato. Assegna ai principali IAM solo le autorizzazioni necessarie solo per quelle chiavi KMS che devono utilizzare o gestire. Ad esempio, utilizzare i tag per etichettare le chiavi KMS utilizzate per un progetto. Quindi concedere al team del progetto l'autorizzazione a utilizzare solo le chiavi KMS con il tag progetto.

  • Fai attenzione a dare ai principali le autorizzazioni kms:TagResource e kms:UntagResource che consentono di aggiungere, modificare ed eliminare tag. Quando si utilizzano i tag per controllare l'accesso alle chiavi KMS, la modifica di un tag può concedere ai principali l'autorizzazione di utilizzare chiavi KMS che altrimenti non disponevano dell'autorizzazione. Può inoltre negare l'accesso alle chiavi KMS richieste da altre entità per svolgere il proprio lavoro. Gli amministratori delle chiavi che non dispongono dell'autorizzazione per modificare le policy delle chiavi o creare concessioni possono controllare l'accesso alle chiavi KMS se dispongono dell'autorizzazione per gestire i tag.

    Quando possibile, utilizzare una condizione della policy, ad esempio aws:RequestTag/tag-key o aws:TagKeys per limitare le autorizzazioni di un principale ad assegnare tag a particolari tag o modelli di tag su specifiche chiavi KMS.

  • Esaminare i principali nel tuo Account AWS che attualmente dispongono di autorizzazioni per assegnare e rimuovere tag e modificarli, se necessario. Ad esempio, la console policy delle chiavi predefinita include autorizzazioni kms:TagResource e kms:UntagResource su quella chiave KMS. Le policy IAM possono consentire autorizzazioni ad assegnare e rimuovere tag per tutte le chiavi KMS. Ad esempio, la policy AWSKeyManagementServicePowerUsergestita consente ai responsabili di etichettare, rimuovere i tag ed elencare i tag su tutte le chiavi KMS.

  • Prima di impostare una policy che dipende da un tag, esaminare i tag nelle chiavi KMS nel Account AWS. Assicurati che la tua policy si applichi solo ai tag che intendi includere. Usa CloudTrail i registri e gli CloudWatch allarmi per avvisarti delle modifiche ai tag che potrebbero influire sull'accesso alle tue chiavi KMS.

  • Le condizioni delle policy basate su tag utilizzano la corrispondenza dei modelli; non sono legate a una particolare istanza di un tag. Una policy che utilizza chiavi di condizione basate su tag influisce su tutti i tag nuovi ed esistenti che corrispondono al modello. Se si elimina e si ricrea un tag che corrisponde a una condizione della policy, la condizione si applica al nuovo tag, proprio come quello precedente.

Ad esempio, considerare il seguente esempio di policy IAM. Consente ai responsabili di richiamare GenerateDataKeyWithoutPlaintexte decriptare le operazioni solo sulle chiavi KMS del tuo account che si trovano nella regione Asia Pacifico (Singapore) e dispongono di un tag. "Project"="Alpha" È possibile collegare questa policy ai ruoli nel progetto Alpha di esempio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyWithResourceTag", "Effect": "Allow", "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt" ], "Resource": "arn:aws:kms:ap-southeast-1:111122223333:key/*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "Alpha" } } } ] }

La seguente policy IAM di esempio consente al principale di utilizzare qualsiasi chiave KMS nell'account per le operazioni di crittografia. Ma vieta ai principali di utilizzare queste operazioni crittografiche sulle chiavi KMS con un tag "Type"="Reserved" o senza tag "Type".

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMAllowCryptographicOperations", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMDenyOnTag", "Effect": "Deny", "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "aws:ResourceTag/Type": "Reserved" } } }, { "Sid": "IAMDenyNoTag", "Effect": "Deny", "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "Null": { "aws:ResourceTag/Type": "true" } } } ] }