AWS KMS concetti - 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à.

AWS KMS concetti

Scopri i termini e i concetti di base utilizzati in AWS Key Management Service (AWS KMS) e come interagiscono per proteggere i tuoi dati.

AWS KMS keys

AWS KMS keys (chiavi KMS) sono la risorsa principale in AWS KMS. È possibile utilizzare una chiave KMS per crittografare, decrittare e ricrittografare i dati. Può anche generare chiavi di dati che è possibile utilizzare all'esterno. AWS KMS Generalmente, utilizzerai chiavi KMS di crittografia simmetrica, ma puoi creare e utilizzare chiavi KMS asimmetriche per la crittografia o la firma, e creare e utilizzare chiavi KMS HMAC per generare e verificare tag HMAC.

Nota

AWS KMS sta sostituendo il termine chiave master del cliente (CMK) con AWS KMS keychiave KMS. Il concetto non è cambiato. Per evitare modifiche irreversibili, AWS KMS sta mantenendo alcune varianti di questo termine.

Una AWS KMS key è la rappresentazione logica di una chiave crittografica. Una chiave KMS contiene metadati, ad esempio: ID della chiave, specifica della chiave, utilizzo della chiave, data di creazione, descrizione e stato della chiave. In particolare, contiene un riferimento al materiale della chiave che viene utilizzato quando esegui operazioni di crittografia con la chiave KMS.

È possibile creare una chiave KMS con materiale crittografico generato in moduli di sicurezza hardware convalidati AWS KMS FIPS. Il materiale delle chiave per le chiavi KMS simmetriche e le chiavi private della chiave KMS asimmetrica mantengono AWS KMS sempre crittografato. Per utilizzare o gestire le chiavi KMS, devi utilizzare AWS KMS. Per ulteriori informazioni sulla creazione e la gestione di chiavi KMS, consulta Gestione delle chiavi . Per informazioni sull'utilizzo delle chiavi KMS, consulta la documentazione di riferimento dell'API AWS Key Management Service.

Per impostazione predefinita, AWS KMS crea il materiale chiave per una chiave KMS. Non è possibile estrarre, esportare, visualizzare o gestire questo materiale della chiave. L'unica eccezione è la chiave pubblica di una coppia di chiavi asimmetriche, che è possibile esportare per l'uso al di fuori di AWS. Inoltre, non puoi eliminare questo materiale della chiave è necessario eliminare la chiave KMS. Tuttavia, puoi importare il tuo materiale chiave in una chiave KMS o utilizzare un archivio chiavi personalizzato per creare chiavi KMS che utilizzano materiale chiave nel tuo AWS CloudHSM cluster o materiale chiave in un gestore di chiavi esterno che possiedi e gestisci esternamente. AWS

AWS KMS supporta anche chiavi multiregionali, che consentono di crittografare i dati in una Regione AWS e decrittografarli in un'altra. Regione AWS

Per ulteriori informazioni sulla creazione e la gestione di chiavi KMS, consulta Gestione delle chiavi . Per informazioni sull'utilizzo delle chiavi KMS, consulta la documentazione di riferimento dell'API AWS Key Management Service.

Chiavi e chiavi del cliente AWS

Le chiavi KMS create dall'utente sono chiavi gestite dal cliente. I AWS services che utilizzano le chiavi KMS per crittografare le risorse di servizio spesso creano le chiavi per conto dell'utente. Le chiavi KMS AWS services create nel tuo AWS account sono Chiavi gestite da AWS. Le chiavi KMS AWS services create in un account di servizio sono. Chiavi di proprietà di AWS

Tipo di chiave KMS Può visualizzare i metadati della chiave KMS Può gestire la chiave KMS Usato solo per il mio Account AWS Rotazione automatica Prezzi
Chiave gestita dal cliente Facoltativo. Ogni anno (circa 365 giorni)

Canone mensile (proporzionale a ora)

Tariffa per uso

Chiave gestita da AWS No Campo obbligatorio. Ogni anno (circa 365 giorni)

Nessuna tariffa mensile

Tariffa per utilizzo (alcuni AWS services pagano questa tariffa per te)

Chiave di proprietà di AWS No No No Può variare Nessuna tariffa

AWS i servizi che si integrano con AWS KMS differiscono nel supporto per le chiavi KMS. Per impostazione predefinita, alcuni AWS servizi crittografano i dati con un Chiave di proprietà di AWS o un. Chiave gestita da AWS Alcuni AWS servizi supportano le chiavi gestite dai clienti. Altri AWS servizi supportano tutti i tipi di chiavi KMS per consentire la facilità di utilizzo Chiave di proprietà di AWS, la visibilità o il controllo di una chiave gestita dal cliente. Chiave gestita da AWS Per informazioni dettagliate sulle opzioni di crittografia offerte da un AWS servizio, consulta l'argomento Encryption at Rest nella guida per l'utente o la guida per sviluppatori del servizio.

Chiavi gestite dal cliente

Le chiavi KMS create dall'utente sono chiavi gestite dal cliente. Le chiavi gestite dal cliente sono chiavi KMS Account AWS che create, possedete e gestite dall'utente. L'utente ha il controllo completo su queste chiavi KMS, tra cui la definizione e il mantenimento delle policy chiave, delle policy IAM e delle concessioni, la loro attivazione e disattivazione, la rotazione del materiale crittografico, l'aggiunta di tag, la creazione di alias relativi alle chiavi KMS e la programmazione di chiavi KMS per l'eliminazione.

Le chiavi gestite dal cliente vengono visualizzate nella pagina chiavi gestite dal cliente della AWS Management Console per AWS KMS. Per identificare in modo definitivo una chiave gestita dal cliente, utilizza l'DescribeKeyoperazione. Per le chiavi gestite dal cliente, il valore del campo KeyManager della risposta di DescribeKey è CUSTOMER.

Si possono utilizzare chiavi gestite dal cliente in operazioni di crittografia e verificarne l'uso nei registri AWS CloudTrail . Inoltre, molti servizi AWS che si integrano con AWS KMS consentono di specificare una chiave gestita dal cliente per proteggere i dati archiviati e gestiti per l'utente.

Le chiavi gestite dal cliente sono soggette a una tariffa mensile e a una tariffa qualora l'utilizzo superi i termini del piano gratuito. Vengono conteggiati nelle AWS KMS quote del tuo account. Per i dettagli, vedere le sezioni Prezzi AWS Key Management Service e Quote.

Chiavi gestite da AWS

Chiavi gestite da AWSsono chiavi KMS del tuo account che vengono create, gestite e utilizzate per tuo conto da un AWS servizio integrato con. AWS KMS

Alcuni AWS servizi consentono di scegliere una chiave Chiave gestita da AWS o una chiave gestita dal cliente per proteggere le risorse di quel servizio. In generale, a meno che non sia necessario controllare la chiave di crittografia che protegge le risorse, an Chiave gestita da AWS è una buona scelta. Non è necessario creare o mantenere la chiave o la relativa policy delle chiavi e non è mai previsto un canone mensile per una Chiave gestita da AWS.

