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.

Amazon RDS también permite cifrar una base de datos Oracle o de SQL Server mediante el cifrado de datos transparente (TDE). Es posible utilizar TDE con el cifrado en reposo, aunque el uso de TDE y el cifrado en reposo al mismo tiempo podría afectar ligeramente al desempeño 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.

Para una instancia de base de datos cifrada de Amazon RDS, todos los registros, copias de seguridad e instantáneas están cifrados. Amazon RDS utiliza una AWS KMS key para cifrar estos recursos. Para obtener más información acerca de las claves de KMS, consulte AWS KMS keys en la Guía para desarrolladores de AWS Key Management Service. 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.

Puede utilizar una Clave administrada por AWS, o bien puede o crear claves administradas por el cliente. Para administrar las claves administradas por el cliente que se utilizan para cifrar y descifrar los recursos de Amazon RDS, debe utilizar AWS Key Management Service (AWS KMS). AWS KMS combina recursos de hardware y software seguros que cuentan con una gran disponibilidad para ofrecer un sistema de administración de claves adaptado a la nube. 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.

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.

Cuando crea una instancia de base de datos cifrada, puede elegir una clave administrada por el cliente o la Clave administrada por 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 por AWS para la nueva instancia de base de datos. Amazon RDS crea una Clave administrada por AWS para Amazon RDS para su cuenta de AWS. Su cuenta de AWS tiene una Clave administrada por AWS diferente para Amazon RDS para cada región de AWS.

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 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.

importante

Amazon RDS puede perder el acceso a la clave de KMS para una instancia de base de datos. Por ejemplo, RDS pierde el acceso cuando se deshabilita la clave de KMS o cuando se revoca el acceso de RDS a una clave de KMS. En estos casos, la instancia de base de datos cifrada entra en estado inaccessible-encryption-credentials-recoverable. La instancia de base de datos permanece en este estado durante siete días. Cuando inicia la instancia de base de datos durante ese tiempo, verifica si la clave de KMS está activa y recupera la clave de base de datos si lo está. Reinicie la instancia de base de datos con el comando de la AWS CLI start-db-instance. Actualmente no puede iniciar una instancia de base de datos en este estado utilizando la AWS Management Console.

Si la instancia de base de datos no se recupera, pasa al estado de terminal inaccessible-encryption-credentials. En este caso, solo puede restaurar la instancia de base de datos 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.

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

Puede utilizar AWS Management Console, 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 Databases (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 Configuration (Configuración) y verifique el valor Encryption (Cifrado) en Storage (Almacenamiento).

    Muestra Enabled (Habilitado) o Not enabled (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-identifierEl 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:

  • DBInstanceIdentifierEl nombre de la instancia de base de datos.

Disponibilidad del cifrado de Amazon RDS

Actualmente, el cifrado de Amazon RDS; están disponibles para todos los motores de bases de datos y tipos de almacenamiento.

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

nota

El cifrado en reposo no está disponible para las instancias de bases de datos que ejecutan SQL Server Express Edition.

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.

  • No puede deshabilitar el cifrado en una instancia cifrado.

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

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

  • 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 cifrada. Sin embargo, puede exportar datos de una instancia cifrada e importar datos a una instancia sin cifrar.