Copia de seguridad y restauración de certificados TDE en RDS para SQL Server - Amazon Relational Database Service

Copia de seguridad y restauración de certificados TDE en RDS para SQL Server

RDS para SQL Server proporciona procedimientos almacenados para realizar copias de seguridad de los certificados TDE, restaurarlos y eliminarlos. RDS para SQL Server también proporciona una función para ver los certificados TDE de usuario restaurados.

Los certificados TDE de usuario se utilizan para restaurar las bases de datos en RDS para SQL Server que están en las instalaciones y tienen TDE activado. Estos certificados tienen el prefijo UserTDECertificate_. Después de restaurar las bases de datos, y antes de hacer que estén disponibles para usarlas, RDS modifica las bases de datos que tienen TDE activado a fin de utilizar los certificados TDE generados por RDS. Estos certificados tienen el prefijo RDSTDECertificate.

Los certificados TDE de usuario permanecen en la instancia de base de datos de RDS para SQL Server, a menos que los elimine mediante el procedimiento almacenado rds_drop_tde_certificate. Para obtener más información, consulte Eliminación de certificados TDE restaurados.

Puede utilizar un certificado TDE de usuario para restaurar otras bases de datos desde la instancia de base de datos de origen. Las bases de datos que se van a restaurar deben utilizar el mismo certificado TDE y tener TDE activado. No tiene que volver a importar (restaurar) el mismo certificado.

Requisitos previos

Para poder hacer una copia de seguridad de los certificados TDE o restaurarlos en RDS para SQL Server, asegúrese de realizar las siguientes tareas. Las tres primeras se describen en Configuración de la copia de seguridad y la restauración nativas.

  1. Cree buckets de Amazon S3 a fin de almacenar archivos para copia de seguridad y restauración.

    Le recomendamos que utilice buckets distintos para las copias de seguridad de la base de datos y para las copias de seguridad de los certificados TDE.

  2. Cree un rol de IAM para hacer copias de seguridad de los archivos y restaurarlos.

    El rol de IAM debe ser tanto un usuario como un administrador para la AWS KMS key.

    Además de los permisos necesarios para la copia de seguridad y restauración nativas de SQL Server, el rol de IAM también requiere los siguientes permisos:

    • s3:GetBucketACL, s3:GetBucketLocation y s3:ListBucket en el recurso de bucket de S3

    • s3:ListAllMyBuckets en el recurso *

  3. Agregue la opción SQLSERVER_BACKUP_RESTORE a un grupo de opciones en su instancia de base de datos.

    Esto se agrega a la opción TRANSPARENT_DATA_ENCRYPTION (TDE).

  4. Asegúrese de que tiene una clave de KMS de cifrado simétrica. Dispone de las opciones siguientes:

    • Si ya dispone de una clave de KMS en la cuenta, puede utilizarla. No hay que hacer nada más.

    • Si no tiene una clave de cifrado KMS simétrica existente en su cuenta, cree una clave KMS mediante las instrucciones de Creating keys (Crear claves) en la AWS Key Management ServiceDeveloper Guide (Guía para desarrolladores).

  5. Habilite la integración de Amazon S3 para transferir archivos entre la instancia de base de datos y Amazon S3.

    Para obtener información sobre la habilitación de la integración de Amazon S3, consulte Integración de una instancia de base de datos de Amazon RDS for SQL Server con Amazon S3.

Limitaciones

El uso de procedimientos almacenados para hacer copias de seguridad de certificados TDE y restaurarlos tiene las siguientes limitaciones:

  • Las opciones SQLSERVER_BACKUP_RESTORE y TRANSPARENT_DATA_ENCRYPTION (TDE) deben agregarse al grupo de opciones que haya asociado a su instancia de base de datos.

  • Las copias de seguridad y la restauración de los certificados TDE no son compatibles con las instancias de base de datos Multi-AZ.

  • No se admite la cancelación de tareas de copia de seguridad y restauración de certificados TDE.

  • No puede utilizar un certificado TDE de usuario para el cifrado TDE de otra base de datos en su instancia de base de datos RDS para SQL Server. Puede utilizarlo para restaurar solo otras bases de datos de la instancia de base de datos de origen que tengan TDE activado y que utilicen el mismo certificado TDE.

  • Solo puede eliminar certificados TDE de usuario.

  • El número máximo de certificados TDE de usuario admitidos en RDS es 10. Si el número es superior a diez, elimine los certificados TDE no utilizados y vuelva a intentarlo.

  • El nombre del certificado no puede estar vacío ni ser nulo.

  • Al restaurar un certificado, su nombre no puede incluir la palabra clave RDSTDECERTIFICATE y debe comenzar por el prefijo UserTDECertificate_.

  • El parámetro @certificate_name solo puede incluir los siguientes caracteres: a-z, 0-9, @, $, # y guion bajo (_).

  • La extensión del archivo para @certificate_file_s3_arn debe ser .cer (no se distingue entre mayúsculas y minúsculas).

  • La extensión del archivo para @private_key_file_s3_arn debe ser .pvk (no se distingue entre mayúsculas y minúsculas).

  • Los metadatos S3 del archivo de clave privada deben incluir la etiqueta x-amz-meta-rds-tde-pwd. Para obtener más información, consulte Copia de seguridad y restauración de certificados TDE para bases de datos en las instalaciones.

