Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Contexto de cifrado
nota
No puede especificar un contexto de cifrado en una operación criptográfica con una clave KMS asimétrica o una clave KMS HMAC. Los algoritmos asimétricos y los algoritmos MAC no son compatibles con un contexto de cifrado.
Todas las operaciones AWS KMS criptográficas con claves KMS de cifrado simétrico aceptan un contexto de cifrado, un conjunto opcional de pares clave-valor no secretos que pueden contener información contextual adicional sobre los datos. Puede insertar el contexto de cifrado en Encrypt
las operaciones AWS KMS para mejorar la autorización y la auditabilidad de las llamadas de descifrado de la API. AWS KMS AWS KMS utiliza el contexto de cifrado como datos autenticados adicionales (AAD) para respaldar el cifrado autenticado. El contexto de cifrado se vincula criptográficamente al texto cifrado, de tal forma que se requiera el mismo contexto de cifrado para descifrar los datos.
El contexto de cifrado no es secreto y no está cifrado. Aparece en texto no cifrado en los registros de AWS CloudTrail para que pueda utilizarlo para identificar y clasificar las operaciones criptográficas. El contexto de cifrado no debe incluir información confidencial. Le recomendamos que el contexto de cifrado describa los datos que se van a cifrar o descifrar. Por ejemplo, cuando cifre un archivo, puede usar parte de la ruta del archivo como contexto de cifrado.
"encryptionContext": { "department": "10103.0" }
Por ejemplo, al cifrar volúmenes e instantáneas creados con la operación Amazon Elastic Block Store (Amazon EBS) CreateSnapshot, Amazon EBS utiliza el ID del volumen como valor de contexto de cifrado.
"encryptionContext": { "aws:ebs:id": "
vol-abcde12345abc1234
" }
También puede usar el contexto de cifrado para refinar o limitar el acceso a su AWS KMS keys cuenta. Puede utilizar el contexto de cifrado como una restricción en concesiones y como una condición en declaraciones de política.
Para obtener información sobre cómo utilizar el contexto de cifrado para proteger la integridad de los datos cifrados, consulte la publicación Cómo proteger la integridad de sus datos cifrados mediante el uso AWS Key Management Service y EncryptionContext
Más información sobre el contexto de cifrado.
Reglas de contexto de cifrado
AWS KMS aplica las siguientes reglas para las claves y los valores del contexto de cifrado.
-
La clave y el valor de un par de contexto de cifrado deben ser cadenas literales simples. Si utiliza un tipo diferente, como un número entero o flotante, AWS KMS lo interpretará como una cadena.
-
Las claves y los valores de un contexto de cifrado pueden incluir caracteres Unicode. Si un contexto de cifrado incluye caracteres que no están permitidos en las políticas clave o en las políticas de IAM, no podrá especificar el contexto de cifrado en las claves de condición de la política, como kms:EncryptionContext:context-key y kms:EncryptionContextKeys. Para obtener más información sobre las reglas clave de los documentos de política de claves, consulte Formato de la política de claves. Para obtener más información sobre las reglas de documentos de políticas de IAM, consulte Requisitos de nombres de IAM en la Guía del usuario de IAM.
Contexto de cifrado de las políticas
El contexto de cifrado se utiliza principalmente para verificar la integridad y la autenticidad. Sin embargo, también puede utilizar el contexto de cifrado para controlar el acceso a AWS KMS keys de cifrado simétricas en las políticas de claves y las políticas de IAM.
Las claves EncryptionContextKeyscondicionales kmsEncryptionContext:: y kms: permiten (o deniegan) un permiso solo cuando la solicitud incluye claves de contexto de cifrado o pares clave-valor determinados.
Por ejemplo, la siguiente declaración de política de claves permite al rol RoleForExampleApp
utilizar la KMS en operaciones Decrypt
. Utiliza la clave de condición kms:EncryptionContext:context-key
para conceder este permiso solo cuando el contexto de cifrado de la solicitud incluye un par de contexto de cifrado AppName:ExampleApp
.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }
Para obtener más información sobre estas claves de condición de contexto de cifrado, consulte Claves de estado para AWS KMS.
Contexto de cifrado de las concesiones
Al crear una concesión, puede incluir restricciones de concesión que establezcan las condiciones para la concesión de permisos. AWS KMS admite dos restricciones de concesión EncryptionContextEquals
y EncryptionContextSubset
ambas implican el contexto de cifrado en una solicitud de una operación criptográfica. Al utilizar estas restricciones de concesión, los permisos de la concesión solo son efectivos cuando el contexto de cifrado de la solicitud de la operación criptográfica cumple los requisitos de las restricciones de concesión.
Por ejemplo, puede añadir una restricción de EncryptionContextEquals
concesión a una concesión que permita la GenerateDataKeyoperación. Con esta restricción, la concesión solo permite la operación cuando el contexto de cifrado de la solicitud coincide con mayúsculas y minúsculas con el contexto de cifrado de la restricción de concesión.
$
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 solicitud como la siguiente del principal beneficiario satisfaría la restricción de EncryptionContextEquals
.
aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test
$
Para obtener más detalles sobre las restricciones de concesiones y , consulte Uso de restricciones de concesiones. Para obtener información detallada sobre las concesiones, consulte Subvenciones en AWS KMS.
Registrar el contexto de cifrado
AWS KMS AWS CloudTrail se utiliza para registrar el contexto de cifrado para que pueda determinar a qué claves y datos del KMS se ha accedido. La entrada de registro muestra exactamente qué clave KMS se ha usado para cifrar o descifrar los datos específicos a los que hace referencia el contexto de cifrado en la entrada de registro.
importante
Como el contexto de cifrado se ha registrado, no debe contener información confidencial.
Almacenar el contexto de cifrado
Para simplificar el uso de cualquier contexto de cifrado al llamar a las operaciones Decrypt
o ReEncrypt
, puede almacenar el contexto de cifrado junto con los datos cifrados. Es recomendable que almacene solo la parte suficiente del contexto de cifrado para crear todo el contexto cuando sea necesario para el cifrado o el descifrado.
Por ejemplo, si el contexto de cifrado es la ruta completa a un archivo, almacene solo parte de esa ruta con el contenido del archivo cifrado. A continuación, cuando necesite todo el contexto de cifrado, reconstrúyalo a partir del fragmento almacenado. Si alguien intenta manipular el archivo (por ejemplo, cambiarlo de nombre o moverlo a otra ubicación), el valor de contexto de cifrado cambia y la solicitud de descifrado produce un error.