Utilizzate i tag per controllare l'accesso alle KMS 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à.

Utilizzate i tag per controllare l'accesso alle KMS chiavi

Puoi controllare l'accesso a in AWS KMS keys base ai tag sulla KMS chiave. Ad esempio, puoi scrivere una IAM policy che consenta ai principali di abilitare e disabilitare solo le KMS chiavi che hanno un tag particolare. Oppure è possibile utilizzare una IAM policy per impedire ai principali di utilizzare KMS le chiavi nelle operazioni crittografiche a meno che la KMS chiave non abbia un tag particolare.

Questa funzionalità fa parte del AWS KMS supporto per il controllo degli accessi basato sugli attributi (). ABAC Per informazioni sull'utilizzo dei tag per controllare l'accesso alle AWS risorse, vedi A cosa serve? ABAC AWS e Controllo dell'accesso alle AWS risorse utilizzando i tag delle risorse nella Guida IAM per l'utente. Per assistenza nella risoluzione dei problemi di accesso relativi aABAC, vedereRisoluzione dei problemi per ABAC AWS KMS.

Nota

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

AWS KMS supporta la chiave di contesto della condizione globale aws:ResourceTag/tag-key, che consente di controllare l'accesso alle KMS chiavi in base ai tag sulla KMS chiave. Poiché più KMS chiavi possono avere lo stesso tag, questa funzionalità consente di applicare l'autorizzazione a un set selezionato di KMS chiavi. Puoi anche cambiare facilmente le KMS chiavi del set cambiando i relativi tag.

In AWS KMS, la chiave di aws:ResourceTag/tag-key condizione è supportata solo nelle IAM politiche. Non è supportata nelle politiche chiave, che si applicano solo a una KMS chiave, o nelle operazioni che non utilizzano una KMS chiave particolare, come le ListAliasesoperazioni ListKeyso.

Il controllo dell'accesso con i tag offre un modo semplice, scalabile e flessibile per gestire le autorizzazioni. Tuttavia, se non è progettato e gestito correttamente, può consentire o negare l'accesso alle KMS chiavi 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. Concedi IAM ai responsabili solo le autorizzazioni di cui hanno bisogno solo sulle KMS chiavi che devono usare o gestire. Ad esempio, usa i tag per etichettare le KMS chiavi utilizzate per un progetto. Quindi concedi al team di progetto il permesso di utilizzare solo KMS le chiavi con il tag del progetto.

  • Fai attenzione a dare ai principali le autorizzazioni kms:TagResource e kms:UntagResource che consentono di aggiungere, modificare ed eliminare tag. Quando usi i tag per controllare l'accesso alle KMS chiavi, la modifica di un tag può dare ai responsabili il permesso di usare KMS chiavi che altrimenti non avrebbero il permesso di usare. Può anche negare l'accesso alle KMS chiavi di cui altri dirigenti hanno bisogno per svolgere il proprio lavoro. Gli amministratori chiave che non dispongono dell'autorizzazione per modificare le politiche chiave o creare sovvenzioni possono controllare l'accesso alle KMS chiavi se dispongono dell'autorizzazione per gestire i tag.

    Quando possibile, utilizza una condizione politica, ad esempio aws:RequestTag/tag-key o aws:TagKeys per limitare le autorizzazioni di etichettatura del principale a tag o modelli di tag particolari su chiavi particolari. KMS

  • Rivedi i principi del tuo sistema Account AWS che attualmente dispongono delle autorizzazioni di etichettatura e rimozione dei tag e modificali, se necessario. Ad esempio, la politica delle chiavi predefinita della console per gli amministratori chiave include kms:TagResource l'autorizzazione relativa a tale chiave. kms:UntagResource KMS IAMle politiche potrebbero consentire le autorizzazioni di etichettatura e rimozione dei tag su tutte le chiavi. KMS Ad esempio, la policy AWSKeyManagementServicePowerUsergestita consente ai principali di etichettare, rimuovere tag ed elencare i tag su tutte le chiavi. KMS

  • Prima di impostare una politica che dipenda da un tag, esamina i tag sulle KMS chiavi del tuo. 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 KMS chiavi.

  • 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, considera la seguente IAM politica. Consente ai responsabili di richiamare le operazioni GenerateDataKeyWithoutPlaintexte decriptare solo sulle KMS chiavi 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 IAM politica di esempio consente ai principali di utilizzare qualsiasi KMS chiave dell'account per determinate operazioni crittografiche. Ma proibisce ai principali di utilizzare queste operazioni crittografiche su KMS chiavi con o senza tag. "Type"="Reserved" "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" } } } ] }