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 portachiavi
Un AWS KMS portachiavi utilizza la crittografia simmetrica AWS KMS keysper generare, crittografare e decrittografare le chiavi di dati. AWS Key Management Service (AWS KMS) protegge le KMS chiavi ed esegue operazioni crittografiche entro i limiti. FIPS Ti consigliamo di utilizzare un AWS KMS portachiavi o un portachiavi con proprietà di sicurezza simili, quando possibile.
È possibile utilizzare una chiave AWS KMS multiregionale in un portachiavi o in un provider di AWS KMS chiavi master a partire dalla versione 2.3. x della AWS Encryption SDK e versione 3.0. x della AWS crittografiaCLI. Per dettagli ed esempi sull'utilizzo del nuovo simbolo multiregionale, vedere. Utilizzo di più regioni AWS KMS keys Per informazioni sulle chiavi multiregionali, consulta Uso delle chiavi multiregionali nella Guida per gli sviluppatori.AWS Key Management Service
Nota
Versione 4. x del AWS Encryption SDK modulo. NETe versione 3. x di queste SDK di crittografia AWS per Java sono le uniche implementazioni del linguaggio di programmazione che supportano i AWS KMS portachiavi che utilizzano l'asimmetria. RSA AWS KMS keys
Se si tenta di includere una chiave asimmetrica in un KMS portachiavi di crittografia in qualsiasi altra implementazione linguistica, la chiamata encrypt ha esito negativo. Se la includi in un portachiavi di decrittografia, viene ignorata.
Tutte le menzioni relative ai portachiavi nel riquadro si riferiscono ai KMSportachiavi. AWS Encryption SDK AWS KMS
AWS KMS i portachiavi possono includere due tipi di chiavi avvolgenti:
-
Chiave generatrice: genera una chiave di dati in testo semplice e la crittografa. Un portachiavi che crittografa i dati deve avere una chiave generatrice.
-
Chiavi aggiuntive: crittografa la chiave di dati in testo semplice generata dalla chiave del generatore. AWS KMS I portachiavi possono avere zero o più chiavi aggiuntive.
Durante la crittografia, il AWS KMS portachiavi utilizzato deve avere una chiave generatrice. Durante la decrittografia, la chiave del generatore è facoltativa e la distinzione tra le chiavi dei generatori e le chiavi aggiuntive viene ignorata.
Quando un portachiavi di AWS KMS crittografia ha una sola AWS KMS chiave, tale chiave viene utilizzata per generare e crittografare la chiave dati.
Come tutti i portachiavi, i AWS KMS portachiavi possono essere utilizzati indipendentemente o in un portachiavi multiplo con altri portachiavi dello stesso tipo o di un tipo diverso.
Argomenti
- AWS KMS Autorizzazioni richieste per i portachiavi
- Identificazione AWS KMS keys in un portachiavi AWS KMS
- Creazione di un portachiavi per AWS KMS la crittografia
- Creazione di un AWS KMS portachiavi per la decrittografia
- Utilizzo di un portachiavi Discovery AWS KMS
- Utilizzo di un portachiavi AWS KMS Regional Discovery
AWS KMS Autorizzazioni richieste per i portachiavi
AWS Encryption SDK Non richiede un Account AWS e non dipende da nessuno. Servizio AWS Tuttavia, per utilizzare un AWS KMS portachiavi, sono necessarie le seguenti autorizzazioni Account AWS minime sul AWS KMS keys portachiavi.
-
Per crittografare con un AWS KMS portachiavi, è necessaria l'autorizzazione kms: GenerateDataKey sulla chiave del generatore. È necessaria l'autorizzazione KMS:Encrypt su tutte le chiavi aggiuntive nel portachiavi. AWS KMS
-
Per decriptare con un AWS KMS portachiavi, è necessaria l'autorizzazione KMS:Decrypt su almeno una chiave del portachiavi. AWS KMS
-
Per crittografare con un portachiavi multiplo composto da portachiavi, è necessaria l'autorizzazione kms: sulla AWS KMS chiave del generatore nel portachiavi del generatore. GenerateDataKey È necessaria l'autorizzazione KMS:Encrypt su tutte le altre chiavi in tutti gli altri portachiavi. AWS KMS
Per informazioni dettagliate sulle autorizzazioni per AWS KMS keys, consulta Autenticazione e controllo degli accessi nella Guida per gli sviluppatori.AWS Key Management Service
Identificazione AWS KMS keys in un portachiavi AWS KMS
Un AWS KMS portachiavi può includerne uno o più. AWS KMS keys Per specificare un elemento AWS KMS key in un AWS KMS portachiavi, utilizzate un identificatore di AWS KMS chiave supportato. Gli identificatori di chiave che è possibile utilizzare per identificare un elemento AWS KMS key in un portachiavi variano a seconda dell'operazione e dell'implementazione del linguaggio. Per informazioni dettagliate sugli identificatori chiave di an AWS KMS key, consulta Key Identifiers nella Developer Guide.AWS Key Management Service
Come procedura consigliata, utilizzate l'identificatore di chiave più specifico e pratico per la vostra attività.
-
In un portachiavi di crittografia per SDK di crittografia AWS per C, è possibile utilizzare una chiave ARN o un alias ARN per identificare le chiavi. KMS In tutte le altre implementazioni linguistiche, è possibile utilizzare un ID di chiave, una chiave ARN, un nome alias o un alias per crittografare i dati. ARN
-
In un portachiavi di decrittografia, è necessario utilizzare una chiave per l'identificazione. ARN AWS KMS keys Questo requisito si applica a tutte le implementazioni di linguaggio di AWS Encryption SDK. Per informazioni dettagliate, consultare Selezione dei tasti di avvolgimento.
-
In un portachiavi utilizzato per la crittografia e la decrittografia, è necessario utilizzare una chiave per l'identificazione. ARN AWS KMS keys Questo requisito si applica a tutte le implementazioni di linguaggio di AWS Encryption SDK.
Se si specifica un nome alias o un alias ARN per una KMS chiave in un portachiavi di crittografia, l'operazione di crittografia salva la chiave ARN attualmente associata all'alias nei metadati della chiave di dati crittografata. Non salva l'alias. Le modifiche all'alias non influiscono sulla KMS chiave utilizzata per decrittografare le chiavi di dati crittografate.
Creazione di un portachiavi per AWS KMS la crittografia
È possibile configurare ogni AWS KMS portachiavi con uno AWS KMS key o più portachiavi nello stesso e AWS KMS keys in modo diverso Account AWS . Regioni AWS AWS KMS keys Devono essere chiavi di crittografia simmetriche (_)SYMMETRIC. DEFAULT È inoltre possibile utilizzare una chiave multiregionale con crittografia simmetrica. KMS Come con tutti i portachiavi, puoi utilizzare uno o più portachiavi in un AWS KMS portachiavi multiplo.
Quando si crea un AWS KMS portachiavi per crittografare i dati, è necessario specificare una chiave generatrice, AWS KMS key che viene utilizzata per generare una chiave di dati in testo semplice e crittografarla. La chiave dati non è matematicamente correlata alla chiave. KMS Quindi, se lo desideri, puoi specificarne altre AWS KMS keys che crittografano la stessa chiave di dati in testo normale.
Per decrittografare il messaggio crittografato protetto da questo portachiavi, il portachiavi utilizzato deve includere almeno uno dei messaggi AWS KMS keys definiti nel portachiavi, altrimenti no. AWS KMS keys(Un AWS KMS portachiavi con no AWS KMS keys è noto come portachiavi Discovery.)AWS KMS
Nelle implementazioni AWS Encryption SDK linguistiche diverse dalla SDK di crittografia AWS per C, tutte le chiavi di inserimento in un portachiavi di crittografia o in un portachiavi multiplo devono essere in grado di crittografare la chiave dati. Se una chiave di wrapping non riesce a crittografare, il metodo encrypt fallisce. Di conseguenza, il chiamante deve disporre delle autorizzazioni necessarie per tutte le chiavi del portachiavi. Se si utilizza un portachiavi Discovery per crittografare i dati, da solo o in un portachiavi multiplo, l'operazione di crittografia non riesce. L'eccezione è l'operazione di crittografia SDK di crittografia AWS per C, in cui l'operazione di crittografia ignora un portachiavi di rilevamento standard, ma ha esito negativo se si specifica un portachiavi di rilevamento multiregionale, da solo o in un portachiavi multiplo.
Gli esempi seguenti creano un AWS KMS portachiavi con una chiave generatrice e una chiave aggiuntiva. Questi esempi utilizzano la chiave ARNs per identificare le KMS chiavi. Si tratta di una procedura consigliata per i AWS KMS portachiavi utilizzati per la crittografia e un requisito per i AWS KMS portachiavi utilizzati per la decrittografia. Per informazioni dettagliate, consultare Identificazione AWS KMS keys in un portachiavi AWS KMS.
Creazione di un AWS KMS portachiavi per la decrittografia
È inoltre necessario specificare un AWS KMS portachiavi quando si decrittografa il messaggio crittografato che restituisce. AWS Encryption SDK Se il portachiavi di decrittografia lo specifica AWS KMS keys, AWS Encryption SDK utilizzerà solo quelle chiavi di avvolgimento per decrittografare le chiavi di dati crittografate nel messaggio crittografato. (Puoi anche usare un portachiavi AWS KMS Discovery, che non ne specifica alcuna.) AWS KMS keys
Durante la decrittografia, AWS Encryption SDK cerca nel AWS KMS portachiavi un oggetto in grado di decrittografare una AWS KMS key delle chiavi di dati crittografate. In particolare, AWS Encryption SDK utilizza lo schema seguente per ogni chiave di dati crittografata in un messaggio crittografato.
-
AWS Encryption SDK Ottiene la chiave ARN di chi AWS KMS key ha crittografato la chiave dati dai metadati del messaggio crittografato.
-
AWS Encryption SDK Cerca nel portachiavi di decrittografia una con una AWS KMS key chiave corrispondente. ARN
-
Se ne trova uno AWS KMS key con una chiave corrispondente ARN nel portachiavi, AWS Encryption SDK chiede di utilizzare la chiave per AWS KMS decrittografare la KMS chiave dati crittografata.
-
In caso contrario, passa alla chiave di dati crittografata successiva, se presente.
AWS Encryption SDK Non tenta mai di decrittografare una chiave dati crittografata a meno che la chiave di AWS KMS key quella chiave ARN di dati crittografata non sia inclusa nel portachiavi di decrittografia. Se il portachiavi di decrittografia non include nessuna delle chiavi dati AWS KMS keys che hanno crittografato alcuna ARNs delle chiavi di dati, la chiamata di decrittografia fallisce senza mai chiamare. AWS Encryption SDK AWS KMS
A partire dalla versione 1.7. x, quando si decrittografa una chiave dati crittografata, passa AWS Encryption SDK sempre la chiave ARN del AWS KMS key al KeyId
parametro dell'operazione AWS KMS Decrypt. Identificare il AWS KMS key momento della decrittografia è una procedura AWS KMS consigliata che garantisce la decrittografia della chiave dati crittografata con la chiave di wrapping che si intende utilizzare.
Una chiamata di decrittografia con un AWS KMS portachiavi ha esito positivo quando almeno uno dei componenti del portachiavi di decrittografia è AWS KMS key
in grado di decrittografare una delle chiavi di dati crittografate nel messaggio crittografato. Inoltre, l'intermediario deve avere l'autorizzazione kms:Decrypt
per la AWS KMS key. Questo comportamento consente di crittografare i dati relativi a più account Regioni AWS e AWS KMS keys in diversi account, ma fornisce un portachiavi di decrittografia più limitato e personalizzato per un particolare account, regione, utente, gruppo o ruolo.
Quando si specifica un portachiavi AWS KMS key in un portachiavi di decrittografia, è necessario utilizzarne la chiave. ARN Altrimenti, non AWS KMS key viene riconosciuto. Per informazioni su come trovare la chiaveARN, consulta Finding the Key ID e ARN nella AWS Key Management Service Developer Guide.
Nota
Se riutilizzi un portachiavi di crittografia per la decrittografia, assicurati che le persone che lo compongono siano AWS KMS keys identificate dalla loro chiave. ARNs
Ad esempio, il seguente AWS KMS portachiavi include solo la chiave aggiuntiva utilizzata nel portachiavi di crittografia. Tuttavia, invece di fare riferimento alla chiave aggiuntiva tramite il relativo aliasalias/exampleAlias
, l'esempio utilizza la chiave della chiave aggiuntiva ARN come richiesto dalle chiamate di decrittografia.
Puoi utilizzare questo keyring per decrittare un messaggio crittografato sia con la chiave generatore che con la chiave aggiuntiva, a condizione che hai l'autorizzazione per utilizzare la chiave aggiuntiva per decrittare i dati.
È inoltre possibile utilizzare un AWS KMS portachiavi che specifica una chiave generatrice per la decrittografia, come la seguente. Durante la decrittografia, AWS Encryption SDK ignora la distinzione tra le chiavi del generatore e le chiavi aggiuntive. Può utilizzare qualsiasi delle opzioni specificate AWS KMS keys per decrittografare una chiave di dati crittografata. La chiamata a ha AWS KMS esito positivo solo quando il chiamante è autorizzato a utilizzarla per decrittografare i AWS KMS key dati.
A differenza di un portachiavi di crittografia che utilizza tutti i dati specificati AWS KMS keys, è possibile decrittografare un messaggio crittografato utilizzando un portachiavi di decrittografia AWS KMS keys che include messaggi non correlati al messaggio crittografato e AWS KMS keys che il chiamante non è autorizzato a utilizzare. Se una chiamata di decrittazione a AWS KMS non riesce, ad esempio quando l'intermediario non ha le autorizzazioni necessarie, AWS Encryption SDK passa semplicemente alla chiave di dati crittografata successiva.
Utilizzo di un portachiavi Discovery AWS KMS
Durante la decrittografia, è consigliabile specificare le chiavi di wrapping che possono utilizzare. AWS Encryption SDK Per seguire questa procedura ottimale, utilizzate un portachiavi di AWS KMS decrittografia che limiti le chiavi di AWS KMS wrapping a quelle specificate. Tuttavia, puoi anche creare un portachiavi AWS KMS Discovery, ovvero un AWS KMS portachiavi che non specifichi alcuna chiave di avvolgimento.
AWS Encryption SDK Fornisce un portachiavi AWS KMS Discovery standard e un portachiavi Discovery per chiavi multiregionali. AWS KMS Per informazioni sull'utilizzo delle chiavi multiregionali con, vedere. AWS Encryption SDKUtilizzo di più regioni AWS KMS keys
Poiché non specifica alcuna chiave di wrapping, un portachiavi Discovery non può crittografare i dati. Se si utilizza un portachiavi Discovery per crittografare i dati, da solo o in un portachiavi multiplo, l'operazione di crittografia non riesce. L'eccezione è l'operazione di crittografia SDK di crittografia AWS per C, in cui l'operazione di crittografia ignora un portachiavi di rilevamento standard, ma ha esito negativo se si specifica un portachiavi di rilevamento multiregionale, da solo o in un portachiavi multiplo.
Durante la decrittografia, un portachiavi Discovery consente di chiedere AWS KMS di AWS Encryption SDK decrittografare qualsiasi chiave di dati crittografata utilizzando quella che l'ha crittografata, indipendentemente da chi la possiede o ha accesso a AWS KMS key tale chiave. AWS KMS key La chiamata ha esito positivo solo quando il chiamante dispone dell'autorizzazione per. kms:Decrypt
AWS KMS key
Importante
Se includi un portachiavi AWS KMS Discovery in un portachiavi multiplo di decrittografia, il portachiavi Discovery ha la precedenza su tutte KMS le restrizioni relative ai tasti specificate dagli altri portachiavi del portachiavi multiplo. Il portachiavi multiplo si comporta come il portachiavi meno restrittivo. Un portachiavi AWS KMS Discovery non ha alcun effetto sulla crittografia se utilizzato da solo o in un portachiavi multiplo.
AWS Encryption SDK Fornisce un portachiavi AWS KMS Discovery per una maggiore comodità. ma, se possibile, consigliamo di utilizzare un keyring di portata più limitata per i motivi seguenti.
-
Autenticità: un portachiavi AWS KMS Discovery può utilizzare qualsiasi chiave utilizzata per crittografare una chiave di dati nel messaggio crittografato, solo in modo AWS KMS key che il chiamante abbia il permesso di utilizzarla per decrittografarla. AWS KMS key anche se potrebbe non essere la AWS KMS key che intende impiegare. Ad esempio, una delle chiavi di dati crittografate potrebbe essere stata crittografata con un metodo meno sicuro che chiunque può utilizzare. AWS KMS key
-
Latenza e prestazioni: un portachiavi AWS KMS Discovery potrebbe essere sensibilmente più lento rispetto ad altri portachiavi perché AWS Encryption SDK tenta di decrittografare tutte le chiavi di dati crittografate, comprese quelle crittografate AWS KMS keys in altre regioni, Account AWS e AWS KMS keys che il chiamante non è autorizzato a utilizzare per la decrittografia.
Se utilizzi un portachiavi di rilevamento, ti consigliamo di utilizzare un filtro di rilevamento per limitare le chiavi che possono essere utilizzate a quelle presenti in partizioni e partizioni specifiche. KMS Account AWS I filtri Discovery sono supportati nelle versioni 1.7. x e versioni successive di AWS Encryption SDK. Per informazioni su come trovare l'ID e la partizione dell'account, consulta I tuoi Account AWS identificatori e il ARNformato nel. Riferimenti generali di AWS
Il codice seguente crea un'istanza di un portachiavi di AWS KMS rilevamento con un filtro di rilevamento che limita le KMS chiavi AWS Encryption SDK utilizzabili a quelle presenti nella aws
partizione e nell'account di esempio 111122223333.
Prima di utilizzare questo codice, sostituite i valori di esempio Account AWS e di partizione con valori validi per la partizione and. Account AWS Se KMS le tue chiavi si trovano nelle regioni cinesi, usa il valore della aws-cn
partizione. Se KMS le tue chiavi sono inserite AWS GovCloud (US) Regions, usa il valore della aws-us-gov
partizione. Per tutti gli altri Regioni AWS, usa il valore della aws
partizione.
Utilizzo di un portachiavi AWS KMS Regional Discovery
Un portachiavi AWS KMS Regional Discovery è un portachiavi che non specifica il ARNs numero di chiavi. KMS Invece, consente la AWS Encryption SDK decrittografia utilizzando solo le chiavi in particolare. KMS Regioni AWS
Durante la decrittografia con un portachiavi AWS KMS Regional Discovery, AWS Encryption SDK
decripta qualsiasi chiave di dati crittografata che è stata crittografata con un valore specificato. AWS KMS key Regione AWS Per avere successo, il chiamante deve disporre dell'kms:Decrypt
autorizzazione su almeno una delle chiavi di dati specificate Regione AWS che hanno AWS KMS keys
crittografato una chiave dati.
Come altri portachiavi Discovery, il portachiavi Discovery regionale non ha alcun effetto sulla crittografia. Funziona solo quando si decifrano messaggi crittografati. Se si utilizza un portachiavi Regional Discovery in un portachiavi multiplo utilizzato per la crittografia e la decrittografia, è efficace solo durante la decrittografia. Se si utilizza un portachiavi di rilevamento multiregionale per crittografare i dati, da solo o in un portachiavi multiregionale, l'operazione di crittografia non riesce.
Importante
Se includi un portachiavi di rilevamento AWS KMS regionale in un portachiavi multiplo di decrittografia, il portachiavi di rilevamento regionale ha la precedenza su tutte le restrizioni relative alle chiavi specificate dagli altri portachiavi del portachiavi multiplo. KMS Il portachiavi multiplo si comporta come il portachiavi meno restrittivo. Un portachiavi AWS KMS Discovery non ha alcun effetto sulla crittografia se utilizzato da solo o in un portachiavi multiplo.
Il portachiavi Regional Discovery SDK di crittografia AWS per C tenta di decrittografare solo con KMS chiavi nella regione specificata. Quando si utilizza un portachiavi Discovery in and for. SDK di crittografia AWS per JavaScript AWS Encryption SDK NET, si configura la regione sul AWS KMS client. Queste AWS Encryption SDK implementazioni non filtrano le KMS chiavi per regione, ma AWS KMS falliranno una richiesta di decrittografia per KMS le chiavi al di fuori della regione specificata.
Se utilizzi un portachiavi di rilevamento, ti consigliamo di utilizzare un filtro di rilevamento per limitare KMS le chiavi utilizzate nella decrittografia a quelle nelle partizioni e nelle partizioni specificate. Account AWS I filtri Discovery sono supportati nelle versioni 1.7. x e versioni successive di AWS Encryption SDK.
Ad esempio, il codice seguente crea un portachiavi di scoperta AWS KMS regionale con un filtro di scoperta. Questo portachiavi limita AWS Encryption SDK le KMS chiavi del conto 111122223333 nella regione Stati Uniti occidentali (Oregon) (us-west-2).
Esporta SDK di crittografia AWS per JavaScript anche una excludeRegions
funzione per Node.js e il browser. Questa funzione crea un portachiavi di rilevamento AWS KMS regionale che omette AWS KMS keys in aree particolari. L'esempio seguente crea un portachiavi AWS KMS Regional Discovery che può essere utilizzato AWS KMS keys nell'account 111122223333 in tutti gli Stati Uniti Regione AWS ad eccezione di Stati Uniti orientali (Virginia settentrionale) (us-east-1).
Non SDK di crittografia AWS per C dispone di un metodo analogo, ma è possibile implementarne uno creandone uno personalizzato. ClientSupplier
Questo esempio mostra il codice per Node.js.
const discovery = true const clientProvider = excludeRegions(['us-east-1'], getKmsClient) const keyring = new KmsKeyringNode({ clientProvider, discovery, discoveryFilter: { accountIDs: [
111122223333
], partition: 'aws
' } })