Copia de seguridad de un certificado TDE

Para hacer copias de seguridad de los certificados TDE, utilice el procedimiento almacenado rds_backup_tde_certificate. Tiene la siguiente sintaxis.

EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp', @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer', @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk', @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id', [@overwrite_s3_files=0|1];

Se requieren los siguientes parámetros:

  • @certificate_name: nombre del certificado TDE del que se hará una copia de seguridad.

  • @certificate_file_s3_arn: nombre de recurso de Amazon (ARN) de destino para el archivo de copia de seguridad de certificados en Amazon S3.

  • @private_key_file_s3_arn: ARN de S3 de destino del archivo de clave privada que protege el certificado TDE.

  • @kms_password_key_arn: ARN de la clave de KMS simétrica utilizada para cifrar la contraseña de clave privada.

El siguiente parámetro es opcional:

  • @overwrite_s3_files: indica si se deben sobrescribir los archivos de certificado y de clave privada existentes en S3:

    • 0: no se sobrescriben los archivos existentes. Este valor es el valor predeterminado.

      Al establecer @overwrite_s3_files en 0, se devuelve un error si ya existe un archivo.

    • 1: se sobrescribe un archivo existente que tenga el nombre especificado, aunque no sea un archivo de copia de seguridad.

ejemplo de copia de seguridad de un certificado TDE
EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='RDSTDECertificate20211115T185333', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE', @overwrite_s3_files=1;

Restauración de un certificado TDE

Use el procedimiento almacenado rds_restore_tde_certificate para restaurar (importar) certificados TDE de usuario. Tiene la siguiente sintaxis.

EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_certificate_name', @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer', @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk', @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';

Se requieren los siguientes parámetros:

  • @certificate_name: nombre del certificado TDE que se va a restaurar. El nombre debe comenzar por el prefijo UserTDECertificate_.

  • @certificate_file_s3_arn: ARN de S3 del archivo de copia de seguridad que se usa para restaurar el certificado TDE.

  • @private_key_file_s3_arn: ARN de S3 del archivo de copia de seguridad de clave privada del certificado TDE que se va a restaurar.

  • @kms_password_key_arn: ARN de la clave de KMS simétrica utilizada para cifrar la contraseña de clave privada.

ejemplo de restauración de un certificado TDE
EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';

Visualización de certificados TDE

Use la función rds_fn_list_user_tde_certificates para ver los certificados TDE de usuario restaurados (importados). Tiene la siguiente sintaxis.

SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();

La salida se parece a la siguiente. Aquí no se muestran todas las columnas.

name certificate_id principal_id pvt_key_encryption_type_desc issuer_name cert_serial_number thumbprint subject start_date expiry_date pvt_key_last_backup_date
UserTDECertificate_tde_cert 343 1 ENCRYPTED_BY_MASTER_KEY AnyCompany Shipping 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af 0x6BB218B34110388680B FE1BA2D86C695096485B5 AnyCompany Shipping 2022-04-05 19:49:45.0000000 2023-04-05 19:49:45.0000000 NULL

Eliminación de certificados TDE restaurados

Para eliminar los certificados TDE de usuario restaurados (importados) que no esté utilizando, utilice el procedimiento almacenado rds_drop_tde_certificate. Tiene la siguiente sintaxis.

EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';

El siguiente parámetro es obligatorio:

  • @certificate_name: el nombre del certificado TDE que se va a eliminar.

Solo puede eliminar los certificados TDE restaurados (importados). No se pueden eliminar los certificados creados por RDS.

ejemplo de eliminación de un certificado TDE
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';