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 delle policy che permette ai principali AWS di usare le chiavi KMS nelle operazioni di crittografia. 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 su come i AWS servizi utilizzano le concessioni, consulta In che modo i servizi AWS utilizzano AWS KMS o l'argomento Encryption at rest nella guida per l'utente del servizio o nella guida per sviluppatori.

Per esempi di codice che illustrano l'utilizzo delle concessioni in diversi linguaggi di programmazione, consulta Utilizzo delle concessioni.

Informazioni sulle concessioni

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 principale. Il beneficiario principale può rappresentare una o più identità nella Account AWS stessa chiave KMS o in un account diverso.

  • 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 CreateGrantrichiesta ha esito negativo con un'eccezione. 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 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 i vincoli di concessione per limitare le autorizzazioni nell'ambito di una concessione per una chiave crittografica simmetrica.

  • 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 principali possono delegare solo le autorizzazioni concesse, anche se dispongono di altre autorizzazioni da una policy. Per informazioni dettagliate, vedi Concessione dell'autorizzazione CreateGrant .

Per informazioni sui concetti relativi alle concessioni, consulta Terminologia sulle concessioni.

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 nella concessione. Attualmente, AWS KMS supporta i vincoli di concessione basati sul contesto di crittografia nella richiesta di un'operazione crittografica. 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 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

Le identità che ottengono le autorizzazioni specificate nella concessione. Ogni concessione ha un principale beneficiario che può rappresentare più identità.

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.

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.

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 principale 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.

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.

Oltre al capitale in pensione specificato nella sovvenzione, una sovvenzione può essere ritirata dalla società Account AWS in cui è stata creata. Se la concessione consente l'operazione RetireGrant, l'assegnatario principale può ritirare la concessione. Inoltre, l' Account AWS ente Account AWS preposto al pensionamento può delegare l'autorizzazione a ritirare una sovvenzione a un preside IAM dello stesso. Account AWS Per informazioni dettagliate, vedi 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.

Le migliori pratiche per le sovvenzioni AWS KMS

AWS KMS consiglia le seguenti best practice per la creazione, l'utilizzo e la gestione delle sovvenzioni.

  • Limita le autorizzazioni nella concessione a quelle richieste dall'assegnatario principale. Utilizzare il principio di accesso meno privilegiato.

  • Utilizza un assegnatario principale specifico, ad esempio un ruolo IAM, e concedigli l'autorizzazione di utilizzare solo le operazioni API richieste.

  • Usa il contesto di crittografia Vincoli di concessione per garantire che i chiamanti utilizzino la chiave KMS per lo scopo previsto. Per informazioni dettagliate su come utilizzare il contesto di crittografia in una richiesta di protezione dei dati, consulta Come proteggere l'integrità dei dati crittografati utilizzando AWS Key Management Service e EncryptionContext nel blog sulla AWS sicurezza.

    Suggerimento

    Utilizza il vincolo di EncryptionContextEqualconcessione ogni volta che è possibile. Il vincolo di EncryptionContextSubsetconcessione è più difficile da usare correttamente. Se devi utilizzarlo, leggi attentamente la documentazione e testa il vincolo di concessione per assicurarti che funzioni come previsto.

  • Eliminare concessioni duplicate. Le concessioni duplicate hanno lo stesso ARN chiave, le stesse azioni API, lo stesso assegnatario principale, lo stesso contesto di crittografia e lo stesso nome. Se ritiri o revochi la concessione originale ma lasci i duplicati, le concessioni duplicate rimanenti rappresentano escalation involontarie di privilegi. Per evitare di duplicare le concessioni quando riprovi una richiesta CreateGrant, utilizza il parametro Name. Per rilevare sovvenzioni duplicate, utilizzate l'operazione. ListGrants Se crei accidentalmente una concessione duplicata, ritirala o revocala il prima possibile.

    Nota

    Le concessioni per chiavi gestite da AWS potrebbero sembrare duplicate ma avere diversi assegnatari principali.

    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.

  • Ricorda che le concessioni non scadono automaticamente. Ritira o revoca la concessione non appena l'autorizzazione non sarà più necessaria. Le concessioni che non vengono eliminate potrebbero creare un rischio per la sicurezza delle risorse crittografate.