Hai il permesso di visualizzarle Chiavi gestite da AWS nel tuo account, visualizzare le relative politiche chiave e controllarne l'utilizzo nei AWS CloudTrail log. Tuttavia, non è possibile modificare alcuna proprietà Chiavi gestite da AWS, ruotarle, modificarne le politiche chiave o pianificarne l'eliminazione. Inoltre, non è possibile utilizzarle direttamente Chiavi gestite da AWS nelle operazioni crittografiche; il servizio che le crea le utilizza per conto dell'utente.

Chiavi gestite da AWS appaiono nella Chiavi gestite da AWSpagina del modulo AWS Management Console . AWS KMSÈ inoltre possibile identificarli Chiavi gestite da AWS tramite i relativi alias, che hanno il formatoaws/service-name, ad esempio. aws/redshift Per identificare definitivamente un Chiavi gestite da AWS, utilizzate l'DescribeKeyoperazione. Per le Chiavi gestite da AWS, il valore del campo KeyManager della risposta DescribeKey è AWS.

Tutti Chiavi gestite da AWS vengono ruotati automaticamente ogni anno. Non è possibile modificare questo programma di rotazione.

Nota

A maggio 2022, AWS KMS ha modificato il programma di rotazione Chiavi gestite da AWS da ogni tre anni (circa 1.095 giorni) a ogni anno (circa 365 giorni).

Chiavi gestite da AWS I nuovi vengono ruotati automaticamente un anno dopo la creazione e successivamente all'incirca ogni anno.

Chiavi gestite da AWS Le versioni esistenti vengono ruotate automaticamente un anno dopo la loro rotazione più recente e successivamente ogni anno.

Non è previsto alcun canone mensile per. Chiavi gestite da AWS Il loro utilizzo può essere soggetto a tariffe superiori a quelle del piano gratuito, ma alcuni AWS servizi coprono questi costi per te. Per informazioni dettagliate, consulta l'argomento Crittografia dei dati inattivi nella guida per l'utente o nella guida per gli sviluppatori del servizio. Per informazioni dettagliate, consulta Prezzi di AWS Key Management Service.

Chiavi gestite da AWS non conteggiate ai fini delle quote di risorse sul numero di chiavi KMS in ciascuna regione del vostro account. Tuttavia, quando vengono utilizzate per conto di un principale nel tuo account, le chiavi KMS vengono conteggiate ai fini delle quote di richiesta. Per informazioni dettagliate, vedi Quote.

Chiavi di proprietà di AWS

Chiavi di proprietà di AWSsono una raccolta di chiavi KMS possedute e gestite da un AWS servizio e utilizzabili in più lingue. Account AWS Sebbene non Chiavi di proprietà di AWS siano presenti nel tuo account Account AWS, un AWS servizio può Chiave di proprietà di AWS utilizzarlo per proteggere le risorse del tuo account.

Alcuni AWS servizi consentono di scegliere una chiave Chiave di proprietà di AWS o una chiave gestita dal cliente. In generale, a meno che non sia necessario verificare o controllare la chiave di crittografia che protegge le risorse, an Chiave di proprietà di AWS è una buona scelta. Chiavi di proprietà di AWS sono completamente gratuiti (senza canoni mensili o costi di utilizzo), non influiscono sulle AWS KMS quote del tuo account e sono facili da usare. Non è necessario creare o mantenere la chiave o la relativa policy delle chiavi.

La rotazione di Chiavi di proprietà di AWS varia a seconda dei servizi. Per informazioni sulla rotazione di un determinato servizio Chiave di proprietà di AWS, consulta l'argomento Encryption at Rest nella guida per l'utente o nella guida per sviluppatori del servizio.

Chiavi KMS di crittografia simmetrica

Quando si crea un file AWS KMS key, per impostazione predefinita, si ottiene una chiave KMS per la crittografia simmetrica. Questo è il tipo di chiave KMS di base e comunemente più usato.

In AWS KMS, una chiave KMS con crittografia simmetrica rappresenta una chiave di crittografia AES-GCM a 256 bit, tranne nelle regioni cinesi, dove rappresenta una chiave di crittografia SM4 a 128 bit. Il materiale a AWS KMS chiave simmetrica non esce mai non crittografato. Per utilizzare una chiave KMS con crittografia simmetrica, è necessario chiamare. AWS KMS Le chiavi crittografiche simmetrica vengono utilizzate nella crittografia simmetrica, laddove la stessa chiave viene usata per la crittografia e la decrittografia. A meno che la tua attività non richieda esplicitamente la crittografia asimmetrica, le chiavi KMS di crittografia simmetrica, grazie alle quali AWS KMS è sempre crittografato, sono una scelta valida.

AWS i servizi integrati con AWS KMS utilizzano solo chiavi KMS di crittografia simmetrica per crittografare i dati. Questi servizi non supportano la crittografia con chiavi KMS asimmetriche. Per informazioni su come determinare se una è simmetrica o asimmetrica, consulta Individuazione di chiavi KMS asimmetriche.

Tecnicamente, la specifica chiave per una chiave simmetrica è SYMMETRIC_DEFAULT, l'utilizzo della chiave è ENCRYPT_DECRYPT e l'algoritmo di crittografia è SYMMETRIC_DEFAULT. Per informazioni dettagliate, vedi Specifica della chiave SYMMETRIC_DEFAULT.

È possibile utilizzare una chiave KMS con crittografia simmetrica AWS KMS per crittografare, decrittografare e ricrittografare i dati e generare chiavi di dati e coppie di chiavi di dati. Puoi creare chiavi KMS di crittografia simmetrica multi-regione, importare il materiale della chiave in una chiave KMS di crittografia simmetrica e creare chiavi KMS di crittografia simmetrica negli archivi delle chiavi personalizzate. Per una tabella di confronto delle operazioni eseguibili sulle diverse tipologie di chiavi KMS, consultare Documentazione di riferimento dei tipi di chiave.

Chiavi KMS asimmetriche

È possibile creare una chiave KMS asimmetrica in AWS KMS. Una chiave KMS asimmetrica rappresenta una coppia di chiavi, una pubblica e una privata, correlate matematicamente. La chiave privata non esce mai non crittografata. AWS KMS Per utilizzare la chiave privata, è necessario chiamare AWS KMS. È possibile utilizzare la chiave pubblica interna AWS KMS chiamando le operazioni dell' AWS KMS API oppure è possibile scaricare la chiave pubblica e utilizzarla all'esterno AWS KMS. È possibile anche creare chiavi KMS asimmetriche multi-Regione.

Puoi creare chiavi KMS asimmetriche che rappresentano coppie di chiavi RSA, coppie di chiavi a curva ellittica o coppie di chiavi SM2 (solo regioni cinesi). Le chiavi KMS con coppie di chiavi RSA possono essere utilizzate per crittografare o decrittografare dati o firmare e verificare messaggi (ma non entrambi). Le chiavi KMS con coppie di chiavi a curva ellittica consigliate dal NIST possono essere utilizzate per firmare e verificare messaggi o ricavare segreti condivisi (ma non entrambi). Le chiavi KMS con coppie di chiavi possono essere utilizzate ECC_SECG_P256K1 solo per firmare e verificare i messaggi. Le chiavi KMS con coppie di chiavi SM2 (solo per le regioni cinesi) possono essere utilizzate per crittografare e decrittografare dati, firmare e verificare messaggi o ricavare segreti condivisi (è necessario scegliere un tipo di utilizzo delle chiavi).

Per ulteriori informazioni sulla creazione e sull'utilizzo delle chiavi KMS asimmetriche, consultare Tasti asimmetrici in AWS KMS.

Chiavi KMS HMAC

Una chiave KMS HMAC rappresenta una chiave simmetrica di lunghezza variabile utilizzata per generare e verificare i codici di autenticazione dei messaggi basati su hash. Il materiale chiave di una chiave HMAC non esce mai non crittografato. AWS KMS Per utilizzare una chiave HMAC, richiama l'operazione API GenerateMac o VerifyMac.

Puoi anche creare chiavi KMS HMAC multi-regione.

Per ulteriori informazioni sulla creazione e sull'utilizzo delle chiavi KMS HMAC, consulta la sezione Chiavi HMAC in AWS KMS.

Chiavi di dati

Le chiavi di dati sono chiavi simmetriche che possono essere usate per crittografare i dati, incluse grandi quantità di dati e altre chiavi crittografiche dati. A differenza delle chiavi KMS simmetriche, che non possono essere scaricate, le chiavi dati vengono restituite all'utente per essere utilizzate all'esterno di. AWS KMS

Quando AWS KMS genera chiavi dati, restituisce una chiave dati in testo semplice per l'uso immediato (opzionale) e una copia crittografata della chiave dati che puoi archiviare in sicurezza con i dati. Quando sei pronto per decrittografare i dati, chiedi innanzitutto di AWS KMS decrittografare la chiave dati crittografata.

AWS KMS genera, crittografa e decrittografa le chiavi di dati. Tuttavia, AWS KMS non archivia, gestisce o tiene traccia delle chiavi dati né esegue operazioni crittografiche con le chiavi dati. È necessario utilizzare e gestire le chiavi dati all'esterno di AWS KMS. Per informazioni sull'utilizzo sicuro delle chiavi dati, consulta AWS Encryption SDK.

Crea una chiave di chiavi

Per creare una chiave dati, richiama l'GenerateDataKeyoperazione. AWS KMS genera la chiave dati. Quindi crittografa una copia della chiave di dati con una chiave KMS di crittografia simmetrica da te specificata. L'operazione restituisce una copia in testo normale e un'altra copia della chiave dati crittografata con la chiave KMS. L'immagine seguente mostra questa operazione.

Generazione di una chiave di dati

AWS KMS supporta anche l'GenerateDataKeyWithoutPlaintextoperazione, che restituisce solo una chiave dati crittografata. Quando devi usare la chiave dati, chiedi di AWS KMS decrittografarla.

Crittografia dei dati con una chiave di dati

AWS KMS non può utilizzare una chiave dati per crittografare i dati. Tuttavia, puoi utilizzare la chiave di dati al di fuori di AWS KMS, ad esempio utilizzando OpenSSL o una libreria di crittografia come AWS Encryption SDK.

Dopo aver utilizzato la chiave di dati in testo normale per crittografare i dati, eliminarla dalla memoria il prima possibile. È possibile archiviare la chiave di dati crittografati con i dati crittografati in totale sicurezza, in modo che sia disponibile per decrittografare i dati.

Crittografa i dati degli utenti all'esterno di AWS KMS

Decrittografare i dati con una chiave di dati

Per decrittografare i dati, passa la chiave dei dati crittografati all'operazione Decrypt. AWS KMS utilizza la chiave KMS per decrittografare la chiave dati e quindi restituisce la chiave dati in testo semplice. Utilizza la chiave di dati in testo normale per decrittografare i dati, quindi rimuovi la chiave di dati in testo normale dalla memoria al più presto.

Il seguente diagramma illustra come utilizzare l'operazione Decrypt per decrittografare una chiave di dati crittografati.

Decrittografia di una chiave di dati

In che modo le chiavi KMS inutilizzabili influiscono sulle chiavi dati

Quando una chiave KMS diventa inutilizzabile, l'effetto è quasi immediato (in base alla coerenza finale). Lo stato della chiave KMS si modifica per riflettere la nuova condizione e tutte le richieste di utilizzo della chiave KMS nelle operazioni di crittografia hanno esito negativo.

Tuttavia, l'effetto sulle chiavi di dati crittografate dalla chiave KMS e sui dati crittografati dalla chiave dati viene ritardato fino a quando la chiave KMS non viene nuovamente utilizzata, ad esempio per decrittografare la chiave dati.

Le chiavi KMS possono diventare inutilizzabili per diversi motivi, incluse le azioni seguenti che è possibile eseguire.

Questo effetto è particolarmente importante per i molti AWS services che utilizzano le chiavi di dati per proteggere le risorse gestite dal servizio. L'esempio seguente utilizza Amazon Elastic Block Store (Amazon EBS) e Amazon Elastic Compute Cloud (Amazon EC2). Diversi AWS services utilizzano le chiavi dati in modi diversi. Per maggiori dettagli, consulta la sezione Protezione dei dati del capitolo Sicurezza per il AWS service.

Considera ad esempio questo scenario:

  1. Puoi creare un volume EBS crittografato e specificare una chiave KMS per proteggerlo. Amazon EBS chiede AWS KMS di utilizzare la tua chiave KMS per generare una chiave dati crittografata per il volume. Amazon EBS archivia la chiave dati crittografata con i metadati del volume.

  2. Quando colleghi il volume EBS a un'istanza EC2, Amazon EC2 utilizza la chiave KMS per decodificare la chiave di dati crittografati del volume EBS. Amazon EC2 utilizza la chiave dati nell'hardware Nitro, che è responsabile della crittografia di tutti gli I/O del disco nel volume EBS. La chiave dati persiste nell'hardware Nitro fintantoché il volume EBS è collegato all'istanza EC2.

  3. Esegui un'operazione in grado di rendere la chiave KMS inutilizzabile. Questa operazione non ha un effetto immediato sull'istanza EC2 o il volume EBS. Amazon EC2 utilizza la chiave dati, non la chiave KMS, per crittografare tutti gli I/O del disco fintantoché il volume è collegato all'istanza.

  4. Tuttavia, quando il volume EBS crittografato è scollegato dall'istanza EC2, Amazon EBS rimuove la chiave dati dall'hardware Nitro. La prossima volta che il volume EBS crittografato viene collegato a un'istanza EC2, il collegamento ha esito negativo, poiché Amazon EBS non è in grado di utilizzare la chiave KMS per decrittare la chiave di dati crittografati del volume. Per utilizzare di nuovo il volume EBS, devi rendere utilizzabile la chiave KMS.

Coppia di chiavi di dati

