Notas de uso del cifrado en reposo de DynamoDB
Es importante tener en cuenta lo siguiente cuando use el cifrado en reposo en Amazon DynamoDB.
Todos los datos de la tabla están cifrados
El cifrado en reposo en el lado del servidor está habilitado para los datos de todas las tablas de DynamoDB y no se puede desactivar. No puede cifrar sólo un subconjunto de elementos de una tabla.
El cifrado en reposo solo cifra los datos mientras están estáticos (en reposo) en un medio de almacenamiento persistente. Si le preocupa la seguridad de los datos cuando están en tránsito o en uso, puede ser conveniente adoptar medidas adicionales:
-
Datos en tránsito: todos los datos de DynamoDB se cifran en tránsito. De forma predeterminada, las comunicaciones de entrada y salida de DynamoDB usan el protocolo HTTPS, que protege el tráfico de la red mediante el uso del cifrado de Capa de conexión segura (SSL)/Transport Layer Security (TLS).
-
Datos en uso: proteja lo datos antes de enviarlos a DynamoDB mediante el cifrado del lado del cliente. Para obtener más información, consulte Cifrado del lado del cliente y del lado del servidor en la Guía para desarrolladores del Cliente de encriptación de Amazon DynamoDB.
Puede usar transmisiones con tablas cifradas. Las transmisiones de DynamoDB siempre se cifran con una clave de cifrado de nivel de tabla. Para obtener más información, consulte Captura de datos de cambios para DynamoDB Streams.
Las copias de seguridad de DynamoDB se cifran y el cifrado también se habilita para la tabla que se restaura a partir de la copia de seguridad. Puede usar la Clave propiedad de AWS, la Clave administrada de AWS o la clave administrada por el cliente para cifrar los datos de la copia de seguridad. Para obtener más información, consulte Copia de seguridad y restauración para DynamoDB.
Los índices secundarios locales y globales se cifran usando la misma clave que la tabla base.
Tipos de cifrado
nota
Las claves administradas por el cliente no se admiten en la versión de 2017 de la tabla global. Si desea utilizar una clave administrada por el cliente en una tabla global de DynamoDB, debe actualizar la tabla a la versión de 2019 de la tabla global y, después, habilitarla.
En la AWS Management Console, el tipo de cifrado es KMS
cuando se usa la Clave administrada de AWS o la clave administrada por el cliente para cifrar los datos. El tipo de cifrado es DEFAULT
cuando se usa la Clave propiedad de AWS. En la API de Amazon DynamoDB, el tipo de cifrado es KMS
cuando se usa la Clave administrada de AWS o la clave administrada por el cliente. En caso de que no haya un tipo de cifrado, sus datos se cifran utilizando el formato de Clave propiedad de AWS. Puede alternar entre una Clave propiedad de AWS, una Clave administrada de AWS y una clave administrada por el cliente en cualquier momento. Puede utilizar la consola, la AWS Command Line Interface (AWS CLI) o la API de Amazon DynamoDB para alternar entre claves de cifrado.
Tenga en cuenta las siguientes limitaciones al utilizar claves administradas por el cliente:
-
No puede utilizar una clave administrada por el cliente con los clústeres de DynamoDB Accelerator (DAX). Para obtener más información, consulte Cifrado en reposo de DAX.
-
Puede utilizar una clave administrada por el cliente para cifrar tablas que utilizan transacciones. Sin embargo, para garantizar la durabilidad de la propagación de las transacciones, el servicio almacena temporalmente una copia de la solicitud de transacción y se cifra mediante una Clave propiedad de AWS. Los datos confirmados en sus tablas e los índices secundarios están siempre cifrados en reposo utilizando la clave administrada por el cliente.
-
Una clave administrada por el cliente se puede usar para cifrar tablas que utilizan Contributor Insights. Sin embargo, los datos que se transmiten a Amazon CloudWatch están cifrados con una Clave propiedad de AWS.
-
Cuando realice la transición a una nueva clave administrada por el cliente, asegúrese de mantener la clave original activada hasta que se complete el proceso. AWS seguirá necesitando la clave original para descifrar los datos antes de cifrarlos con la nueva clave. El proceso se completará cuando el estado de SSEDescription de la tabla sea ENABLED (HABILITADO) y se muestre el KMSMasterKeyArn de la nueva clave administrada por el cliente. A partir de este momento, la clave original se puede desactivar o programar para su eliminación.
-
Una vez que se muestra la nueva clave administrada por el cliente, la tabla y cualquier nueva copia de seguridad bajo demanda se cifran con la nueva clave.
-
Cualquier copia de seguridad bajo demanda existente permanece cifrada con la clave administrada por el cliente que se utilizó cuando se crearon esas copias de seguridad. Necesitarás esa misma clave para restaurar esas copias de seguridad. Puede identificar la clave del período en que se creó cada copia de seguridad mediante la API DescribeBackup para ver la SSEDescription de esa copia de seguridad.
-
Si desactiva su clave administrada por el cliente o la programa para que se elimine, todos los datos de DynamoDB Streams quedarán sujetos a una durabilidad de 24 horas. Todos los datos de actividad que no se hayan recuperado se podrán recortar cuando alcancen una antigüedad superior a 24 horas.
-
Si desactiva la clave administrada por el cliente o la programa para su eliminación, las eliminaciones de período de vida (TTL) continuarán durante 30 minutos. Estas eliminaciones de TTL seguirán emitiéndose a DynamoDB Streams y estarán sujetas al intervalo estándar de recorte/retención.
Para obtener más información, consulte Habilitar claves y Eliminar claves.
Uso de claves KMS y claves de datos
La característica de cifrado en reposo de DynamoDB utiliza una AWS KMS key y una jerarquía de claves de datos para proteger los datos de su tabla. DynamoDB utiliza la misma jerarquía de claves para proteger las secuencias de DynamoDB, las tablas globales y las copias de seguridad cuando se escriben en soportes duraderos.
Le recomendamos que planifique la estrategia de cifrado antes de implementar la tabla en DynamoDB. Si almacena datos confidenciales en DynamoDB, considere incluir el cifrado del cliente en el plan. De esta forma, puede cifrar los datos lo más cerca posible del origen y garantizar la protección durante todo el ciclo de vida. Para obtener más información, consulte la documentación de cliente de cifrado de DynamoDB.
- AWS KMS key
-
El cifrado en reposo protege las tablas de DynamoDB con una AWS KMS key. De forma predeterminada, DynamoDB utiliza una Clave propiedad de AWS, una clave de cifrado de varios inquilinos que se crea y administra en una cuenta de servicio de DynamoDB. Pero puede cifrar las tablas de DynamoDB bajo una clave administrada por el cliente para DynamoDB (
aws/dynamodb
) en la Cuenta de AWS. Puede seleccionar una clave KMS diferente para cada tabla. La clave KMS que seleccione para una tabla también se utiliza para cifrar sus índices secundarios locales y globales, las secuencias y las copias de seguridad.Al crear o actualizar la tabla, seleccione la clave KMS para una tabla. Puede cambiar la clave KMS de una tabla en cualquier momento, ya sea en la consola de DynamoDB o utilizando la operación UpdateTable. El proceso de cambio de teclas es perfecto y no precisa tiempo de inactividad ni degradación del servicio.
importante
DynamoDB solo admite claves KMS simétricas. No puede utilizar una clave KMS asimétrica para cifrar las tablas de DynamoDB.
Utilice una clave administrada por el cliente para obtener las siguientes características:
-
Puede crear y administrar la clave KMS, incluida la configuración de políticas de claves,políticas de IAM y concesiones para controlar el acceso a la clave KMS. Puede habilitar y deshabilitar la clave KMS, habilitar y deshabilitar la rotación de claves automática y eliminar la clave KMS cuando ya no esté en uso.
-
Puede utilizar una clave administrada por el cliente con material de claves importado o una clave administrada por el cliente en un almacén de claves personalizado que tenga y administre.
-
Puede auditar el cifrado y descifrado de la tabla de DynamoDB examinando las llamadas de la API de DynamoDB a AWS KMS en los registros de AWS CloudTrail.
Utilice la Clave administrada de AWS si necesita alguna de las siguientes características:
-
Puede ver la clave KMS y ver su política de claves. (La política de claves no se puede modificar).
-
Puede auditar el cifrado y descifrado de la tabla de DynamoDB examinando las llamadas de la API de DynamoDB a AWS KMS en los registros de AWS CloudTrail.
Sin embargo, la Clave propiedad de AWS es gratuita y su uso no se contabiliza en las cuotas de solicitudes o de recursos de AWS KMS. Las claves administradas por el cliente y las Claves administradas por AWS generan cargos
por cada llamada a la API y se aplican cuotas de AWS KMS a estas claves KMS. -
- Claves de tabla
-
DynamoDB utiliza la clave KMS de la tabla para generar y cifrar una clave de datos única para la tabla, denominada clave de tabla. La clave de tabla se mantiene durante toda la vida útil de la tabla de cifrado.
La clave de la tabla se utiliza como clave de cifrado de claves. DynamoDB utiliza esta clave de tabla para proteger las claves de cifrado de datos que se utilizan para cifrar los datos de la tabla. DynamoDB genera una clave de cifrado de datos única para cada estructura subyacente en una tabla, pero varios elementos de la tabla pueden protegerse mediante la misma clave de cifrado de datos.
La primera vez que obtiene acceso a una tabla cifrada, DynamoDB envía una solicitud a AWS KMS para utilizar la clave KMS para descifrar la clave de tabla. A continuación, utiliza la clave de tabla de texto sin cifrar para descifrar las claves de cifrado de datos y utiliza las claves de cifrado de datos de texto sin cifrar para descifrar los datos de la tabla.
DynamoDB almacena y utiliza la clave de la tabla y las claves de cifrado de datos fuera de AWS KMS. Protege todas las claves con cifrado Advanced Encryption Standard
(AES) y claves de cifrado de 256 bits. A continuación, almacena las claves cifradas con los datos cifrados para que estén disponibles para descifrar los datos de la tabla bajo demanda. Si cambia la clave de su tabla, DynamoDB genera una nueva clave de tabla. A continuación, utiliza la nueva clave de tabla para volver a cifrar las claves de cifrado de los datos.
- Almacenamiento en caché de las claves de tabla
-
Para evitar llamar a AWS KMS para cada operación de DynamoDB, DynamoDB almacena en la memoria caché las claves de tabla de texto sin cifrar para cada intermediario. Si DynamoDB recibe una solicitud de la clave de tabla almacenada en caché tras cinco minutos de inactividad, envía una nueva solicitud a AWS KMS para descifrar la clave de tabla. Esta llamada capturará los cambios realizados en las políticas de acceso de la clave KMS en AWS KMS o AWS Identity and Access Management (IAM) desde la última solicitud para descifrar la clave de tabla.
Autorizar el uso de su clave KMS
Si utiliza una clave administrada por el cliente o la Clave administrada de AWS en su cuenta para proteger su tabla de DynamoDB, las políticas en esa clave KMS deben conceder permiso a DynamoDB para utilizarla en su nombre. El contexto de autorización de la Clave administrada de AWS para DynamoDB incluye su política de claves y concede a ese delegado los permisos para utilizarla.
Tiene control total sobre las políticas y concesiones de una clave administrada por el cliente debido a que la Clave administrada de AWS está en su cuenta, puede ver sus políticas y concesiones. Sin embargo, como está administrada por AWS, no puede cambiar las políticas.
DynamoDB no necesita autorización adicional para utilizar la Clave propiedad de AWS predeterminada para proteger las tablas de DynamoDB de su cuenta de Cuenta de AWS.
Temas
Política de claves para una Clave administrada de AWS
Cuando DynamoDB utiliza la Clave administrada de AWS para DynamoDB (aws/dynamodb
) en operaciones criptográficas, lo hace en nombre del usuario que obtiene acceso al recurso de DynamoDB. La política de claves de Clave administrada de AWS concede permiso a todos los usuarios de la cuenta para utilizar la Clave administrada de AWS para las operaciones especificadas. Sin embargo, el permiso solo se concede cuando DynamoDB realiza la solicitud en nombre del usuario. La condición ViaService de la política de claves no permite que ningún usuario pueda utilizar la Clave administrada de AWS, a menos que la solicitud se origine con el servicio DynamoDB.
Esta política de claves, como las políticas de todas las Claves administradas por AWS, la establece AWS. No puede cambiarla, pero puede verla en cualquier momento. Para obtener más detalles, consulte Ver una política de clave.
Las declaraciones de política de la política de claves tienen el siguiente efecto:
-
Permite a los usuarios de la cuenta utilizar la Clave administrada de AWS para DynamoDB en operaciones criptográficas solo cuando la solicitud proviene de DynamoDB en su nombre. La política también permite a los usuarios crear concesiones para la clave KMS.
-
Permite que las identidades de IAM autorizadas en la cuenta vean las propiedades de la Clave administrada de AWS para DynamoDB y para revocar la concesión que permite a DynamoDB utilizar la clave KMS. DynamoDB usa concesiones para las operaciones de mantenimiento en curso.
-
Permite a DynamoDB realizar operaciones de solo lectura para buscar la Clave administrada de AWS para DynamoDB en su cuenta.
{ "Version" : "2012-10-17", "Id" : "auto-dynamodb-1", "Statement" : [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:CallerAccount" : "111122223333", "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" }, { "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly", "Effect" : "Allow", "Principal" : { "Service" : "dynamodb.amazonaws.com" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*" } ] }
Política de claves para una clave administrada por el cliente
Cuando selecciona una clave administrada por el cliente para proteger una tabla de DynamoDB, DynamoDB obtiene permiso para utilizar la clave KMS en nombre de la entidad principal que realiza la selección. Esa entidad principal, un usuario o rol, debe tener los permisos en la clave KMS que precisa DynamoDB. Puede proporcionar estos permisos en una política de claves, una política de IAM o una concesión.
Como mínimo, DynamoDB precisa los siguientes permisos en una clave administrada por el cliente:
-
kms:ReEncrypt* (para kms:ReEncryptFrom y kms:ReEncryptTo)
-
kms:GenerateDataKey* (para kms:GenerateDataKey y kms:GenerateDataKeyWithoutPlaintext)
Por ejemplo, la política de claves de ejemplo siguiente proporciona solo los permisos necesarios. La política tiene las siguientes consecuencias:
-
Permite a DynamoDB utilizar la clave KMS en operaciones criptográficas y crear concesiones, pero solo cuando actúa en nombre de las entidades principales de la cuenta que tienen permiso para usar DynamoDB. Si las entidades principales especificadas en la declaración de política no tienen permiso para utilizar DynamoDB, la llamada falla, incluso cuando proviene del servicio de DynamoDB.
-
La clave de condición kms:ViaService concede los permisos solo cuando la solicitud proviene de DynamoDB en nombre de las entidades principales enumeradas en la declaración de política. Estas entidades principales no pueden llamar a estas operaciones directamente. Tenga en cuenta que el valor
kms:ViaService
,dynamodb.*.amazonaws.com
, tiene un asterisco (*) en la posición Región. DynamoDB requiere el permiso para ser independiente de cualquier Región de AWS en particular para que pueda realizar llamadas entre regiones para admitir tablas globales de DynamoDB. -
Proporciona a los administradores de la clave KMS (usuarios que pueden asumir el rol de
db-team
) acceso de solo lectura a la clave KMS y permiso para revocar las concesiones, incluidas las concesiones que DynamoDB precisa para proteger la tabla.
Antes de utilizar una política de claves de ejemplo, sustituya las entidades principales de ejemplo por las entidades principales reales de su cuenta de Cuenta de AWS.
{ "Id": "key-policy-dynamodb", "Version":"2012-10-17", "Statement": [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect": "Allow", "Principal": {"AWS": "
arn:aws:iam::111122223333:user/db-lead
"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService" : "dynamodb.*.amazonaws.com" } } }, { "Sid": "Allow administrators to view the KMS key and revoke grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/db-team
" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" } ] }
Usar concesiones para autorizar a DynamoDB
Además de las políticas de claves, DynamoDB utiliza concesiones para establecer permisos en una clave administrada por el cliente o la Clave administrada de AWS para DynamoDB (aws/dynamodb
). Para ver las concesiones que tiene una clave KMS en su cuenta, utilice la operación ListGrants. DynamoDB no necesita concesiones ni permisos adicionales para utilizar la Clave propiedad de AWS para proteger su tabla.
DynamoDB utiliza los permisos de concesión cuando realiza el mantenimiento del sistema en segundo plano y en tareas de protección de datos continuas. También utiliza las concesiones para generar las claves de la tabla.
Cada concesión es específica de una tabla. Si la cuenta incluye varias tablas cifradas con la misma clave KMS, habrá una concesión de cada tipo para cada tabla. La concesión está limitada por el contexto de cifrado de DynamoDB, que incluye el nombre de la tabla y el ID de la cuenta de Cuenta de AWS e incluye permiso para retirar la concesión si ya no se necesita.
Para crear las concesiones, DynamoDB debe tener permiso para llamar a CreateGrant
en nombre del usuario que creó la tabla cifrada. Para Claves administradas por AWS, DynamoDB obtiene el permiso kms:CreateGrant
de la política de claves, que permite a los usuarios de la cuenta llamar a CreateGrant en la clave KMS solo cuando DynamoDB realiza la solicitud en nombre de un usuario autorizado.
La política de claves también puede permitir a la cuenta revocar la concesión en la clave KMS. No obstante, si revoca la concesión en una tabla cifrada activa, DynamoDB no podrá proteger y mantener la tabla.
Contexto de cifrado de DynamoDB
Un contexto de cifrado es un conjunto de pares de clave-valor que contienen datos no secretos arbitrarios. Cuando se incluye un contexto de cifrado en una solicitud para cifrar datos, AWS KMS vincula criptográficamente el contexto de cifrado a los datos cifrados. Para descifrar los datos, es necesario pasar el mismo contexto de cifrado.
DynamoDB utiliza el mismo contexto de cifrado en todas las operaciones criptográficas de AWS KMS. Si utiliza una clave administrada por el cliente o una Clave administrada de AWS para proteger la tabla de DynamoDB, puede utilizar el contexto de cifrado para identificar el uso de la clave KMS en los registros de auditoría. También aparece en texto no cifrado en los registros, como AWS CloudTrail y Amazon CloudWatch Logs.
El contexto de cifrado también se puede utilizar como condición para la autorización en políticas y concesiones. DynamoDB utiliza el contexto de cifrado para restringir las concesiones que permiten el acceso a la clave administrada por el cliente o a Clave administrada de AWS en su cuenta y región.
En su solicitudes a AWS KMS, DynamoDB utiliza un contexto de cifrado con dos parejas de clave-valor.
"encryptionContextSubset": { "aws:dynamodb:tableName": "Books" "aws:dynamodb:subscriberId": "111122223333" }
-
Tabla: el primer par de clave-valor identifica la tabla que está cifrando DynamoDB. La clave es
aws:dynamodb:tableName
. El valor es el nombre de la tabla."aws:dynamodb:tableName": "
<table-name>
"Por ejemplo:
"aws:dynamodb:tableName": "
Books
" -
Cuenta: el segundo par de clave-valor identifica la cuenta de Cuenta de AWS. La clave es
aws:dynamodb:subscriberId
. El valor es el ID de la cuenta."aws:dynamodb:subscriberId": "
<account-id>
"Por ejemplo:
"aws:dynamodb:subscriberId": "111122223333"
Supervisión de la interacción de DynamoDB con AWS KMS
Si utiliza una clave administrada por el cliente o una Clave administrada de AWS para proteger las tablas de DynamoDB, puede utilizar los registros de AWS CloudTrail para realizar un seguimiento de las solicitudes que DynamoDB envía a AWS KMS en su nombre.
Las solicitudes GenerateDataKey
, Decrypt
y CreateGrant
se explican en esta sección. Además, DynamoDB utiliza una operación DescribeKey para determinar si la clave KMS que ha seleccionado existe en la cuenta y región. También utiliza una operación RetireGrant para quitar una concesión cuando se elimina una tabla.
- GenerateDataKey
-
Al habilitar el cifrado en reposo en una tabla, DynamoDB crea una clave de tabla única. Envía una solicitud GenerateDataKey a AWS KMS que especifica la clave KMS de la tabla.
El evento que registra la operación
GenerateDataKey
es similar al siguiente evento de ejemplo. El usuario es la cuenta del servicio DynamoDB. Los parámetros incluyen el Nombre de recurso de Amazon (ARN) de la clave KMS, un especificador de clave que requiere una clave de 256 bits y el contexto de cifrado que identifica la tabla y la cuenta de Cuenta de AWS.{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:17Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" }, "keySpec": "AES_256", "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190", "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad" }
- Decrypt
-
Cuando accede a una tabla de DynamoDB cifrada, DynamoDB necesita descifrar la clave de la tabla de manera que pueda descifrar las claves que hay debajo en la jerarquía. A continuación, descifra los datos de la tabla. Para descifrar la clave de la tabla. DynamoDB envía una solicitud Decrypt a AWS KMS que especifica la clave KMS para la tabla.
El evento que registra la operación
Decrypt
es similar al siguiente evento de ejemplo. El usuario es la entidad principal en su cuenta de Cuenta de AWS que está accediendo a la tabla. Los parámetros incluyen la clave de la tabla cifrada (como blob de texto cifrado) y el contexto de cifrado que identifica la tabla y la cuenta de Cuenta de AWS. AWS KMS deriva el ID de la clave KMS del texto cifrado.{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T16:42:15Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDT3HGFQZX4RY6RU", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
- CreateGrant
-
Cuando utiliza una clave administrada por el cliente o una Clave administrada de AWS para proteger la tabla de DynamoDB, DynamoDB utiliza concesiones para permitir al servicio realizar la protección de datos continua y tareas de mantenimiento y durabilidad. Estas concesiones no son obligatorias en las Clave propiedad de AWS.
Las concesiones que crea DynamoDB son específicas de una tabla. El principal en la solicitud CreateGrant es el usuario que creó la tabla.
El evento que registra la operación
CreateGrant
es similar al siguiente evento de ejemplo. Los parámetros incluyen el nombre de recurso de Amazon (ARN) de la clave KMS para la tabla, la entidad principal beneficiaria, la entidad principal de retirada (el servicio de DynamoDB) y las operaciones que cubre la concesión. También incluye una restricción que requiere que toda operación de cifrado utilice el contexto de cifrado especificado.{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T00:12:02Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] }, "responseElements": { "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" }, "requestID": "2192b82a-111c-11e8-a528-f398979205d8", "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }