Cifrado de recursos de Amazon RDS - Amazon Relational Database Service

Cifrado de recursos de Amazon RDS

Amazon RDS puede cifrar sus Amazon RDS instancias de base de datos. Los datos cifrados en reposo incluyen el almacenamiento subyacente de instancias de bases de datos, sus copias de seguridad automatizadas, sus réplicas de lectura y sus instantáneas.

En las instancias de bases de datos de Amazon RDS con cifrado se utiliza el algoritmo de cifrado AES-256 estándar del sector para cifrar los datos en el servidor que aloja instancias de bases de datos de Amazon RDS. Una vez cifrados los datos, Amazon RDS se encarga de la autenticación de acceso y del descifrado de los datos de forma transparente, con un impacto mínimo en el desempeño. No es necesario modificar las aplicaciones cliente de base de datos para utilizar el cifrado.

nota

Para los clústeres de instancias, los datos en tránsito entre el origen y las réplicas de lectura están cifrados, incluso al replicar entre regiones de AWS.

Información general del cifrado de los recursos de Amazon RDS

Las instancias de bases de datos cifradas de Amazon RDS proporcionan una capa adicional de protección de datos al proteger los datos del acceso no autorizado al almacenamiento subyacente. Puede utilizar el cifrado de Amazon RDS para aumentar la protección de datos de las aplicaciones implementadas en la nube y para cumplir con los requisitos de conformidad para el cifrado en reposo. Para una instancia de base de datos cifrada de Amazon RDS, todos los registros, copias de seguridad e instantáneas están cifrados. Para obtener más información sobre la disponibilidad y las limitaciones del cifrado, consulte Disponibilidad del cifrado de Amazon RDS y Limitaciones de las instancias de base de datos cifrados de Amazon RDS.

Amazon RDS usa una clave de AWS Key Management Service para cifrar estos recursos. AWS KMS combina hardware y software seguros y altamente disponibles para ofrecer un sistema de administración de claves escalado para la nube. Puede utilizar una Clave administrada de AWS, o bien puede o crear claves administradas por el cliente.

Cuando crea una instancia de base de datos cifrada, puede elegir una clave administrada por el cliente o la Clave administrada de AWS para Amazon RDS para cifrar la instancia de base de datos. Si no especifica el identificador de clave para una clave administrada por el cliente, Amazon RDS utiliza la Clave administrada de AWS para la nueva instancia de base de datos. Amazon RDS crea una Clave administrada de AWS para Amazon RDS para su cuenta de AWS. Su cuenta de AWS tiene una Clave administrada de AWS diferente para Amazon RDS para cada región de AWS.

Para administrar las claves administradas por el cliente que se usan para cifrar y descifrar los recursos de Amazon RDS, se utiliza AWS Key Management Service (AWS KMS).

Si utiliza AWS KMS, podrá crear claves administradas por el cliente y definir las políticas que controlan cómo se pueden utilizar las claves administradas por el cliente. AWS KMS es compatible con CloudTrail, lo que permite auditar la utilización de claves de KMS para comprobar que las claves administradas por el cliente se utilizan de forma adecuada. Puede utilizar las claves administradas por el cliente con Amazon Aurora y los servicios de AWS admitidos, como, por ejemplo, Amazon S3, Amazon EBS y Amazon Redshift. Para ver una lista de los servicios integrados con AWS KMS, consulte Integración con los servicios de AWS. Algunas consideraciones sobre el uso de las claves de KMS:

  • Una vez que se crea una instancia de base de datos cifrada, no se puede cambiar la clave de KMS que dicha instancia de base de datos utiliza. Por tanto, asegúrese de determinar los requisitos de su clave de KMS antes de crear la instancia de base de datos cifrada.

    Si debe cambiar la clave de cifrado de la instancia de base de datos, cree una instantánea manual de la instancia y habilite el cifrado mientras se copia la instantánea. Para obtener más información, consulte artículo de información de re:Post.

  • Si copia una instantánea cifrada, puede utilizar una clave de KMS para cifrar la instantánea de destino diferente de la que se utilizó para cifrar la instantánea de origen.

  • Las réplicas de lectura de una instancia cifrada de Amazon RDS deben cifrarse con la misma clave de KMS que la instancia de base de datos primaria cuando ambas están en la misma región de AWS.

  • Si la instancia de base de datos primaria y la réplica de lectura se encuentran en regiones de AWS distintas, debe cifrar la réplica de lectura con la clave de KMS de esa región de AWS.

  • No se puede compartir una instantánea que se haya cifrado con la Clave administrada de AWS de la cuenta de AWS que compartió la instantánea.

  • Amazon RDS también permite cifrar una base de datos Oracle o de SQL Server mediante el cifrado de datos transparente (TDE). Se puede utilizar el TDE con el cifrado RDS en reposo, aunque el uso simultáneo del TDE y el cifrado RDS en reposo podría afectar ligeramente al rendimiento de la base de datos. Debe administrar claves distintas para cada método de cifrado. Para obtener más información acerca de TDE, consulte Cifrado de datos transparente de Oracle o Compatibilidad con el Cifrado de datos transparente en SQL Server.

importante

Amazon RDS puede perder el acceso a la clave de KMS para una instancia de base de datos al deshabilitar la clave KMS. Si pierde el acceso a una clave de KMS, la instancia de base de datos cifrada entra en el estado inaccessible-encryption-credentials-recoverable. La instancia de base de datos permanece en este estado durante siete días, durante los cuales se detiene. Es posible que las llamadas a la API realizadas a la instancia de base de datos durante este tiempo no se realicen correctamente. Para recuperar la instancia de base de datos, habilite la clave de KMS y reinicie esta instancia de base de datos. Habilite la clave de KMS desde la AWS Management Console, la AWS CLI o la API de RDS. Reinicie la instancia de base de datos con el comando de la AWS CLI start-db-instance o la AWS Management Console.

El estado inaccessible-encryption-credentials-recoverable solo se aplica a instancias de base de datos que pueden detenerse. No puede recuperar instancias que no se pueden detener, como réplicas de lectura e instancias con réplicas de lectura. Para obtener más información, consulte Limitaciones de la detención de la instancia de base de datos.

Si la instancia de base de datos no se recupera en siete días, pasa al estado de terminal inaccessible-encryption-credentials. En este estado, la instancia de base de datos ya no se puede usar y solo puede restaurarla desde una copia de seguridad. Recomendamos que siempre habilite las copias de seguridad para las instancias de bases de datos cifradas con el fin de protegerse contra la pérdida de los datos cifrados de dichas bases de datos.

Durante la creación de una instancia de base de datos, Amazon RDS comprueba si la entidad principal que realiza la llamada tiene acceso a la clave KMS y genera una concesión a partir de la clave KMS que utiliza durante toda la vida útil de la instancia de base de datos. La revocación del acceso de la entidad principal que realiza la llamada a la clave KMS no afecta a una base de datos en ejecución. Cuando se utilizan claves KMS en situaciones de varias cuentas, como copiar una instantánea a otra cuenta, la clave KMS debe compartirse con la otra cuenta. Si crea una instancia de base de datos a partir de la instantánea sin especificar una clave KMS diferente, la nueva instancia utilizará la clave KMS de la cuenta de origen. La revocación del acceso a la clave después de crear la instancia de base de datos no afecta a la instancia. Sin embargo, la desactivación de la clave afecta a todas las instancias de base de datos cifradas con esa clave. Para evitarlo, especifique una clave diferente durante la operación de copia de la instantánea.

Para obtener más información acerca de claves de KMS, consulte AWS KMS keys en la Guía para desarrolladores de AWS Key Management Service y Administración de AWS KMS key.

Cifrar una instancia de base de datos

Para cifrar una instancia de base de datos nueva, elija Habilitar el cifrado en la consola de Amazon RDS. Para obtener información sobre la creación de una instancia de base de datos, consulte Creación de una instancia de base de datos de Amazon RDS.

Si utiliza el comando create-db-instance de la AWS CLI para crear una instancia de base de datos cifrada, establezca el parámetro --storage-encrypted. Si utiliza la operación CreateDBInstance de la API, establezca el parámetro StorageEncrypted en true.

Si utiliza el comando AWS CLI de la create-db-instance para crear una instancia de base de datos cifrada con una clave administrada por el cliente, establezca el parámetro --kms-key-id en cualquier identificador de clave para la clave de KMS. Si utiliza la operación CreateDBInstance de la API de Amazon RDS, establezca el parámetro KmsKeyId en cualquier identificador de clave para la clave de KMS. Para utilizar una clave administrada por el cliente en una cuenta de AWS diferente, especifique el ARN de la clave o el ARN del alias.

Determinar si el cifrado está activado para una instancia de base de datos

Puede utilizar la AWS Management Console, la AWS CLI o la API de RDS para determinar si el cifrado en reposo está activado para una instancia de base de datos.

Para determinar si el cifrado en reposo está activado para una instancia de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Bases de datos.

  3. Elija el nombre de la instancia de base de datos que desea verificar para ver los detalles.

  4. Elija la pestaña Configuración y verifique el valor Cifrado en Almacenamiento.

    Muestra Habilitado o No habilitado.

    Verificación del cifrado en reposo de una instancia de base de datos

Para determinar si el cifrado en reposo está activado para una instancia de base de datos mediante el AWS CLI, llame al comando describe-db-instances con la siguiente opción:

  • --db-instance-identifier: el nombre de la instancia de base de datos.

En el siguiente ejemplo se utiliza una consulta para devolver ya sea TRUE o FALSE en relación con el cifrado en reposo de la instancia de base de datos mydb.

ejemplo
aws rds describe-db-instances --db-instance-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text

Para determinar si el cifrado en reposo está activado para una instancia de base de datos mediante la API de Amazon RDS, llame a la operación DescribeDBInstances con el siguiente parámetro:

  • DBInstanceIdentifier: el nombre de la instancia de base de datos.

Disponibilidad del cifrado de Amazon RDS

Actualmente, el cifrado de Amazon RDS está disponible para todos los motores de bases de datos y tipos de almacenamiento, excepto para SQL Server Express Edition. SQL Server Express Edition admite el cifrado en las regiones AWS GovCloud (US).

El cifrado de Amazon RDS está disponible para la mayoría de las clases de instancias de bases de datos. En la tabla siguiente se indican las clases de instancia de base de datos que no admiten el cifrado de Amazon RDS:

Tipo de instancia Clase de instancia

Uso general (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

Optimizada para memoria (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

Ampliable (T2)

db.t2.micro

Cifrado en tránsito

Cifrado en la capa física

Todos los datos que fluyen en las Regiones de AWS a través de la red global de AWS se cifran automáticamente en la capa física antes de salir de las instalaciones seguras de AWS. Todo el tráfico entre las zonas de disponibiliad está cifrado. Las capas adicionales de cifrado, incluidas las que aparecen en esta sección, pueden proporcionar una protección adicional.

Cifrado proporcionado por el emparejamiento de Amazon VPC y el emparejamiento entre regiones de puerta de enlace de tránsito

Todo el tráfico entre regiones que utiliza la interconexión de Amazon VPC y puerta de enlace de tránsito se cifra de forma masiva automáticamente cuando sale de una región. De manera automática, se proporciona una capa adicional de cifrado en la capa física para todo el tráfico antes de dejar las instalaciones seguras de AWS.

Cifrado entre instancias

AWS proporciona conectividad privada y segura entre instancias de bases de datos de todo tipo. Además, en algunos tipos de instancia, se utilizan las capacidades de descarga del hardware Nitro System subyacente para cifrar de manera automática el tráfico en tránsito entre instancias. Este cifrado utiliza algoritmos de encriptación autenticada con datos asociados (AEAD), con cifrado de 256 bits. No hay impacto en el rendimiento de la red. Para admitir este cifrado adicional del tráfico en tránsito entre instancias, se deben cumplir los siguientes requisitos:

  • Las instancias utilizan los siguientes tipos de instancias:

    • De uso general: M6i, M6id, M6in, M6idn, M7g

    • Optimizada para memoria: R6i, R6id, R6in, R6idn, R7g, X2idn, X2iedn, X2iezn

  • Las instancias se encuentran en la misma Región de AWS.

  • Las instancias están en la misma VPC o VPC interconectadas, y el tráfico no pasa a través de un dispositivo o servicio de red virtual, como un equilibrador de carga o una puerta de enlace de tránsito.

Limitaciones de las instancias de base de datos cifrados de Amazon RDS

Existen las siguientes limitaciones para las instancias de Amazon RDS con cifrado de bases de datos:

  • Solo se puede cifrar una instancia de base de datos de Amazon RDS al crearla, no después de que se haya creado.

    Sin embargo, debido a que se puede cifrar una copia de una instantánea de base de datos sin cifrar, en la práctica es posible agregar el cifrado a una instancia de base de datos sin cifrar. Es decir, puede crear una instantánea de una instancia de base de datos y, a continuación, crear una copia cifrada de esa instantánea. A continuación, se puede restaurar una instancia de base de datos a partir de la instantánea cifrada y de este modo, se tiene una copia cifrada de la instancia de base de datos original. Para obtener más información, consulte Copia de una instantánea de base de datos para Amazon RDS.

  • No puede desactivar el cifrado en una instancia de bases de datos cifrada.

  • No puede crear una instantánea cifrada de una instancia de bases de datos sin cifrar.

  • Una instantánea de una instancia de bases de datos cifrada debe cifrarse utilizando la misma clave de KMS que la instancia de bases de datos.

  • No se puede tener una réplica de lectura cifrada de una instancia de base de datos sin cifrar ni una réplica de lectura sin cifrar de una instancia de base de datos cifrada.

  • Las réplicas de lectura cifradas deben cifrarse con la misma clave de KMS que la instancia de base de datos de origen cuando ambas están en la misma región de AWS.

  • No se puede restaurar una copia de seguridad ni una instantánea sin cifrar en una instancia de base de datos cifrada.

  • Para copiar una instantánea cifrada de una región de AWS en otra, debe especificar la clave de KMS de la región de AWS de destino. Esto se debe a que las claves de KMS son específicas de la región de AWS en la que se crean.

    La instantánea de origen permanece cifrada durante todo el proceso de copia. Amazon RDS utiliza el cifrado de sobre para proteger los datos durante el proceso de copia. Para obtener más información acerca del cifrado de sobre, consulte Cifrado de sobre en la guía para desarrolladores de AWS Key Management Service.

  • No se puede descifrar una instancia de bases de datos cifrada. Sin embargo, puede exportar datos de una instancia de bases de datos cifrada e importar datos a una instancia de bases de datos sin cifrar.