Gestione delle concessioni - 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à.

Gestione delle concessioni

Le entità con le autorizzazioni richieste possono visualizzare, utilizzare ed eliminare (ritirare o revocare) le concessioni. Per perfezionare le autorizzazioni per la creazione e la gestione delle sovvenzioni, AWS KMS supporta diverse condizioni politiche che è possibile utilizzare nelle politiche chiave e nelle politiche IAM.

Controllo dell'accesso alle concessioni

È possibile controllare l'accesso alle operazioni che creano e gestiscono concessioni nelle policy chiave, nelle policy IAM e nelle concessioni. I principali che ottengono l'autorizzazione CreateGrant da una concessione hanno autorizzazioni di concessione più limitate.

Operazione API Policy chiave o policy IAM Grant
CreateGrant
ListGrants -
ListRetirableGrants -
Ritiro di concessioni (Limitato. Consulta Ritirare e revocare le concessioni)
RevokeGrant -

Quando utilizzi una policy chiave o una policy IAM per controllare l'accesso alle operazioni che creano e gestiscono le concessioni, puoi utilizzare una o più delle seguenti condizioni politiche per limitare l'autorizzazione. AWS KMS supporta tutte le seguenti chiavi di condizione relative alle sovvenzioni. Per informazioni dettagliate ed esempi, consulta AWS KMS chiavi di condizione.

km: GrantConstraintType

Consente ai principali di creare una concessione solo quando la concessione include il vincolo di concessione specificato.

km: GrantIsFor AWSResource

Consente ai principali di chiamare CreateGrant o RevokeGrant solo quando un AWS servizio integrato con AWS KMS invia la richiesta per conto del principale. ListGrants

km: GrantOperations

Consente ai principali di creare una concessione, ma limita la concessione alle operazioni specificate.

km: GranteePrincipal

Consente ai principali di creare una concessione solo per l'assegnatario principale specificato.

km: RetiringPrincipal

Consente ai principali di creare una concessione solo quando la concessione specifica un particolare principale per il ritiro.

Visualizzazione di concessioni

Per visualizzare la concessione, usa l'ListGrantsoperazione. È necessario specificare la chiave KMS a cui si applicano le concessioni. È inoltre possibile filtrare l'elenco delle concessioni in base all'ID concessione o all'assegnatario principale. Per ulteriori esempi, consulta Visualizzazione di una concessione.

Per visualizzare tutte le sovvenzioni nella regione Account AWS e con un particolare capitale uscente, usa. ListRetirableGrants Le risposte includono dettagli su ogni concessione.

Nota

Il campo GranteePrincipal nella risposta ListGrants contiene solitamente il principal dell'assegnatario della concessione. Tuttavia, quando il beneficiario principale della sovvenzione è un AWS servizio, il GranteePrincipal campo contiene il principale del servizio, che potrebbe rappresentare diversi committenti del beneficiario.

Ad esempio, il comando seguente elenca tutte le concessioni per una chiave KMS.

$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1572216195.0, "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514a", "Constraints": { "EncryptionContextSubset": { "Department": "IT" } }, "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole", "Name": "", "IssuingAccount": "arn:aws:iam::111122223333:root", "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser", "Operations": [ "Decrypt" ] } ] }

Utilizzo di un token di concessione

L' AWS KMS API segue un eventuale modello di coerenza. Quando si crea una concessione, la concessione potrebbe non essere effettiva immediatamente. Potrebbe verificarsi un breve ritardo prima che la modifica sia disponibile in AWS KMS. Generalmente, occorrono pochissimi secondi per la propagazione della modifica in tutto il sistema, ma in alcuni casi possono essere necessari diversi minuti. Una volta che la concessione è stata propagata in tutto il sistema, il principale assegnatario può utilizzare le autorizzazioni nella concessione senza specificare il token di concessione o una prova della concessione. Tuttavia, se una concessione è così nuova da non essere ancora nota a tutti AWS KMS, la richiesta potrebbe fallire con un AccessDeniedException errore.

Per utilizzare immediatamente le autorizzazioni in una nuova concessione, utilizza il token di concessione per la concessione. Salva il token di concessione restituito dall'CreateGrantoperazione. Quindi invia il token di concessione nella richiesta per l' AWS KMS operazione. Puoi inviare un token di concessione a qualsiasi operazione di AWS KMS concessione e puoi inviare più token di concessione nella stessa richiesta.

L'esempio seguente utilizza l'CreateGrantoperazione per creare una concessione che consenta le operazioni GenerateDataKeye Decrypt. Salva il token di concessione che CreateGrant restituisce nella variabile token. Quindi, in una chiamata all'operazione GenerateDataKey, utilizza il token di concessione nella variabile token.

# Create a grant; save the grant token $ token=$(aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/appUser \ --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \ --operations GenerateDataKey Decrypt \ --query GrantToken \ --output text) # Use the grant token in a request $ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ –-key-spec AES_256 \ --grant-tokens $token

I principali con autorizzazione possono utilizzare un token di concessione anche per ritirare una nuova concessione, anche prima che la concessione sia disponibile in AWS KMS. (L'operazione RevokeGrant non accetta un token di concessione.) Per informazioni dettagliate, vedi Ritirare e revocare le concessioni.

# Retire the grant $ aws kms retire-grant --grant-token $token

Ritirare e revocare le concessioni

Per eliminare una concessione, ritirarla o revocarla.

Le RevokeGrantoperazioni RetireGrantand sono molto simili tra loro. Entrambe le operazioni eliminano una concessione, eliminando le autorizzazioni consentite dalla concessione. La differenza principale tra queste operazioni è il modo in cui sono autorizzate.

RevokeGrant

Come la maggior parte AWS KMS delle operazioni, l'accesso all'RevokeGrantoperazione è controllato tramite policy chiave e policy IAM. L'RevokeGrantAPI può essere richiamata da qualsiasi preside con kms:RevokeGrant autorizzazione. Questa autorizzazione è inclusa nelle autorizzazioni standard concesse agli amministratori delle chiavi. In genere, gli amministratori revocano una concessione per negare le autorizzazioni consentite dalla concessione.

RetireGrant

La concessione determina chi può ritirarla. Questa struttura consente di controllare il ciclo di vita di una concessione senza modificare le policy chiave o le policy IAM. In genere, si ritira una concessione quando si è terminato di utilizzare le relative autorizzazioni.

Una concessione può essere ritirata da un principale per il ritiro opzionale specificato nella concessione. L'assegnatario principale può anche ritirare la concessione, ma solo se è anche un principale per il ritiro o se la concessione include l'operazione RetireGrant. Come backup, la sovvenzione Account AWS in cui è stata creata la sovvenzione può ritirarla.

C'è un'autorizzazione kms:RetireGrant che può essere utilizzata nelle policy IAM, ma dispone di un'utilità limitata. I principali specificati nella concessione possono ritirare una concessione senza l'autorizzazione kms:RetireGrant. L'autorizzazione kms:RetireGrant da sola non consente ai principali di ritirare una concessione. L'autorizzazione kms:RetireGrant non è efficace in una policy chiave.

  • Per negare l'autorizzazione al ritiro di una concessione, puoi utilizzare un'azione Deny con l'autorizzazione kms:RetireGrant.

  • Il Account AWS proprietario della chiave KMS può delegare l'kms:RetireGrantautorizzazione al responsabile IAM dell'account.

  • Se il responsabile del ritiro è diverso Account AWS, gli amministratori dell'altro account possono delegare l'autorizzazione kms:RetireGrant a ritirare la concessione a un responsabile IAM di quell'account.

L' AWS KMS API segue un eventuale modello di coerenza. Quando crei, ritiri o revochi una concessione, potrebbe verificarsi un breve ritardo prima che la modifica sia disponibile in AWS KMS. Generalmente, occorrono pochissimi secondi per la propagazione della modifica in tutto il sistema, ma in alcuni casi possono essere necessari diversi minuti. Se devi eliminare immediatamente una nuova sovvenzione, prima che sia disponibile per tutta la durata AWS KMS, utilizza un token di concessione per ritirare la sovvenzione. Non è possibile utilizzare un token di concessione per revocare una concessione.