Risoluzione dei problemi per ABAC AWS 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à.

Risoluzione dei problemi per ABAC AWS KMS

Il controllo dell'accesso alle KMS chiavi in base ai relativi tag e alias è comodo e potente. Tuttavia, è incline a alcuni errori prevedibili che vorrai prevenire.

Accesso modificato a causa della modifica dei tag

Se un tag viene eliminato o il suo valore viene modificato, ai mandanti che hanno accesso a una KMS chiave basata solo su quel tag verrà negato l'accesso alla chiave. KMS Ciò può verificarsi anche quando un tag incluso in una dichiarazione di rifiuto viene aggiunto a una KMS chiave. L'aggiunta di un tag relativo alla politica a una KMS chiave può consentire l'accesso ai responsabili a cui dovrebbe essere negato l'accesso a una chiave. KMS

Ad esempio, supponiamo che un principale abbia accesso a una KMS chiave basata sul Project=Alpha tag, ad esempio l'autorizzazione fornita dalla seguente dichiarazione politica di esempio. IAM

{ "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" } } } ] }

Se il tag viene eliminato da quella KMS chiave o il valore del tag viene modificato, il principale non è più autorizzato a utilizzare la KMS chiave per le operazioni specificate. Ciò potrebbe diventare evidente quando il responsabile tenta di leggere o scrivere dati in un AWS servizio che utilizza una chiave gestita dal cliente. Per tracciare la modifica del tag, esamina CloudTrail i log e UntagResource le voci. TagResource

Per ripristinare l'accesso senza aggiornare la politica, modifica i tag sulla KMS chiave. Questa azione ha un impatto minimo diverso dal breve periodo in cui sta entrando in vigore AWS KMS. Per evitare un errore come questo, dai le autorizzazioni per l'assegnazione e l'eliminazione di tag solo ai principali che ne hanno bisogno e limita le autorizzazioni per l'assegnazione di tag ai tag che devono gestire. Prima di modificare un tag, cerca le politiche per rilevare l'accesso che dipende dal tag e ottieni KMS le chiavi in tutte le regioni che hanno il tag. Potresti prendere in considerazione la creazione di un CloudWatch allarme Amazon quando vengono modificati determinati tag.

Modifica dell'accesso a causa della modifica degli alias

Se un alias viene eliminato o associato a una KMS chiave diversa, ai mandanti che hanno accesso alla KMS chiave solo in base a quell'alias verrà negato l'accesso alla chiave. KMS Ciò può verificarsi anche quando un alias associato a una KMS chiave è incluso in una dichiarazione di politica di negazione. L'aggiunta di un alias relativo alla politica a una KMS chiave può inoltre consentire l'accesso ai responsabili a cui dovrebbe essere negato l'accesso a una chiave. KMS

Ad esempio, la seguente dichiarazione di IAM politica utilizza la chiave kms: ResourceAliases condition per consentire l'accesso alle KMS chiavi in diverse regioni dell'account con uno qualsiasi degli alias specificati.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*", "kms:Decrypt" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAnyValue:StringEquals": { "kms:ResourceAliases": [ "alias/ProjectAlpha", "alias/ProjectAlpha_Test", "alias/ProjectAlpha_Dev" ] } } } ] }

Per tracciare la modifica dell'alias, esamina i CloudTrail log e le CreateAliasimmissioni. UpdateAliasDeleteAlias

Per ripristinare l'accesso senza aggiornare la politica, modifica l'alias associato alla chiave. KMS Poiché ogni alias può essere associato a una sola KMS chiave in un account e in una regione, la gestione degli alias è un po' più difficile della gestione dei tag. Il ripristino dell'accesso ad alcuni principali su una KMS chiave può impedire allo stesso o ad altri principali di accedere a una chiave diversa. KMS

Per evitare questo errore, assegna autorizzazioni di gestione degli alias solo alle entità principali che ne hanno bisogno e limita le autorizzazioni per la gestione degli alias agli alias che devono gestire. Prima di aggiornare o eliminare un alias, cerca le politiche per rilevare l'accesso che dipende dall'alias e trova le KMS chiavi in tutte le regioni associate all'alias.

