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.
Temas
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.
-
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.
-
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
ys3:ListBucket
en el recurso de bucket de S3 -
s3:ListAllMyBuckets
en el recurso*
-
-
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
). -
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).
-
-
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
yTRANSPARENT_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 prefijoUserTDECertificate_
. -
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 prefijoUserTDECertificate_
. -
@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
';