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à.
Contesto di crittografia
Nota
Non è possibile specificare un contesto di crittografia in un'operazione crittografica con una chiave asimmetrica o una KMS chiave. HMAC KMS Gli algoritmi e gli algoritmi asimmetrici non supportano un contesto di crittografiaMAC.
Tutte le operazioni AWS KMS crittografiche con KMSchiavi di crittografia simmetriche accettano un contesto di crittografia, un insieme opzionale di coppie chiave-valore non segrete che possono contenere informazioni contestuali aggiuntive sui dati. È possibile inserire un contesto di crittografia nelle Encrypt
operazioni AWS KMS per migliorare l'autorizzazione e la verificabilità delle chiamate di decrittografia. AWS KMS API AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi (AAD) per supportare la crittografia autenticata. Il contesto di crittografia è associato crittograficamente al testo cifrato in modo che lo stesso contesto di crittografia sia necessario per decrittografare i dati.
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'CreateSnapshotoperazione Amazon Elastic Block Store EBS (Amazon), 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 AWS KMS keys tuo account. È 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
Ulteriori informazioni sul contesto di crittografia.
Regole 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 utilizzi un tipo diverso, ad esempio integer o float, AWS KMS lo 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 politiche o nelle IAM politiche chiave, non sarà possibile specificare il contesto di crittografia nelle chiavi delle condizioni delle politiche, ad esempio kms:EncryptionContext:context-keye kms:EncryptionContextKeys. Per maggiori informazioni sulle regole delineate nel documento delle policy delle chiavi, consulta la sezione Formato della policy della chiave. Per i dettagli sulle regole IAM dei documenti politici, consulta i requisiti relativi ai IAM nomi nella Guida IAM per l'utente.
Contesto di crittografia nelle policy
Il contesto di crittografia viene utilizzato principalmente per verificare l'integrità e l'autenticità. Ma è anche possibile utilizzare il contesto di crittografia per controllare l'accesso alla crittografia simmetrica nelle politiche e AWS KMS keys IAM nelle politiche chiave.
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 dichiarazione di politica chiave consente al RoleForExampleApp
ruolo di utilizzare la chiave nelle operazioni. KMS 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.
Contesto di crittografia nelle concessioni
Quando si crea una concessione, è possibile 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.
Registrazione del contesto di crittografia
AWS KMS utilizza AWS CloudTrail per registrare il contesto di crittografia in modo da poter determinare a quali KMS chiavi e dati è stato effettuato l'accesso. La voce di registro mostra esattamente quali KMS chiavi sono state utilizzate per crittografare o decrittografare dati specifici a cui fa riferimento il contesto di crittografia nella voce di registro.
Importante
Poiché il contesto di crittografia viene registrato, non deve contenere informazioni sensibili.
Archiviazione del contesto di crittografia
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.