View a markdown version of this page

Sovvenzioni in 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à.

Sovvenzioni in AWS KMS

Una sovvenzione è uno strumento politico che consente ai AWS committenti o ai responsabili dei AWS servizi di utilizzare le chiavi KMS nelle operazioni crittografiche. Può anche consentire loro di visualizzare una chiave KMS (DescribeKey) e creare e gestire concessioni. Quando autorizzi l'accesso a una chiave KMS, le concessioni vengono prese in considerazione insieme alle policy chiave e alle policy IAM. I privilegi vengono spesso utilizzati per le autorizzazioni temporanee perché è possibile crearne una, utilizzarne le autorizzazioni ed eliminarla senza modificare le policy chiave o le policy IAM.

Le sovvenzioni sono comunemente utilizzate dai AWS servizi che si integrano con AWS KMS per crittografare i dati inattivi. Il servizio crea una concessione per conto di un utente nell'account, ne utilizza le autorizzazioni e la revoca non appena l'attività è completata. Per informazioni dettagliate sull'utilizzo delle sovvenzioni da parte AWS dei servizi, consulta l'argomento Encryption at rest nella guida per l'utente del servizio o nella guida per sviluppatori.

Le concessioni sono un meccanismo di controllo degli accessi molto flessibile e utile. Quando crei una concessione per una chiave KMS, la concessione consente al principale beneficiario di chiamare le operazioni di concessione specificate nella chiave KMS a condizione che siano soddisfatte tutte le condizioni specificate nella concessione.

  • Ogni concessione consente l'accesso a una sola chiave KMS. È possibile creare una concessione per una chiave KMS in un Account AWS diverso.

  • Una concessione può consentire l'accesso a una chiave KMS, ma non negare l'accesso.

  • Ogni sovvenzione ha un beneficiario, che può essere un beneficiario principale (un'identità AWS IAM) o un responsabile del servizio beneficiario (un responsabile del servizio). AWS È necessario specificare GranteePrincipal o GranteeServicePrincipal, ma non entrambi.

  • Una concessione può consentire solo operazioni di concessione. Le operazioni di concessione devono essere supportate dalla chiave KMS nella concessione. Se si specifica un'operazione non supportata, la richiesta ha esito negativo con un'eccezione. CreateGrantValidationError

  • Il principale beneficiario può utilizzare le autorizzazioni concesse dalla concessione senza specificarla, proprio come se le autorizzazioni provenissero da una policy chiave o da una policy IAM. Tuttavia, poiché l' AWS KMS API segue un eventuale modello di coerenza, quando si crea, si ritira o si revoca una sovvenzione, potrebbe verificarsi un breve ritardo prima che la modifica sia disponibile per intero. AWS KMS Per utilizzare immediatamente le autorizzazioni in una concessione, usa un token di concessione.

  • Un principale autorizzato può eliminare la concessione (ritirala o revocala). L'eliminazione di una concessione elimina tutte le autorizzazioni consentite dalla concessione. Non è necessario individuare le policy da aggiungere o rimuovere per annullare la concessione.

  • AWS KMS limita il numero di concessioni per ogni chiave KMS. Per informazioni dettagliate, vedi Concessioni per chiave KMS: 50.000.

Prestare attenzione quando si creano concessione e quando si concede ad altri l'autorizzazione di creare concessione. L'autorizzazione a creare sovvenzioni ha implicazioni sulla sicurezza, proprio come concedere il permesso di kms: PutKeyPolicy autorizzazione a impostare politiche.

  • Gli utenti autorizzati a creare concessioni per una chiave KMS (kms:CreateGrant) possono utilizzare una concessione per consentire a utenti e ruoli, inclusi i AWS servizi, di utilizzare la chiave KMS. I principali possono essere identità proprie Account AWS o identità appartenenti a un account o a un'organizzazione diversi.

  • Le sovvenzioni possono consentire solo un sottoinsieme di operazioni. AWS KMS È possibile utilizzare le concessioni per consentire ai principali di visualizzare la chiave KMS, utilizzarla nelle operazioni di crittografia e creare e ritirare i concessioni. Per informazioni dettagliate, consulta .Operazioni di concessione. È possibile utilizzare anche vincoli di concessione per limitare le autorizzazioni in una concessione.

  • Le entità principali possono ottenere l'autorizzazione per creare concessioni da una policy chiave o da una policy IAM. I principali che ottengono l'autorizzazione kms:CreateGrant da una policy possono creare concessioni per qualunque operazione di concessione sulla chiave KMS. Questi principali non sono tenuti ad avere l'autorizzazione che stanno concedendo sulla chiave. Quando si consente un'autorizzazione kms:CreateGrant in una policy, è possibile utilizzare le condizioni della policy per limitare questa autorizzazione.

  • I principali possono inoltre ottenere l'autorizzazione per creare concessioni da una concessione. Questi responsabili possono delegare solo le autorizzazioni che sono state loro concesse, anche se dispongono di altre autorizzazioni previste da una politica. Per informazioni dettagliate, vedi Concessione dell'autorizzazione CreateGrant.

Concetti delle concessioni

Per utilizzare le concessioni in modo efficace, è necessario comprendere i termini e i concetti che AWS KMS usa.

Vincoli di concessione

Una condizione che limita le autorizzazioni in una concessione. AWS KMS supporta due tipi di vincoli di concessione:

  • Vincolo del contesto di crittografia: limita le autorizzazioni in base al contesto di crittografia incluso nella richiesta di un'operazione crittografica. Questo vincolo funziona solo con le chiavi KMS di crittografia simmetrica.

  • SourceArn vincolo: limita le autorizzazioni di concessione alle richieste effettuate per conto di una risorsa specifica. AWS Questo significa effettivamente inserire una chiave di condizione aws:SourceArnglobale nella concessione. Questo vincolo funziona con tutti i tipi di chiavi KMS.

Per informazioni dettagliate, vedi Utilizzo dei vincoli di concessione.

ID concessione

L'identificatore univoco di una concessione per una chiave KMS. Puoi utilizzare un ID di concessione, insieme a un identificatore di chiave, per identificare una concessione in una richiesta or. RetireGrantRevokeGrant

Operazioni di concessione

Le AWS KMS operazioni che puoi consentire in una sovvenzione. Se si specificano altre operazioni, la CreateGrantrichiesta ha esito negativo con un'ValidationErroreccezione. Queste sono anche le operazioni che accettano un token di concessione. Per informazioni dettagliate sulla modifica di queste autorizzazioni, consulta AWS KMS autorizzazioni.

Queste operazioni di concessione rappresentano effettivamente l'autorizzazione per l'utilizzo dell'operazione. Pertanto, per l'operazione ReEncrypt, puoi specificare ReEncryptFrom, ReEncryptTo o entrambi ReEncrypt*.

Le operazioni di concessione sono:

Le operazioni di concessione che autorizzi devono essere supportate dalla chiave KMS nella concessione. Se si specifica un'operazione non supportata, la CreateGrantrichiesta ha esito negativo con un'ValidationErroreccezione. Ad esempio, le concessioni per le chiavi KMS di crittografia simmetrica non possono permettere le operazioni Sign, Verify, GenerateMac o VerifyMac Le concessioni per le chiavi KMS asimmetriche non possono permettere operazioni che generano chiavi di dati o coppie di chiavi di dati.

Concessione di token

L' AWS KMS API segue un eventuale modello di coerenza. Quando crei 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 provi a utilizzare una concessione prima della propagazione in tutto il sistema, potrebbe verificarsi un errore di accesso negato. Un token di concessione consente di fare riferimento alla concessione e di utilizzare immediatamente le autorizzazioni di concessione.

Un grant token (token di concessione) è una stringa univoca, non segreta, di lunghezza variabile, codificata in base64 che rappresenta una concessione. È possibile utilizzare il token di concessione per identificare la concessione in qualsiasi operazione di concessione. Tuttavia, poiché il valore del token è un hash digest, non rivela alcun dettaglio sulla concessione.

Un token di concessione è progettato in modo da poter essere utilizzato solo quando la concessione si è propagata in AWS KMS. Dopo di che, l'assegnatario principale può utilizzare l'autorizzazione nella concessione senza fornire un token di concessione o qualsiasi altra prova della concessione. Puoi utilizzare un token di concessione in qualsiasi momento, ma una volta che la concessione è alla fine coerente, AWS KMS utilizza la concessione per determinare le autorizzazioni, non il token di concessione.

Ad esempio, il comando seguente richiama l'GenerateDataKeyoperazione. Utilizza un token di concessione per rappresentare la concessione che dà al chiamante (l'assegnatario principale) il permesso di chiamare GenerateDataKey sulla chiave KMS specificata.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --grant-token $token