Le coppie di chiavi di dati sono chiavi di dati asimmetriche costituite da una chiave pubblica e una chiave privata correlate matematicamente. Sono progettati per l'uso nella crittografia e decrittografia lato client o nella firma e verifica all'esterno di. AWS KMS

A differenza delle coppie di chiavi di dati generate da strumenti come OpenSSL AWS KMS , protegge la chiave privata in ogni coppia di chiavi dati con una chiave KMS a crittografia simmetrica specificata dall'utente. AWS KMS Tuttavia, AWS KMS non archivia, gestisce o tiene traccia delle coppie di chiavi di dati né esegue operazioni crittografiche con coppie di chiavi di dati. È necessario utilizzare e gestire le coppie di chiavi di dati al di fuori di AWS KMS.

AWS KMS supporta i seguenti tipi di coppie di chiavi di dati:

  • Coppia di chiavi RSA: RSA_2048, RSA_3072 e RSA_4096

  • Coppie di chiavi basate su curve ellittiche, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521 e ECC_SECG_P256K1

  • Coppie di chiavi SM (solo regioni della Cina): SM2

Il tipo di coppia di chiavi dati selezionata in genere dipende dal caso d'uso o dai requisiti normativi. La maggior parte dei certificati richiede chiavi RSA. Le chiavi a curva ellittica vengono spesso utilizzate per firme digitali o per ricavare segreti condivisi. Le chiavi ECC_SECG_P256K1 sono comunemente utilizzate per le criptovalute. AWS KMS consiglia di utilizzare coppie di chiavi ECC per la firma e di utilizzare coppie di chiavi RSA per la crittografia o la firma, ma non entrambe. Tuttavia, AWS KMS non è possibile imporre alcuna restrizione all'uso di coppie di chiavi di dati al di fuori di. AWS KMS

Creare una coppia di chiave di dati

Per creare una coppia di chiavi di dati, chiama le GenerateDataKeyPairWithoutPlaintextoperazioni GenerateDataKeyPairo. Specifica la chiave KMS di crittografia simmetrica che desideri utilizzare per crittografare la chiave privata.

GenerateDataKeyPair restituisce una chiave pubblica di testo normale, una chiave privata di testo normale e una chiave privata crittografata. Utilizza questa operazione quando è necessaria una chiave privata di testo normale immediatamente, ad esempio per generare una firma digitale.

GenerateDataKeyPairWithoutPlaintext restituisce una chiave pubblica di testo normale e una chiave privata crittografata, ma non una chiave privata di testo normale. Utilizza questa operazione quando non è necessaria una chiave privata di testo normale, ad esempio quando si esegue la crittografia con una chiave pubblica. Successivamente, quando è necessaria una chiave privata di testo normale per decriptare i dati, è possibile chiamare l'operazione Decrittografa.

L'immagine seguente mostra l'operazione GenerateDataKeyPair. L'operazione GenerateDataKeyPairWithoutPlaintext omette la chiave privata di testo normale.

Generare una coppia di chiavi di dati

Crittografia dei dati con una coppia di chiavi di dati

Quando si esegue la crittografia con una coppia di chiavi di dati, si utilizza la chiave pubblica della coppia per crittografare i dati e la chiave privata della stessa coppia per decriptare i dati. In genere, usi le coppie di chiavi di dati quando molte parti devono crittografare i dati che solo la parte con la chiave privata può decriptare.

Le parti con la chiave pubblica utilizzano tale chiave per crittografare i dati, come mostrato nel diagramma seguente.

Crittografa i dati degli utenti con la chiave pubblica di una coppia di chiavi di dati esterna a AWS KMS

Decrittografia dei dati con una coppia di chiave di dati

Per decriptare i dati, utilizzare la chiave privata nella coppia di chiavi di dati. Affinché l'operazione abbia esito positivo, le chiavi pubbliche e private devono essere della stessa coppia di chiavi di dati ed è necessario utilizzare lo stesso algoritmo di crittografia.

Per decriptare la chiave privata crittografata, passarla all'operazione Decrittografa. Utilizza la chiave privata di testo normale per decriptare i dati. Quindi rimuovi la chiave privata di testo normale dalla memoria il prima possibile.

Il diagramma seguente mostra come utilizzare la chiave privata in una coppia di chiavi di dati per decriptare il testo cifrato.

Decrittografa i dati con la chiave privata in una coppia di chiavi di dati esternamente a AWS KMS.

Firmare messaggi con una coppia di chiavi di dati

Per generare una firma crittografica per un messaggio, utilizzare la chiave privata nella coppia di chiavi di dati. Chiunque abbia la chiave pubblica può utilizzarla per verificare che il messaggio sia stato firmato con la chiave privata e che non sia cambiato da quando è stato firmato.

Se crittografi la tua chiave privata, passa la chiave privata crittografata all'operazione Decrypt. AWS KMS utilizza la chiave KMS per decrittografare la chiave dati e quindi restituisce la chiave privata in testo non crittografato. Utilizza la chiave privata di testo normale per generare la firma. Quindi rimuovi la chiave privata di testo normale dalla memoria il prima possibile.

Per firmare un messaggio, creare un messaggio digest utilizzando una funzione hash di crittografia, ad esempio il comando dgst in OpenSSL. Quindi, passa la tua chiave privata di testo normale all'algoritmo di firma. Il risultato è una firma che rappresenta i contenuti del messaggio. (Potrebbe essere possibile firmare messaggi più brevi senza prima creare un digest. La dimensione massima del messaggio varia in base allo strumento di firma utilizzato.)

Il diagramma seguente mostra come utilizzare la chiave privata in una coppia di chiavi di dati per firmare un messaggio.

Genera una firma crittografica con la chiave privata in una coppia di chiavi di AWS KMS dati esterna a.

Verificare una firma con una coppia di chiavi di dati

Chiunque abbia la chiave pubblica nella coppia di chiavi di dati può utilizzarla per verificare la firma generata con la chiave privata. La verifica conferma che un utente autorizzato ha firmato il messaggio con la chiave privata e l'algoritmo di firma specificati e che il messaggio non è cambiato da quando è stato firmato.

Per avere successo, la parte che verifica la firma deve generare lo stesso tipo di digest, utilizzare lo stesso algoritmo e utilizzare la chiave pubblica corrispondente alla chiave privata utilizzata per firmare il messaggio.

Nel diagramma seguente viene illustrato come utilizzare la chiave pubblica in una coppia di chiavi di dati per verificare una firma del messaggio.

Verifica una firma crittografica con la chiave pubblica in una coppia di chiavi di dati al di fuori di AWS KMS.

Ricava un segreto condiviso con coppie di chiavi di dati

L'accordo chiave consente a due peer, ciascuno dotato di una coppia di chiavi pubblica-privata a curva ellittica, di stabilire un segreto condiviso su un canale non sicuro. Per ricavare un segreto condiviso, i due peer devono scambiarsi le proprie chiavi pubbliche su un canale di comunicazione non sicuro (come Internet). Quindi, ciascuna parte utilizza la propria chiave privata e la chiave pubblica del proprio pari per calcolare lo stesso segreto condiviso utilizzando un algoritmo di accordo chiave. È possibile utilizzare il valore segreto condiviso per derivare una chiave simmetrica in grado di crittografare e decrittografare i dati inviati tra i due peer o che può generare e verificare HMAC.

Nota

AWS KMS consiglia vivamente di verificare che la chiave pubblica ricevuta provenga dalla parte prevista prima di utilizzarla per ricavare un segreto condiviso.

Alias

Usa un alias come nome descrittivo per una chiave KMS. Ad esempio, puoi fare riferimento a una chiave KMS come test-key invece di 1234abcd-12ab-34cd-56ef-1234567890ab.

Gli alias semplificano l'identificazione di una chiave KMS nella AWS Management Console. È possibile utilizzare un alias per identificare una chiave KMS in alcune AWS KMS operazioni, incluse le operazioni crittografiche. Nelle applicazioni, è possibile utilizzare un singolo alias per fare riferimento a chiavi KMS diverse in ciascuna di esse. Regione AWS

Puoi inoltre consentire e negare l'accesso alle chiavi KMS in base ai relativi alias senza modificare le policy o gestire le concessioni. Questa funzionalità fa parte del AWS KMS supporto per il controllo degli accessi basato sugli attributi (ABAC). Per informazioni dettagliate, vedi ABAC per AWS KMS.

In AWS KMS, gli alias sono risorse indipendenti, non proprietà di una chiave KMS. Pertanto, puoi aggiungere, modificare ed eliminare un alias senza influire sulla chiave KMS.

Importante

Non includere informazioni riservate o sensibili nel nome dell'alias. Gli alias possono apparire in testo semplice nei log e in CloudTrail altri output.

Ulteriori informazioni:

store delle chiavi personalizzate

Un archivio chiavi personalizzato è una AWS KMS risorsa supportata da un gestore di chiavi esterno a AWS KMS quello di tua proprietà e gestione. Quando utilizzi una chiave KMS in un archivio delle chiavi personalizzate per un'operazione di crittografia, quest'ultima viene in realtà eseguita nel gestore delle chiavi tramite le relative chiavi crittografiche.

AWS KMS supporta archivi di AWS CloudHSM chiavi supportati da un AWS CloudHSM cluster e archivi di chiavi esterni supportati da un gestore di chiavi esterno esterno a AWS.

Per ulteriori informazioni, consulta store delle chiavi personalizzate.

Operazioni di crittografia

In AWS KMS, le operazioni crittografiche sono operazioni API che utilizzano chiavi KMS per proteggere i dati. Poiché le chiavi KMS rimangono all'interno AWS KMS, è necessario chiamare AWS KMS per utilizzare una chiave KMS in un'operazione crittografica.

Per eseguire operazioni crittografiche con le chiavi KMS, usa gli AWS SDK, AWS Command Line Interface () o.AWS CLI AWS Tools for PowerShell Non è possibile eseguire operazioni di crittografia nella console AWS KMS . Per esempi di chiamata delle operazioni crittografiche in diversi linguaggi di programmazione, consulta Programmazione dell'API AWS KMS.

La tabella seguente elenca le operazioni crittografiche. AWS KMS Viene illustrato anche il tipo di chiave e i requisiti di utilizzo della chiave per le chiavi KMS usate nell'operazione.

Operazione Tipo di chiavi Utilizzo delle chiavi
Decrypt Simmetrico o asimmetrico ENCRYPT_DECRYPT
DeriveSharedSecret Asimmetrica KEY_AGREEMENT
Encrypt Simmetrico o asimmetrico ENCRYPT_DECRYPT
GenerateDataKey Simmetria ENCRYPT_DECRYPT
GenerateDataKeyPair Simmetrica [1]

Non è supportato sulle chiavi KMS negli archivi delle chiavi personalizzate.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Simmetrica [1]

Non è supportato sulle chiavi KMS negli archivi delle chiavi personalizzate.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Simmetria ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom N/D. Questa operazione non utilizza una chiave KMS. N/D
ReEncrypt Simmetrico o asimmetrico ENCRYPT_DECRYPT
Sign Asimmetrica SIGN_VERIFY
Verify Asimmetrica SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Genera coppie di chiavi di dati asimmetriche protette da una chiave KMS di crittografia simmetrica.

Per informazioni sulle autorizzazioni per le operazioni di crittografia, consulta AWS KMS autorizzazioni.

Per renderlo AWS KMS reattivo e altamente funzionale per tutti gli utenti, AWS KMS stabilisce quote sul numero di operazioni crittografiche richiamate in ogni secondo. Per informazioni dettagliate, vedi Quote condivise per le operazioni di crittografia.

Identificatori chiave () KeyId

Gli identificatori delle chiavi fungono da nomi per le tue chiavi KMS. Consentono di riconoscere le chiavi KMS nella console. Puoi utilizzarli per indicare quali chiavi KMS vuoi utilizzare nelle operazioni API AWS KMS , nelle policy chiave, nelle policy IAM e nelle concessioni. Gli identificatori delle chiavi non sono in alcun modo correlati al materiale chiave associato alla chiave KMS.

AWS KMS definisce diversi identificatori chiave. Quando crei una chiave KMS, AWS KMS genera un ARN e un ID chiave, che sono proprietà della chiave KMS. Quando crei un alias, AWS KMS genera un alias ARN in base al nome alias che definisci. È possibile visualizzare gli identificatori di chiave e alias nella e nell'API. AWS Management Console AWS KMS

Nella AWS KMS console, puoi visualizzare e filtrare le chiavi KMS in base all'ARN della chiave, all'ID della chiave o al nome alias e ordinare per ID chiave e nome alias. Per informazioni su come individuare gli identificatori della chiave nella console, consulta Individuazione dell'ID e dell'ARN della chiave.

Nell' AWS KMS API, i parametri utilizzati per identificare una chiave KMS hanno un nome KeyId o una variante, ad esempio o. TargetKeyId DestinationKeyId Tuttavia, i valori di tali parametri non sono limitati agli ID chiave. Alcuni possono prendere qualsiasi identificatore di chiave valido. Per informazioni sui valori di ciascun parametro, consulta la descrizione del parametro nell' AWS Key Management Service API Reference.

Nota

Quando usi l' AWS KMS API, fai attenzione all'identificatore di chiave che usi. API diverse richiedono identificatori di chiave diversi. In generale, utilizza l'identificatore di chiave più completo e pratico per il processo.

AWS KMS supporta i seguenti identificatori chiave.

ARN della chiave

L'ARN di chiave è il nome della risorsa Amazon (ARN) di una chiave KMS. Si tratta di un identificatore univoco e completo per la chiave KMS. L'ARN di una chiave include la Account AWS regione e l'ID della chiave. Per informazioni su come individuare l'ARN di una chiave KMS, consulta Individuazione dell'ID e dell'ARN della chiave.

Il formato di un ARN della chiave è il seguente:

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

