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 concessione è uno strumento politico che consente ai AWS committenti o ai responsabili del AWS servizio 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 per AWS KMS 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 su come i AWS servizi utilizzano le concessioni, consulta l'argomento Encryption at rest nella guida per l'utente del servizio o nella guida per gli 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 concessione ha un beneficiario, che può essere un beneficiario principale (un'identità AWS IAM) o un responsabile del servizio concessionario (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. CreateGrant ValidationError

  • 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 concessione, potrebbe verificarsi un breve ritardo prima che la modifica sia disponibile ovunque. 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 su ciascuna chiave KMS. Per i dettagli, consulta 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 consentire a kms: PutKeyPolicy il permesso di 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 altro account o organizzazione.

  • 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 committenti possono delegare solo le autorizzazioni concesse, anche se dispongono di altre autorizzazioni previste da una policy. 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

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 di crittografia. 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 sta effettivamente inserendo una condizione aws:SourceArn globale 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. È possibile utilizzare un ID di concessione, insieme a un identificatore chiave, per identificare una concessione in una RetireGrant richiesta or. RevokeGrant

Operazioni di concessione

Le AWS KMS operazioni che puoi consentire in una concessione. Se si specificano altre operazioni, la CreateGrant richiesta 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 CreateGrant richiesta 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 è finalmente 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 in pensione 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 dell' CreateGrant operazione. Le ListRetirableGrants operazioni ListGrants and restituiscono l'ID di 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 utente 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 mandante 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 del beneficiario

Un responsabile AWS del servizio che ottiene le autorizzazioni specificate nella concessione. Per specificare l'entità del servizio del beneficiario, utilizzare il GranteeServicePrincipal parametro nella richiesta. CreateGrant

Quando crei una sovvenzione con aGranteeServicePrincipal, 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 RetiringPrincipal o a. 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 ritirato può essere qualsiasi AWS responsabile, inclusi utenti IAM Account AWS, ruoli IAM, utenti federati e utenti con ruolo presunto. Il principale per il ritiro può essere nello stesso account della chiave KMS o in un account diverso.

Per specificare il principale che si ritira, 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 che va in pensione

Un preside AWS del servizio che ha il permesso di ritirare una sovvenzione. Per specificare l'entità del servizio che intende ritirare, utilizzate il RetiringServicePrincipal parametro nella CreateGrant richiesta.

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 modello di coerenza https://en.wikipedia.org/wiki/Eventual_consistency finale. 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 provi a gestire una nuova concessione o a utilizzare le autorizzazioni in una nuova concessione prima che la concessione sia nota a tutti AWS KMS, potresti ricevere 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 una logica di backoff e riprova automatici.

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.