Notas de uso del cifrado en reposo de DynamoDB - Amazon DynamoDB

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.

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 utilizar la clave gestionada por el Clave propiedad de AWS cliente o la clave gestionada por el cliente para cifrar los datos de la copia de seguridad. Clave administrada de AWS Para obtener más información, consulte Uso de la copia de seguridad y restauración bajo demanda 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 el AWS Management Console, el tipo de cifrado se utiliza KMS cuando se utiliza la clave gestionada por el cliente Clave administrada de AWS o la clave gestionada 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 se utiliza cuando KMS se utiliza la clave gestionada por Clave administrada de AWS 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 cambiar entre la clave gestionada por el Clave propiedad de AWS cliente y la clave gestionada por el cliente en cualquier momento. Clave administrada de AWS Puede usar la consola, AWS Command Line Interface (AWS CLI) o la API de Amazon DynamoDB para cambiar las 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 se cifran con un. Clave propiedad de AWS

  • Cuando hagas la transición a una nueva clave gestionada por el cliente, asegúrate de mantener la clave original habilitada 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 esté ACTIVADO y se muestre el KMS MasterKeyArn de la nueva clave gestionada 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 el que se creó cada copia de seguridad mediante la DescribeBackup API 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 función de cifrado en reposo de DynamoDB utiliza AWS KMS key una y una jerarquía de claves de datos para proteger los datos de la 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 mediante 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:

Utilice la Clave administrada de AWS si necesita alguna de las siguientes funciones:

Sin embargo, Clave propiedad de AWS es gratuita y su uso no tiene en cuenta las cuotas de recursos o solicitudes.AWS KMS Las claves administradas por el cliente Claves administradas por AWS están sujetas a un cargo por cada llamada a la API y se aplican AWS KMS cuotas a estas claves de 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.


              Cifrado de una tabla de DynamoDB con cifrado en reposo

Cuando accede por primera vez a una tabla cifrada, DynamoDB envía una solicitud AWS KMS a para utilizar la clave de KMS para descifrar la clave de la 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 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 tener que realizar todas las operaciones de DynamoDB, DynamoDB almacena en caché las claves de tabla de texto sin formato de cada persona que llama AWS KMS en la memoria. Si DynamoDB recibe una solicitud de la clave de tabla en caché después de cinco minutos de inactividad, envía una nueva solicitud AWS KMS a para descifrar la clave de tabla. Esta llamada capturará cualquier cambio realizado 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 la 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 Clave administrada de AWS de DynamoDB incluye su política clave y concede a los delegados los permisos de uso.

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, dado que lo administra AWS, no puede cambiar las políticas.

DynamoDB no necesita autorización adicional para usar el Clave propiedad de AWSvalor predeterminado para proteger las tablas de DynamoDB de su. Cuenta de AWS

Política clave para un 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 clave de Clave administrada de AWS da permiso a todos los usuarios de la cuenta Clave administrada de AWS para utilizarla en operaciones específicas. Sin embargo, el permiso solo se concede cuando DynamoDB realiza la solicitud en nombre del usuario. La ViaService condición de la política de claves no permite que ningún usuario utilice la, a Clave administrada de AWS menos que la solicitud se origine en el servicio DynamoDB.

Esta política clave, como las políticas de todas 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:

  • Permita que los usuarios de la cuenta utilicen DynamoDB en operaciones criptográficas cuando la solicitud provenga de DynamoDB en su nombre. Clave administrada de AWS 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 DynamoDB en Clave administrada de AWS 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:

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 kms: ViaService condition permite 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 que el permiso sea independiente de cualquier otro en Región de AWS particular para poder realizar llamadas entre regiones para admitir las 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 un ejemplo de política de claves, sustituya los principios del ejemplo por los principios reales de la suya. 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 de una clave de KMS de su cuenta, utilice la ListGrantsoperación. 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 Cuenta de AWS el ID, e incluye el permiso para retirar la concesión si ya no es necesaria.

Para crear las concesiones, DynamoDB debe tener permiso para llamar a CreateGrant en nombre del usuario que creó la tabla cifrada. Claves administradas por AWS En efecto, DynamoDB kms:CreateGrant obtiene el permiso de la política de claves, que permite a los usuarios de la cuenta CreateGrantllamar a 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. Al incluir un contexto de cifrado en una solicitud de cifrado de datos, vincula AWS KMS 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 AWS KMS todas las operaciones criptográficas. 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 plano en los registros, como AWS CloudTrailAmazon 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 gestionada por el cliente Clave administrada de AWS o a su cuenta y región.

En sus solicitudes AWS KMS, DynamoDB utiliza un contexto de cifrado con dos pares 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 gestionada por el cliente o una Clave administrada de AWSpara proteger las tablas de DynamoDB, puede AWS CloudTrail utilizar los registros para realizar un seguimiento de las solicitudes que DynamoDB envía en su nombre. AWS KMS

Las solicitudes GenerateDataKey, Decrypt y CreateGrant se explican en esta sección. Además, DynamoDB utiliza DescribeKeyuna operación para determinar si la clave de KMS que ha seleccionado existe en la cuenta y la región. También utiliza una RetireGrantoperación para eliminar una concesión al eliminar una tabla.

GenerateDataKey

Al habilitar el cifrado en reposo en una tabla, DynamoDB crea una clave de tabla única. Envía una GenerateDataKeysolicitud a la AWS KMS que se 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 de descifrado AWS KMS a la que se especifica la clave KMS de la tabla.

El evento que registra la operación Decrypt es similar al siguiente evento de ejemplo. El usuario principal que accede a la tabla es el Cuenta de AWS usuario principal. Los parámetros incluyen la clave de la tabla cifrada (como un bloque de texto cifrado) y el contexto de cifrado que identifica la tabla y la. Cuenta de AWS AWS KMS obtiene el ID de la clave KMS a partir 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 de la CreateGrantsolicitud 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" }