Di seguito è riportato un esempio di ARN della chiave per una chiave KMS per una singola Regione.

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

L'elemento key-id degli ARN chiave delle chiavi in più Regioni inizia con il prefisso mrk-. Di seguito è riportato un esempio di ARN della chiave per una chiave KMS in più Regioni.

arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
ID chiave

L'ID chiave identifica in modo univoco una chiave KMS all'interno di un account e di una Regione. Per informazioni su come individuare l'ID chiave di una chiave KMS, consulta Individuazione dell'ID e dell'ARN della chiave.

Di seguito è riportato un esempio di ID chiave per una chiave KMS per una singola Regione.

1234abcd-12ab-34cd-56ef-1234567890ab

Gli ID chiave di chiavi per più regioni iniziano con il prefisso mrk-. Di seguito è riportato un esempio di ARN della chiave per una chiave KMS in più Regioni.

mrk-1234abcd12ab34cd56ef1234567890ab
ARN dell'alias

L'alias ARN è l'Amazon Resource Name (ARN) di un alias. AWS KMS Si tratta di un identificatore univoco e completo per l'alias e per la chiave KMS che rappresenta. Un alias ARN include, Region e Account AWS il nome dell'alias.

In qualsiasi momento, un ARN di alias identifica una particolare chiave KMS. Tuttavia, poiché puoi modificare la chiave KMS associata all'alias, l'ARN di alias può identificare chiavi KMS diverse in momenti diversi. Per informazioni su come individuare l'ARN di alias di una chiave KMS, consulta Individuazione del nome e dell'ARN dell'alias.

Il formato di un ARN dell'alias è il seguente:

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

Di seguito è riportato l'ARN dell'alias per un ExampleAlias fittizio.

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
Nome alias

Il nome alias è una stringa di massimo 256 caratteri. Il nome alias identifica in modo univoco una chiave KMS associata all'interno di un account e di una regione. Nell' AWS KMS API, i nomi alias iniziano sempre con. alias/ Per informazioni sulla ricerca del nome dell'alias di una chiave KMS, consulta Individuazione del nome e dell'ARN dell'alias.

Il formato di un nome alias è il seguente:

alias/<alias-name>

Ad esempio:

alias/ExampleAlias

Il prefisso aws/ di un nome alias è riservato alle Chiavi gestite da AWS. Non è possibile creare un alias con questo prefisso. Ad esempio, il nome alias di Amazon Chiave gestita da AWS Simple Storage Service (Amazon S3) è il seguente.

alias/aws/s3

Materiale chiave

Il materiale della chiave è la stringa di bit utilizzata in un algoritmo crittografico. Il materiale della chiave privata deve essere tenuto privato per proteggere le operazioni di crittografia che lo utilizzano. Il materiale della chiave pubblica è progettato per essere condiviso.

Ogni chiave KMS include un riferimento al relativo materiale della chiave nei suoi metadati. L'origine del materiale della chiave delle chiavi KMS di crittografia simmetrica può variare. Puoi utilizzare materiale chiave che AWS KMS genera, materiale chiave generato nel AWS CloudHSM cluster di un archivio di chiavi personalizzato o importare il tuo materiale chiave. Se utilizzi materiale AWS KMS chiave per la tua chiave KMS con crittografia simmetrica, puoi abilitare la rotazione automatica del materiale chiave.

Per impostazione predefinita, ogni chiave KMS dispone di materiale chiave univoco. Tuttavia, è possibile creare un set di chiavi per più regioni con lo stesso materiale chiave.

Origine del materiale della chiave

L'origine del materiale chiave è una proprietà chiave KMS che identifica l'origine del materiale chiave nella chiave KMS. L'origine del materiale della chiave viene scelta in fase di creazione della chiave KMS e non può essere modificata in seguito. L'origine del materiale della chiave influisce sulle caratteristiche di sicurezza, durata, disponibilità, latenza e velocità di trasmissione effettiva della chiave KMS.

Per trovare l'origine del materiale chiave di una chiave KMS, utilizza l'DescribeKeyoperazione o visualizza il valore Origin nella scheda Configurazione crittografica della pagina di dettaglio relativa a una chiave KMS nella console. AWS KMS Per informazioni, consulta Chiavi di visualizzazione.

Le chiavi KMS possono avere uno dei seguenti valori di origine del materiale della chiave.

AWS_KMS

AWS KMS crea e gestisce il materiale chiave per la chiave KMS nel proprio archivio di chiavi. Questo è il valore predefinito e consigliato per la maggior parte delle chiavi KMS.

Per informazioni sulla creazione di chiavi con materiale chiave proveniente da AWS KMS, consultaCreazione di chiavi.

EXTERNAL (Import key material)

La chiave KMS dispone di materiale chiave importato. Quando crei una chiave KMS con un'origine del materiale chiave External, la chiave KMS non dispone di materiale chiave. Successivamente, puoi importare il materiale chiave nella chiave KMS. Quando si utilizza materiale chiave importato, è necessario proteggere e gestire tale materiale chiave all'esterno AWS KMS, inclusa la sostituzione del materiale chiave in caso di scadenza. Per informazioni dettagliate, vedi Informazioni sul materiale della chiave importato.

Per informazioni sulla creazione di una chiave KMS per il materiale della chiave importato, consulta Fase 1: creare una chiave KMS senza materiale chiave.

AWS_CLOUDHSM

AWS KMS crea il materiale chiave nel AWS CloudHSM cluster per l'archivio AWS CloudHSM delle chiavi.

Per informazioni sulla creazione di una chiave KMS in un archivio di AWS CloudHSM chiavi, consultaCreazione di chiavi KMS in un archivio delle chiavi di AWS CloudHSM.

EXTERNAL_KEY_STORE

Il materiale chiave è una chiave crittografica in un gestore di chiavi esterno a. AWS Questa origine è supportata solo per le chiavi KMS in un archivio delle chiavi esterne.

Per informazioni sulla creazione di una chiave KMS in un archivio delle chiavi esterne, consulta la sezione Creazione di chiavi KMS in un archivio delle chiavi esterne.

Specifica della chiave

Key spec è una proprietà che rappresenta la configurazione crittografica della chiave. Il significato delle specifiche della chiave differisce dal tipo di chiave.

  • AWS KMS chiavi: la specifica della chiave determina se la chiave KMS è simmetrica o asimmetrica. Determina anche il tipo di materiale della chiave e gli algoritmi supportati. La specifica della chiave viene scelta in fase di creazione della chiave KMS e non può essere modificata in seguito. La specifica della chiave predefinita, SYMMETRIC_DEFAULT, rappresenta una chiave crittografica simmetrica a 256 bit.

    Nota

    La KeySpec per una chiave KMS era nota come CustomerMasterKeySpec. Il CustomerMasterKeySpec parametro dell'operazione è obsoleto. CreateKey Utilizza invece il parametro KeySpec, che funziona allo stesso modo. Per evitare modifiche irreversibili, la risposta delle DescribeKeyoperazioni CreateKey and ora include sia KeySpec CustomerMasterKeySpec i membri che hanno gli stessi valori.

    Per un elenco di specifiche della chiave e aiuto nella scelta di specifiche della chiave, consulta Selezione delle specifiche della chiave. Per trovare le specifiche chiave di una chiave KMS, utilizza l'DescribeKeyoperazione o consulta la scheda Configurazione crittografica nella pagina dei dettagli relativa a una chiave KMS nella console. AWS KMS Per informazioni, consulta Chiavi di visualizzazione.

    Per limitare le specifiche chiave che i mandanti possono utilizzare durante la creazione delle chiavi KMS, usa la chiave kms: condition. KeySpec Puoi anche usare la chiave kms:KeySpec condition per consentire ai principali di richiamare AWS KMS le operazioni solo sulle chiavi KMS con una specifica chiave particolare. Ad esempio, puoi negare l'autorizzazione per pianificare l'eliminazione di tutte le chiavi KMS con una specifica delle chiave RSA_4096.

  • Chiavi dati (GenerateDataKey): la specifica chiave determina la lunghezza di una chiave dati AES.

  • Coppie di chiavi dati (GenerateDataKeyPair): la specifica della coppia di chiavi determina il tipo di materiale chiave nella coppia di chiavi dati.

Utilizzo delle chiavi

L'utilizzo della chiave è una proprietà che determina le operazioni di crittografia supportate dalla chiave. Le chiavi KMS possono utilizzare come chiaveENCRYPT_DECRYPT, SIGN_VERIFYGENERATE_VERIFY_MAC, o. KEY_AGREEMENT Ogni chiave KMS può avere solo un utilizzo. L'utilizzo di una chiave KMS per più di un tipo di operazione rende il prodotto di entrambe le operazioni più vulnerabile agli attacchi.

Per informazioni sulla scelta dell'utilizzo della chiave per la chiave KMS, consulta la sezione Selezione dell'utilizzo della chiave. Per scoprire l'utilizzo delle chiavi di una chiave KMS, utilizza l'DescribeKeyoperazione o scegli la scheda Configurazione crittografica nella pagina dei dettagli relativa a una chiave KMS nella console. AWS KMS Per informazioni, consulta Chiavi di visualizzazione.

Crittografia envelope

Quando esegui la crittografia dei dati, i dati sono protetti, ma è necessario proteggere la chiave crittografica. Una strategia consiste nel crittografarla. La Crittografia envelope consiste nel crittografare i dati di testo normale con una chiave di dati, quindi crittografare la chiave di dati in un'altra chiave.

È anche possibile crittografare la chiave crittografica dei dati in un'altra chiave crittografica e crittografare tale chiave crittografica con un'altra chiave crittografica. Alla fine, però, una chiave deve rimanere in testo normale in modo da poter decrittografare le chiavi e i dati. Questa chiave crittografica di primo livello della chiave in testo normale è nota come chiave radice.

Crittografia envelope

AWS KMS ti aiuta a proteggere le tue chiavi di crittografia archiviandole e gestendole in modo sicuro. Le chiavi root memorizzate in AWS KMS, note come AWS KMS keys, non lasciano mai i moduli di sicurezza hardware convalidati AWS KMS FIPS non crittografati. Per utilizzare una chiave KMS, è necessario chiamare. AWS KMS

Crittografia envelope con più chiavi crittografiche delle chiavi

La crittografia envelope offre diversi vantaggi:

  • Protezione delle chiavi dei dati

    Quando crittografi una chiave di dati, non è necessario preoccuparsi di dove archiviarla, poiché la chiave di dati è intrinsecamente protetta dalla crittografia. Puoi archiviare la chiave di dati crittografata in modo sicuro con i dati crittografati.

  • Crittografia degli stessi dati con più chiavi

    Le operazioni di crittografia possono essere dispendiose in termini di tempo, soprattutto quando i dati crittografati sono oggetti di grandi dimensioni. Invece di ricrittografare dati grezzi più volte con chiavi diverse, è possibile ricrittografare solo le chiavi di dati che proteggono i dati grezzi.

  • Abbinare i punti di forza di più algoritmi

    In generale, gli algoritmi di chiavi simmetriche sono più veloci e producono testi cifrati più piccoli rispetto agli algoritmi di chiave pubblica. Tuttavia, gli algoritmi di chiave pubblica forniscono una separazione intrinseca dei ruoli e facilitano la gestione delle chiavi. La crittografia envelope ti consente di abbinare i punti di forza di ciascuna strategia.

Contesto di crittografia

Tutte le operazioni AWS KMS crittografiche con crittografia simmetrica (chiavi KMS) accettano un contesto di crittografia, un set opzionale di coppie chiave-valore non segrete che possono contenere informazioni contestuali aggiuntive sui dati. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi (AAD) per supportare la crittografia autenticata.

Quando un contesto di crittografia viene fornito in una richiesta di crittografia, è vincolato a livello crittografico al testo cifrato allo stesso modo del contesto di crittografia che è necessario per decrittografare (o per decrittografare e ricrittografare) i dati. Se il contesto di crittografia fornito nella richiesta di decrittografia non costituisce una corrispondenza esatta a livello di maiuscole e minuscole, la richiesta ha esito negativo. Solo l'ordine delle coppie chiave-valore nel contesto di crittografia può variare.

Nota

Non è possibile specificare un contesto di crittografia in un'operazione di crittografia con una chiave KMS asimmetrica o una chiave KMS HMAC. Gli algoritmi asimmetrici e gli algoritmi MAC non supportano un contesto di crittografia.

Il contesto di crittografia non è segreto e non è crittografato. Appare in testo normale nei log AWS CloudTrail in modo da poterlo utilizzare per individuare e categorizzare le operazioni di crittografia. Il contesto di crittografia non dovrebbe includere informazioni sensibili. È consigliabile che il contesto di crittografia descriva i dati crittografati o decrittografati. Ad esempio, quando si esegue la crittografia di un file, è possibile utilizzare parte del percorso di file come contesto di crittografia.

"encryptionContext": { "department": "10103.0" }

Ad esempio, quando crittografa volumi e snapshot creati con l'operazione Amazon Elastic Block Store (Amazon EBS) CreateSnapshot, Amazon EBS utilizza l'ID del volume come valore del contesto di crittografia.

"encryptionContext": { "aws:ebs:id": "vol-abcde12345abc1234" }

Puoi anche utilizzare il contesto di crittografia per perfezionare o limitare l'accesso al tuo account. AWS KMS keys È possibile utilizzare il contesto di crittografia come vincolo nelle concessioni e come una condizione nelle istruzioni di policy.

Per informazioni su come utilizzare il contesto di crittografia per proteggere l'integrità dei dati crittografati, consulta il post Come proteggere l'integrità dei dati crittografati utilizzando AWS Key Management Service e EncryptionContext sul blog sulla AWS sicurezza.

Ulteriori informazioni sul contesto di crittografia.