Accesso negato a causa di quota alias

Gli utenti autorizzati a utilizzare una KMS chiave in base a una ResourceAliases condizione kms: riceveranno un'AccessDeniedeccezione se la KMS chiave supera gli alias predefiniti per quota di KMS chiavi per quell'account e quella regione.

Per ripristinare l'accesso, elimina gli alias associati alla KMS chiave in modo che rispetti la quota. Oppure utilizzate un meccanismo alternativo per consentire agli utenti di accedere alla chiave. KMS

Modifica dell'autorizzazione ritardata

Le modifiche apportate ai tag e agli alias potrebbero richiedere fino a cinque minuti per influire sull'autorizzazione delle KMS chiavi. Di conseguenza, una modifica del tag o dell'alias potrebbe riflettersi nelle risposte delle API operazioni prima che influiscano sull'autorizzazione. È probabile che questo ritardo sia più lungo del breve ritardo di coerenza eventuale che influisce sulla maggior parte delle AWS KMS operazioni.

Ad esempio, potresti avere una IAM politica che consente a determinati principali di utilizzare qualsiasi KMS chiave con un "Purpose"="Test" tag. Quindi aggiungi il "Purpose"="Test" tag a una KMS chiave. Sebbene l'TagResourceoperazione sia stata completata e la ListResourceTagsrisposta confermi che il tag è stato assegnato alla KMS chiave, i responsabili potrebbero non avere accesso alla KMS chiave per un massimo di cinque minuti.

Per evitare errori, inserisci questo ritardo previsto nel tuo codice.

Richieste non riuscite a causa di aggiornamenti alias

Quando si aggiorna un alias, si associa un alias esistente a una chiave diversa. KMS

La decrittografia e ReEncryptle richieste che specificano il nome o l'alias dell'alias ARN potrebbero non riuscire perché l'alias è ora associato a una KMS chiave che non ha crittografato il testo cifrato. Questa situazione in genere restituisce IncorrectKeyException o NotFoundException. Oppure, se la richiesta ha il DestinationKeyId parametro no KeyId or, l'operazione potrebbe fallire con un'AccessDeniedeccezione perché il chiamante non ha più accesso alla chiave che ha crittografato il testo cifrato. KMS

È possibile tracciare la modifica esaminando CloudTrail i log e le voci di CreateAliasregistro. UpdateAliasDeleteAlias È inoltre possibile utilizzare il valore del LastUpdatedDate campo nella ListAliasesrisposta per rilevare una modifica.

Ad esempio, la seguente risposta di ListAliasesesempio mostra che l'ProjectAlpha_Testalias nella kms:ResourceAliases condizione è stato aggiornato. Di conseguenza, i principali che hanno accesso in base all'alias perdono l'accesso alla chiave precedentemente associata. KMS Hanno invece accesso alla nuova chiave associataKMS.

$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/ProjectAlpha`)]' { "Aliases": [ { "AliasName": "alias/ProjectAlpha_Test", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Test", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1566518783.394, "LastUpdatedDate": 1605308931.903 }, { "AliasName": "alias/ProjectAlpha_Restricted", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Restricted", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1553410800.010, "LastUpdatedDate": 1553410800.010 } ] }

Non è semplice rimediare a questa modifica. È possibile aggiornare nuovamente l'alias per associarlo alla KMS chiave originale. Tuttavia, prima di agire, è necessario considerare l'effetto di tale modifica sulla KMS chiave attualmente associata. Se i principali utilizzassero quest'ultima KMS chiave nelle operazioni crittografiche, potrebbe essere necessario un accesso continuo ad essa. In questo caso, potresti voler aggiornare la politica per garantire che i principali abbiano il permesso di utilizzare entrambe le chiavi. KMS

È possibile evitare un errore come questo: prima di aggiornare un alias, cerca le policy per rilevare l'accesso che dipende dall'alias. Quindi ottieni KMS le chiavi in tutte le regioni associate all'alias. Assegna autorizzazioni di gestione degli alias solo alle entità principali che ne hanno bisogno e limita le autorizzazioni per la gestione degli alias agli alias che devono gestire.