Contexto de cifrado - AWS Key Management Service

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

Todas las operaciones AWS KMS criptográficas con KMSclaves de cifrado simétricas 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 sus llamadas de descifrado. AWS KMS API 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 CreateSnapshotoperación Amazon Elastic Block Store (AmazonEBS), 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 en el blog sobre AWS seguridad.

Más información sobre el contexto de cifrado.

Reglas de contexto de cifrado

AWS KMS aplica las siguientes reglas para las claves y 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 o IAM políticas clave, no podrá especificar el contexto de cifrado en las claves de condición de la política, como kms:EncryptionContext:context-keyy 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 los documentos de IAM políticas, consulte los requisitos de IAM nombres en la Guía del IAM usuario.

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 al cifrado simétrico AWS KMS keys en las políticas y IAM políticas clave.

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 clave permite al RoleForExampleApp rol usar la KMS clave en Decrypt las operaciones. 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 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é KMS claves y datos se ha accedido. La entrada de registro muestra exactamente qué KMS claves se utilizaron para cifrar o descifrar 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.