Puoi anche utilizzare un token di concessione per identificare una concessione in qualsiasi operazione che gestisce le concessioni. Ad esempio, il preside uscente può utilizzare un token di concessione in una chiamata all'RetireGrantoperazione.

$ aws kms retire-grant \ --grant-token $token

CreateGrant è l'unica operazione che restituisce un token di concessione. Non è possibile ottenere un token di concessione da nessun'altra AWS KMS operazione o dall'evento di CloudTrail registro relativo all' CreateGrant operazione. Le ListRetirableGrantsoperazioni ListGrantsand restituiscono l'ID della concessione, ma non un token di concessione.

Per informazioni dettagliate, vedi Utilizzo di un token di concessione.

Principale assegnatario

Un AWS principale (identità IAM) che ottiene le autorizzazioni specificate nella concessione.

Il principale beneficiario può essere qualsiasi AWS principale, incluso un Account AWS (root), un utente IAM, un ruolo IAM, un ruolo o utente federato o un utente con ruolo presunto. L'assegnatario principale può essere nello stesso account della chiave KMS o in un account diverso. Tuttavia, l'assegnatario principale della concessione non può essere un principale del servizio, un gruppo IAM, o un'organizzazione AWS.

Per specificare il titolare del beneficiario, utilizza il parametro nella GranteePrincipal richiesta. CreateGrant