AWS KMS applica le seguenti regole per le chiavi e i valori del contesto di crittografia.

  • La chiave e il valore in una coppia del contesto di crittografia devono essere stringhe letterali semplici. Se si utilizza un tipo diverso, ad esempio un numero intero o un float, lo AWS KMS interpreta come una stringa.

  • Le chiavi e i valori in un contesto di crittografia possono includere caratteri Unicode. Se un contesto di crittografia include caratteri non consentiti nelle policy della chiave o nelle policy IAM, non sarà possibile specificare il contesto di crittografia nelle chiavi di condizioni della policy, ad esempio kms:EncryptionContext:context-key e kms:EncryptionContextKeys. Per maggiori informazioni sulle regole delineate nel documento delle policy delle chiavi, consulta la sezione Formato della policy della chiave. Per informazioni dettagliate sulle regole delineate nel documento delle policy IAM, consulta la sezione Requisiti del nome IAM nella Guida per l'utente di IAM.

Il contesto di crittografia viene utilizzato principalmente per verificare l'integrità e l'autenticità. Tuttavia, puoi anche utilizzare il contesto di crittografia per controllare l'accesso alle AWS KMS keys di crittografia simmetrica nelle policy delle chiavi e nelle policy IAM.

Le chiavi kms:EncryptionContext: e kms: EncryptionContextKeys condition consentono (o negano) un'autorizzazione solo quando la richiesta include particolari chiavi di contesto di crittografia o coppie chiave-valore.

Ad esempio, la seguente istruzione della policy delle chiavi consente al ruolo RoleForExampleApp di utilizzare la chiave KMS nelle operazioni Decrypt. Utilizza la chiave di condizione kms:EncryptionContext:context-key per concedere questa autorizzazione solo quando il contesto di crittografia nella richiesta include una coppia di contesto di crittografia AppName:ExampleApp.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Per ulteriori informazioni su queste chiavi di condizione del contesto di crittografia, consulta Chiavi di condizione per AWS KMS.

Quando crei una concessione, puoi includere vincoli di concessione che stabiliscono le condizioni per le autorizzazioni di concessione. AWS KMS supporta due vincoli di concessione EncryptionContextEquals ed EncryptionContextSubset entrambi coinvolgono il contesto di crittografia in una richiesta di operazione crittografica. Quando utilizzi questi vincoli di concessione, le autorizzazioni nella concessione sono valide solo quando il contesto di crittografia nella richiesta per l'operazione di crittografia soddisfa i requisiti dei vincoli di concessione.

Ad esempio, è possibile aggiungere un vincolo di EncryptionContextEquals concessione a una concessione che consente l'operazione. GenerateDataKey Con questo vincolo, la concessione consente l'operazione solo quando il contesto di crittografia nella richiesta corrisponde a livello di maiuscole e minuscole al contesto di crittografia nel vincolo di concessione.

$ aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --operations GenerateDataKey \ --constraints EncryptionContextEquals={Purpose=Test}

Una richiesta come la seguente dal principale beneficiario soddisferebbe il EncryptionContextEquals vincolo.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test

Per ulteriori informazioni sui vincoli della concessione, consulta Utilizzo dei vincoli di concessione. Per informazioni dettagliate sugli alias, consulta Sovvenzioni in AWS KMS.

AWS KMS utilizza AWS CloudTrail per registrare il contesto di crittografia in modo da poter determinare a quali chiavi e dati KMS è stato effettuato l'accesso. La voce di log mostra esattamente la chiave KMS utilizzata per crittografare o decrittare dati specifici a cui fa riferimento il contesto di crittografia nella voce di log.

Importante

Poiché il contesto di crittografia viene registrato, non deve contenere informazioni sensibili.

Per semplificare l'utilizzo di qualsiasi contesto di crittografia quando chiami le operazioni Decrypt o ReEncrypt, puoi archiviare il contesto di crittografia insieme ai dati crittografati. Ti consigliamo di archiviare solo il contesto di crittografia sufficiente per aiutarti a creare il contesto di crittografia completo quando ne hai bisogno per la crittografia o la decrittografia.

Ad esempio, se il contesto di crittografia è il percorso completo di un file, archivia solo la parte del percorso con i contenuti crittografati del file. Quando ti occorre il contesto di crittografia completo, puoi ricostruirlo dal frammento archiviato. Se qualcuno altera il file, ad esempio lo rinomina o lo sposta in un percorso diverso, il valore del contesto di crittografia cambia e la richiesta di decrittografia ha esito negativo.

Policy della chiave

Quando crei una chiave KMS, puoi stabilire chi la può utilizzare e gestire. Queste autorizzazioni sono contenute in un documento chiamato policy delle chiavi. Puoi utilizzare la policy delle chiavi per aggiungere, rimuovere o modificare le autorizzazioni in qualsiasi momento per una chiave gestita dal cliente. Tuttavia, non è possibile modificare la politica chiave per un Chiavi gestite da AWS. Per ulteriori informazioni, consulta Politiche chiave in AWS KMS.

Grant

Una sovvenzione è uno strumento politico che consente ai AWS mandanti di utilizzarlo AWS KMS keys nelle operazioni crittografiche. Può anche consentire loro di visualizzare una chiave KMS (DescribeKey) e creare e gestire le sovvenzioni. 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. Poiché le concessioni possono essere molto specifiche e sono facili da creare e revocare, vengono spesso utilizzate per fornire autorizzazioni temporanee o autorizzazioni più granulari.

Per informazioni dettagliate sulle concessioni, inclusa la terminologia delle concessioni, consulta Sovvenzioni in AWS KMS.

Verifica dell'utilizzo della chiave KMS

È possibile utilizzare AWS CloudTrail per controllare l'utilizzo delle chiavi. CloudTrail crea file di registro che contengono una cronologia delle chiamate AWS API e degli eventi correlati per il tuo account. Questi file di registro includono tutte le richieste AWS KMS API effettuate con la Console di AWS gestione, gli AWS SDK e gli strumenti da riga di comando. I file di registro includono anche le richieste AWS KMS che i AWS servizi inviano per tuo conto. Puoi utilizzare questi file di log per trovare informazioni importanti, tra cui quando sono state usate le chiavi KMS, l'operazione richiesta, l'identità del richiedente e l'indirizzo IP di origine. Per ulteriori informazioni, consulta Registrazione con AWS CloudTrail e la Guida per l'utente di AWS CloudTrail.

Infrastruttura di gestione delle chiavi

Una pratica comune nella crittografia consiste nel crittografare e decrittografare utilizzando un algoritmo pubblico e sottoposto a revisione, come, ad esempio, AES (Advanced Encryption Standard) e una chiave segreta. Riuscire a mantenere una chiave segreta costituisce uno dei problemi principali della crittografia. Questo è in genere il lavoro di un'infrastruttura di gestione delle chiavi (KMI). AWS KMS gestisce l'infrastruttura chiave per te. AWS KMS crea e archivia in modo sicuro le chiavi principali, chiamate AWS KMS keys. Per ulteriori informazioni su come AWS KMS funziona, consulta Dettagli AWS Key Management Service crittografici.