Cifrado de datos para Amazon Aurora DSQL
Amazon Aurora DSQL cifra todos los datos en reposo del usuario. Para mejorar la seguridad, este cifrado utiliza AWS Key Management Service (AWS KMS). Esta funcionalidad ayuda a reducir la carga y la complejidad operativas que conlleva la protección de información confidencial. El cifrado en reposo le ayuda a:
-
Reducción de la carga operativa de proteger la información confidencial
-
Creación de aplicaciones sensibles a la seguridad que necesitan cumplimiento estricto de cifrado y requisitos normativos
-
Agregación de una capa adicional de protección de datos protegiendo siempre los datos en un clúster cifrado
-
Conformidad con las políticas de la organización, las normativas del sector o gubernamentales y los requisitos de conformidad
Con Aurora DSQL, puede crear aplicaciones sensibles a la seguridad que necesitan cumplimiento estricto de cifrado y requisitos normativos. En las siguientes secciones se explica cómo configurar el cifrado para las bases de datos de Aurora DSQL nuevas y existentes y cómo administrar las claves de cifrado.
Tipos de claves de KMS para Aurora DSQL
Aurora DSQL se integra con AWS KMS para administrar las claves de cifrado de los clústeres. Para obtener más información acerca de los tipos y estados de las claves, consulte los conceptos de AWS Key Management Service en la Guía para desarrolladores de AWS Key Management Service. Al crear un clúster nuevo, puede elegir entre los siguientes tipos de claves de KMS para cifrar el clúster:
- Clave propiedad de AWS
-
Tipo de cifrado predeterminado. Aurora DSQL es el propietario de la clave sin cargo adicional para usted. Amazon Aurora DSQL descifra de forma transparente los datos del clúster cuando accede a un clúster cifrado. No es necesario que cambie el código o las aplicaciones para utilizar o administrar clústeres cifrados y todas las consultas de Aurora DSQL funcionan con los datos cifrados.
- Clave administrada por el cliente
-
Puede crear, poseer y administrar la clave en la Cuenta de AWS. Tiene control total de la clave de KMS. Se aplican los cargos de AWS KMS.
El cifrado en reposo mediante la Clave propiedad de AWS está disponible sin cargo adicional. Sin embargo, se aplican cargos de AWS KMS para las claves administradas por el cliente. Para obtener más información, consulte la Página
Puede cambiar entre estos tipos de claves en cualquier momento. Para obtener más información sobre los tipos de claves, consulte Claves administradas por el cliente y Claves propiedad de AWS en la Guía para desarrolladores de AWS Key Management Service.
nota
El cifrado en reposo de Aurora DSQL está disponible en todas las regiones de AWS donde esté disponible Aurora DSQL.
Cifrado en reposo en Aurora DSQL
Amazon Aurora DSQL utiliza el estándar de cifrado avanzado de 256 bits (AES-256) para cifrar los datos en reposo. Este cifrado ayuda a proteger los datos del acceso no autorizado al almacenamiento subyacente. AWS KMS administra las claves de cifrado de los clústeres. Puede usar la opción Claves propiedad de AWS predeterminada, o elegir usar su propia AWS KMS Claves administradas por el cliente. Para obtener más información sobre cómo especificar y administrar las claves de los clústeres de Aurora DSQL, consulte Creación de un clúster de Aurora DSQL cifrado y Eliminación o actualización de una clave para el clúster de Aurora DSQL.
Claves propiedad de AWS
Aurora DSQL cifra todos los clústeres de forma predeterminada con Claves propiedad de AWS. Estas claves son de uso gratuito y se rotan anualmente para proteger los recursos de la cuenta. No necesita ver, administrar, usar ni auditar estas claves, por lo que no es necesario realizar ninguna acción para proteger los datos. Para obtener más información acerca de Claves propiedad de AWS, consulte Claves propiedad de AWS en la Guía para desarrolladores de AWS Key Management Service.
Claves administradas por el cliente
Cree, posea y administre las claves administradas por el cliente en la Cuenta de AWS. Tiene el control total sobre estas claves de KMS, incluidas sus políticas, el material de cifrado, las etiquetas y los alias. Para obtener más información acerca de cómo administrar los permisos, consulte Claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service.
Cuando especifica una clave administrada por el cliente para el cifrado en el nivel de clúster, Aurora DSQL cifra el clúster y todos sus datos regionales con esa clave. Para evitar la pérdida de datos y mantener el acceso al clúster, Aurora DSQL necesita acceder a la clave de cifrado. Si desactiva la clave administrada por el cliente, programa su eliminación o tiene una política que restringe el acceso al servicio, el estado de cifrado del clúster cambia a KMS_KEY_INACCESSIBLE
. Cuando Aurora DSQL no puede acceder a la clave, los usuarios no pueden conectarse al clúster, el estado de cifrado del clúster cambia a KMS_KEY_INACCESSIBLE
y el servicio pierde el acceso a los datos del clúster.
En el caso de los clústeres de varias regiones, los clientes pueden configurar la clave de cifrado de AWS KMS de cada región de forma independiente y cada clúster regional utiliza su propia clave de cifrado en el nivel de clúster. Si Aurora DSQL no puede acceder a la clave de cifrado de un par en un clúster de varias regiones, el estado de ese par pasa a ser KMS_KEY_INACCESSIBLE
y deja de estar disponible para las operaciones de lectura y escritura. Los demás pares continúan con sus operaciones normales.
nota
Si Aurora DSQL no puede acceder a su clave administrada por el cliente, el estado de cifrado del clúster cambia a KMS_KEY_INACCESSIBLE
. Tras restaurar el acceso de la clave, el servicio detectará automáticamente la restauración en 15 minutos. Para obtener más información, consulte clúster en espera.
Para los clústeres de varias regiones, si se pierde el acceso de la clave durante un periodo prolongado, el tiempo de restauración del clúster depende de la cantidad de datos que se hayan escrito mientras la clave no estaba accesible.
Uso de AWS KMS y claves de datos con Aurora DSQL
La característica de cifrado en reposo de Aurora DSQL utiliza una AWS KMS key y una jerarquía de claves de datos para proteger los datos del clúster.
Le recomendamos que planifique la estrategia de cifrado antes de implementar el clúster en Aurora DSQL. Si almacena datos confidenciales en Aurora DSQL, 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.
Temas
Uso de AWS KMS key con Aurora DSQL
El cifrado en reposo protege el clúster de Aurora DSQL con una AWS KMS key. De forma predeterminada, Aurora DSQL utiliza una Clave propiedad de AWS, una clave de cifrado de varios inquilinos que se crea y administra en una cuenta de servicio de Aurora DSQL. Sin embargo, puede cifrar los clústeres de Aurora DSQL con una clave administrada por el cliente en la Cuenta de AWS. Puede seleccionar una clave de KMS diferente para cada clúster, incluso si participa en una configuración de varias regiones.
Seleccione la clave de KMS para un clúster al crear o actualizar el clúster. Puede cambiar la clave de KMS de un clúster en cualquier momento, ya sea en la consola de Aurora DSQL o utilizando la operación UpdateCluster
. El proceso de cambio de claves no precisa tiempo de inactividad ni degradación del servicio.
importante
Aurora DSQL solo admite claves de KMS simétricas. No puede utilizar una clave de KMS asimétrica para cifrar los clústeres de Aurora DSQL.
Una clave administrada por el cliente proporciona los siguientes beneficios.
-
Puede crear y administrar la clave de KMS, incluida la configuración de políticas de claves y políticas de IAM para controlar el acceso a la clave de 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 del clúster de Aurora DSQL examinando las llamadas a la API de Aurora DSQL 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 generan cargos por cada llamada a la API y se aplican cuotas de AWS KMS a estas claves.
Uso de claves de clúster con Aurora DSQL
Aurora DSQL utiliza la AWS KMS key para el clúster para generar y cifrar una clave de datos única para el clúster, conocida como clave de clúster.
La clave del clúster se utiliza como clave de cifrado de claves. Aurora DSQL utiliza esta clave de clúster para proteger las claves de cifrado de datos que se utilizan para cifrar los datos del clúster. Aurora DSQL genera una clave de cifrado de datos única para cada estructura subyacente en un clúster, pero varios elementos del clúster pueden protegerse mediante la misma clave de cifrado de datos.
Para descifrar la clave del clúster, Aurora DSQL envía una solicitud a AWS KMS cuando se accede por primera vez a un clúster cifrado. Para mantener el clúster disponible, Aurora DSQL verifica periódicamente el acceso de descifrado a la clave de KMS, incluso cuando no se está accediendo de forma activa al clúster.
Aurora DSQL almacena y utiliza la clave de clúster 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 del clúster bajo demanda.
Si cambia la clave de KMS del clúster, Aurora DSQL vuelve a cifrar la clave de clúster existente con la nueva clave de KMS.
Almacenamiento en caché de la clave de clúster
Para evitar llamar a AWS KMS para cada operación de Aurora DSQL, Aurora DSQL almacena en la memoria caché las claves del clúster de texto no cifrado para cada intermediario. Si Aurora DSQL recibe una solicitud de la clave de clúster almacenada en caché tras 15 minutos de inactividad, envía una nueva solicitud a AWS KMS para descifrar la clave de clúster. Esta llamada capturará los cambios realizados en las políticas de acceso de la AWS KMS key, AWS KMS o AWS Identity and Access Management (IAM) desde la última solicitud para descifrar la clave del clúster.
Autorización del uso de la AWS KMS key para Aurora DSQL
Si utiliza una clave administrada por el cliente en la cuenta para proteger el clúster de Aurora DSQL, las políticas en esa clave deben conceder permiso a Aurora DSQL para utilizarla en su nombre.
Tiene control total sobre las políticas en una clave administrada por el cliente. Aurora DSQL no necesita autorización adicional para utilizar la Clave propiedad de AWS predeterminada para proteger los clústeres de Aurora DSQL de la Cuenta de AWS.
Política de claves para una clave administrada por el cliente
Cuando selecciona una clave administrada por el cliente para proteger un clúster de Aurora DSQL, Aurora DSQL necesita permiso para utilizar la AWS KMS key en nombre de la entidad principal que realiza la selección. Esa entidad principal, un usuario o rol, deben tener los permisos en la AWS KMS key que precisa Aurora DSQL. Puede proporcionar estos permisos en una política de claves o en una política de IAM.
Como mínimo, Aurora DSQL precisa los siguientes permisos en una clave administrada por el cliente:
-
kms:Encrypt
-
kms:Decrypt
-
kms:ReEncrypt*
(para kms:ReEncryptFrom y kms:ReEncryptTo) -
kms:GenerateDataKey
-
kms:DescribeKey
Por ejemplo, la política de claves de ejemplo siguiente proporciona solo los permisos necesarios. La política tiene las siguientes consecuencias:
-
Permite a Aurora DSQL utilizar la AWS KMS key en operaciones criptográficas, pero solo cuando actúa en nombre de las entidades principales de la cuenta que tienen permiso para usar Aurora DSQL. Si las entidades principales especificadas en la declaración de política no tienen permiso para utilizar Aurora DSQL, la llamada produce un error, incluso cuando proviene del servicio de Aurora DSQL.
-
La clave de condición
kms:ViaService
permite los permisos solo cuando la solicitud proviene de Aurora DSQL en nombre de las entidades principales mostradas en la declaración de política. Estas entidades principales no pueden llamar a estas operaciones directamente. -
Otorga a los administradores de AWS KMS key (usuarios que pueden asumir el rol
db-team
) acceso de solo lectura a AWS KMS key
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.
{ "Sid": "Enable dsql IAM User Permissions", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:dsql:ClusterId": "w4abucpbwuxx", "aws:SourceArn": "arn:aws:dsql:us-east-2:111122223333:cluster/w4abucpbwuxx" } } }, { "Sid": "Enable dsql IAM User Describe Permissions", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:dsql:us-east-2:111122223333:cluster/w4abucpbwuxx" } } }
Contexto de cifrado de Aurora DSQL
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.
Aurora DSQL utiliza el mismo contexto de cifrado en todas las operaciones criptográficas de AWS KMS. Si utiliza una clave administrada por el cliente para proteger el clúster de Aurora DSQL, puede utilizar el contexto de cifrado para identificar el uso de la AWS KMS key en los registros de auditoría y en los registros. También aparece en texto sin formato en registros, como aquellos en AWS CloudTrail.
El contexto de cifrado también se puede utilizar como condición para la autorización en políticas.
En sus solicitudes a AWS KMS, Aurora DSQL utiliza un contexto de cifrado con un par clave-valor:
"encryptionContext": { "aws:dsql:ClusterId": "w4abucpbwuxx" },
El par clave-valor identifica el clúster que Aurora DSQL está cifrando. La clave es aws:dsql:ClusterId
. El valor es el identificador del clúster.
Supervisión de la interacción de Aurora DSQL con AWS KMS
Si utiliza una clave administrada por el cliente para proteger los clústeres de Aurora DSQL, puede utilizar los registros de AWS CloudTrail para realizar un seguimiento de las solicitudes que Aurora DSQL envía a AWS KMS en su nombre.
Expanda las siguientes secciones para obtener información sobre cómo Aurora DSQL utiliza las operaciones de AWS KMS GenerateDataKey
y Decrypt
.
Cuando habilita el cifrado en reposo en un clúster, Aurora DSQL crea una clave de clúster única. Envía una solicitud de GenerateDataKey
a AWS KMS que especifica la AWS KMS key del clúster.
El evento que registra la operación GenerateDataKey
es similar al siguiente evento de ejemplo. El usuario es la cuenta del servicio de Aurora DSQL. Los parámetros incluyen el Nombre de recurso de Amazon (ARN) de la AWS KMS key, un especificador de claves que requiere una clave de 256 bits y el contexto de cifrado que identifica el clúster.
{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "invokedBy": "dsql.amazonaws.com" }, "eventTime": "2025-05-16T18:41:24Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "dsql.amazonaws.com", "userAgent": "dsql.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dsql:ClusterId": "w4abucpbwuxx" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:982127530226:key/8b60dd9f-2ff8-4b1f-8a9c-bf570cbfdb5e" }, "responseElements": null, "requestID": "2da2dc32-d3f4-4d6c-8a41-aff27cd9a733", "eventID": "426df0a6-ba56-3244-9337-438411f826f4", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:982127530226:key/8b60dd9f-2ff8-4b1f-8a9c-bf570cbfdb5e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "f88e0dd8-6057-4ce0-b77d-800448426d4e", "vpcEndpointId": "AWS Internal", "vpcEndpointAccountId": "vpce-1a2b3c4d5e6f1a2b3", "eventCategory": "Management" }
Cuando accede a un clúster de Aurora DSQL cifrado, Aurora DSQL necesita descifrar la clave del clúster de manera que pueda descifrar las claves que hay debajo en la jerarquía. A continuación, descifra los datos del clúster. Para descifrar la clave del clúster, Aurora DSQL envía una solicitud Decrypt
a AWS KMS que especifica la AWS KMS key del clúster.
El evento que registra la operación Decrypt
es similar al siguiente evento de ejemplo. El usuario es la entidad principal en la Cuenta de AWS que está accediendo al clúster. Los parámetros incluyen la clave del clúster cifrada (como blob de texto cifrado) y el contexto de cifrado que identifica el clúster. AWS KMS deriva el ID de la AWS KMS key del texto cifrado.
{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dsql.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "dsql.amazonaws.com", "userAgent": "dsql.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "aws:dsql:ClusterId": "w4abucpbwuxx" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "AWS Internal", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "d99f2dc5-b576-45b6-aa1d-3a3822edbeeb", "vpcEndpointId": "AWS Internal", "vpcEndpointAccountId": "vpce-1a2b3c4d5e6f1a2b3", "eventCategory": "Management" }
Creación de un clúster de Aurora DSQL cifrado
Todos los clústeres de Aurora DSQL se cifran en reposo. De forma predeterminada, los clústeres utilizan una Clave propiedad de AWS sin costo o puede especificar una clave de AWS KMS personalizada. Siga estos pasos para crear el clúster cifrado desde la AWS Management Console o desde la AWS CLI.
Eliminación o actualización de una clave para el clúster de Aurora DSQL
Puede utilizar la AWS Management Console o la AWS CLI para actualizar o eliminar las claves de cifrado de los clústeres existentes en Amazon Aurora DSQL. Si quita una clave sin sustituirla, Aurora DSQL utilizará la Clave propiedad de AWS predeterminada. Siga estos pasos para actualizar las claves de cifrado de un clúster existente desde la consola de Aurora DSQL o desde la AWS CLI.
nota
Si decide ser propietario y administrar su propia clave, asegúrese de establecer la política de claves de KMS adecuada. Para obtener más información y ejemplos, consulte Política de claves para una clave administrada por el cliente.
Consideraciones sobre el cifrado con Aurora DSQL
-
Aurora DSQL cifra todos los datos en reposo del clúster. No puede desactivar este cifrado ni cifrar solo algunos elementos de un clúster.
-
AWS Backup cifra las copias de seguridad y los clústeres restaurados a partir de estas copias de seguridad. Puede cifrar los datos de copia de seguridad en AWS Backup mediante la clave propiedad de AWS o una clave administrada por el cliente.
-
Los siguientes estados de protección de datos están habilitados para Aurora DSQL:
-
Datos en reposo: Aurora DSQL cifra todos los datos estáticos de los medios de almacenamiento persistentes
-
Datos en tránsito: Aurora DSQL cifra todas las comunicaciones mediante la seguridad de la capa de transporte (TLS) de forma predeterminada
-
-
Cuando realice la transición a una clave diferente, le recomendamos que mantenga la clave original habilitada hasta que se complete la transición. AWS necesita la clave original para descifrar los datos antes de cifrarlos con la nueva clave. El proceso finaliza cuando el
encryptionStatus
del clúster esENABLED
y usted ve elkmsKeyArn
de la nueva clave administrada por el cliente. -
Cuando desactiva la clave administrada por el cliente o revoca el acceso para que Aurora DSQL utilice su clave, el clúster pasará al estado
IDLE
. -
La API de AWS Management Console y de Amazon Aurora DSQL utilizan términos diferentes para los tipos de cifrado:
-
Consola de AWS: en la consola, verá
KMS
cuando use una clave administrada por el cliente yDEFAULT
cuando use una Clave propiedad de AWS. -
API: la API de Amazon Aurora DSQL utiliza
CUSTOMER_MANAGED_KMS_KEY
para las claves administradas por el cliente yAWS_OWNED_KMS_KEY
para Claves propiedad de AWS.
-
-
Si no especifica una clave de cifrado durante la creación del clúster, Aurora DSQL cifra automáticamente los datos mediante Clave propiedad de AWS.
-
Puede alternar entre una Clave propiedad de AWS y una clave administrada por el cliente en cualquier momento. Realice este cambio mediante la AWS Management Console, la AWS CLI o la API de Amazon Aurora DSQL.