Nota

Le best practice di IAM disincentivano l'uso di utenti IAM con credenziali a lungo termine. Quando possibile, utilizza i ruoli IAM che forniscono credenziali temporanee. Per i dettagli, consulta la sezione Best practice di sicurezza in IAM nella Guida per l'utente IAM.

Responsabile del servizio beneficiario

Un responsabile AWS del servizio che ottiene le autorizzazioni specificate nella concessione. Per specificare il responsabile del servizio beneficiario, utilizza il GranteeServicePrincipal parametro nella richiesta. CreateGrant

Quando crei una sovvenzione con unGranteeServicePrincipal, devi includere anche un. SourceArn grant constraint Il SourceArn vincolo garantisce che il responsabile del servizio possa utilizzare la chiave KMS solo quando la richiesta viene effettuata per conto della risorsa specificata. AWS

Quando si specifica aGranteeServicePrincipal, è necessario specificare anche a o a RetiringPrincipal. RetiringServicePrincipal

Nota

È necessario specificare GranteePrincipal o GranteeServicePrincipal, ma non entrambi.

Ritiro (di una concessione)

Termina una concessione. Ritiri una concessione al termine dell'utilizzo delle autorizzazioni.

Sia la revoca che il ritiro di una concessione eliminano la concessione. Ma il ritiro può essere fatto da un principale specificato nella concessione. La revoca viene in genere eseguita da un amministratore della chiave. Per informazioni dettagliate, vedi Ritirare e revocare le concessioni.

Principale per il ritiro

Un principale che può ritirare una concessione. È possibile specificare un principale per il ritiro in una concessione, ma non è obbligatorio. Il responsabile uscente può essere qualsiasi AWS principale, inclusi utenti IAM Account AWS, ruoli IAM, utenti federati e utenti assunti. Il principale per il ritiro può essere nello stesso account della chiave KMS o in un account diverso.

Per specificare il principale ritirante, utilizza il RetiringPrincipal parametro nella richiesta. CreateGrant

Nota

Le best practice di IAM disincentivano l'uso di utenti IAM con credenziali a lungo termine. Quando possibile, utilizza i ruoli IAM che forniscono credenziali temporanee. Per i dettagli, consulta la sezione Best practice di sicurezza in IAM nella Guida per l'utente IAM.

Responsabile del servizio in pensione

Un responsabile AWS del servizio che ha il permesso di ritirare una sovvenzione. Per specificare il responsabile del servizio che va in pensione, utilizzate il RetiringServicePrincipal parametro nella CreateGrantrichiesta.

Nota

Puoi specificare RetiringPrincipal o RetiringServicePrincipal, ma non entrambi.

Per ulteriori informazioni su chi può ritirare una sovvenzione, vedere. Ritirare e revocare le concessioni

Revoca (di una concessione)

Termina una concessione. Revochi una concessione per negare attivamente le autorizzazioni consentite dalla concessione.

Sia la revoca che il ritiro di una concessione eliminano la concessione. Ma il ritiro può essere fatto da un principale specificato nella concessione. La revoca viene in genere eseguita da un amministratore della chiave. Per informazioni dettagliate, vedi Ritirare e revocare le concessioni.

Consistenza finale (per le concessioni)

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.

Potresti apprendere di questo breve ritardo se ricevi errori imprevisti. Ad esempio, se si tenta di gestire una nuova concessione o di utilizzare le autorizzazioni di una nuova concessione prima che la concessione sia nota per intero AWS KMS, è possibile che venga visualizzato un errore di accesso negato. Se ritiri o revochi una concessione, l'assegnatario principale potrebbe ancora essere in grado di utilizzare le autorizzazioni per un breve periodo fino a quando la concessione non viene completamente eliminata. La strategia tipica consiste nel riprovare la richiesta e alcuni AWS SDK includono il backoff automatico e la logica dei tentativi.

AWS KMS dispone di funzionalità per mitigare questo breve ritardo.

Nota

I token di concessione sostituiscono la validità della concessione fino a quando tutti gli endpoint del servizio non sono stati aggiornati con il nuovo stato della concessione. Nella maggior parte dei casi, la consistenza finale sarà raggiunta entro cinque minuti.

Per ulteriori informazioni, consulta Consistenza finale di AWS KMS.