Fazer backup e restaurar certificados TDE no RDS para SQL Server
O RDS para SQL Server fornece procedimentos armazenados para backup, restauração e eliminação de certificados TDE. O RDS para SQL Server também fornece uma função para visualizar certificados TDE de usuário restaurados.
Os certificados TDE do usuário são usados para restaurar bancos de dados para o RDS para SQL Server que estão on-premises e têm o TDE ativado. Esses certificados têm o prefixo UserTDECertificate_
. Depois de restaurar bancos de dados e antes de disponibilizá-los para uso, o RDS modifica os bancos de dados que têm o TDE ativado para usar certificados TDE gerados pelo RDS. Esses certificados têm o prefixo RDSTDECertificate
.
Certificados TDE do usuário permanecem na instância de banco de dados do RDS para SQL Server, a menos que você os descarte usando os procedimentos armazenados rds_drop_tde_certificate
. Para ter mais informações, consulte Descartar certificados TDE restaurados.
Você pode usar um certificado TDE de usuário para restaurar outros bancos de dados da instância de banco de dados de origem. Os bancos de dados a serem restaurados devem usar o mesmo certificado TDE e ter o TDE ativado. Você não precisa importar (restaurar) o mesmo certificado novamente.
Tópicos
Pré-requisitos
Para fazer backup ou restaurar certificados TDE no RDS para SQL Server, realize as tarefas a seguir. As três primeiras são descritos em Configurar o backup e a restauração nativos.
-
Crie buckets do Amazon S3 para armazenar arquivos para backup e restauração.
Recomendamos que você use buckets separados para backups de banco de dados e backups de certificados TDE.
-
Crie um perfil do IAM para fazer backup e restaurar arquivos.
O perfil do IAM deve ser um usuário e um administrador da AWS KMS key.
Além das permissões necessárias para backup e restauração nativos do SQL Server, o perfil do IAM também precisa as seguintes permissões:
-
s3:GetBucketACL
,s3:GetBucketLocation
es3:ListBucket
no recurso de bucket do S3 -
s3:ListAllMyBuckets
no recurso*
-
-
Adicionar a opção
SQLSERVER_BACKUP_RESTORE
a um grupo de opções em sua instância de banco de dados.Além da opção
TRANSPARENT_DATA_ENCRYPTION
(TDE
). -
Verifique se você tem uma chave do KMS de criptografia simétrica. Você tem as seguintes opções:
-
Se você tiver uma chave do KMS em sua conta, poderá usá-la. Nenhuma outra ação é necessária.
-
Se você não tiver uma chave do KMS de criptografia simétrica em sua conta, crie uma seguindo as instruções em Criar chaves, no Guia do desenvolvedor do AWS Key Management Service.
-
-
Habilite a integração com o Amazon S3 para transferir arquivos entre a instância de banco de dados e o Amazon S3.
Para ter informações sobre a integração com o Amazon S3, consulte Integrar uma instância de banco de dados do Amazon RDS for SQL Server ao Amazon S3.
Limitações
O uso de procedimentos armazenados para fazer backup e restaurar certificados TDE tem as seguintes limitações:
-
As duas opções
SQLSERVER_BACKUP_RESTORE
eTRANSPARENT_DATA_ENCRYPTION
(TDE
) devem ser adicionadas ao grupo de opções associado à sua instância de banco de dados. -
O backup e a restauração de certificados TDE não são compatíveis com instâncias de banco de dados multi-AZ.
-
O cancelamento de tarefas de backup e restauração de certificados TDE não é compatível.
-
Não é possível usar um certificado TDE de usuário para criptografia TDE de nenhum outro banco de dados em sua instância de banco de dados do RDS para SQL Server. Você pode usá-lo para restaurar somente outros bancos de dados da instância de banco de dados de origem que tem o TDE ativado e que usam o mesmo certificado TDE.
-
Você pode descartar apenas certificados TDE do usuário.
-
O número máximo de certificados TDE do usuário compatível com o RDS é dez. Se o número exceder dez, descarte os certificados TDE não utilizados e tente novamente.
-
O nome do certificado não pode estar em branco nem ser nulo.
-
Ao restaurar um certificado, o nome dele não pode incluir a palavra-chave
RDSTDECERTIFICATE
e deve iniciar com o prefixoUserTDECertificate_
. -
O parâmetro
@certificate_name
pode incluir apenas os seguintes caracteres: a-z, 0-9, @, $, # e sublinhado (_). -
A extensão do arquivo
@certificate_file_s3_arn
deve ser .cer (não diferencia maiúsculas de minúsculas). -
A extensão do arquivo para
@private_key_file_s3_arn
deve ser .pvk (não diferencia maiúsculas de minúsculas). -
Os metadados do S3 do arquivo de chave privada devem incluir a tag
x-amz-meta-rds-tde-pwd
. Para ter mais informações, consulte Fazer backup e restaurar certificados TDE para bancos de dados on-premises.
Fazer backup de um certificado TDE
Para fazer backup de certificados TDE, use o procedimento armazenado rds_backup_tde_certificate
. Ele tem a sintaxe a seguir.
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
];
Os seguintes parâmetros são obrigatórios:
-
@certificate_name
: o nome do certificado TDE do qual fazer backup. -
@certificate_file_s3_arn
: o nome do recurso da Amazon (ARN) de destino do arquivo de backup do certificado no Amazon S3. -
@private_key_file_s3_arn
: o ARN do S3 de destino do arquivo de chave privada que protege o certificado TDE. -
@kms_password_key_arn
: o ARN da chave do KMS simétrica usada para criptografar a senha da chave privada.
O parâmetro a seguir é opcional:
-
@overwrite_s3_files
: indica se os arquivos de chave privada e certificados existentes devem ser substituídos no S3:-
0
: não substitui os arquivos existentes. Esse valor é o padrão.Definir
@overwrite_s3_files
como 0 retornará um erro se já existir um arquivo. -
1
– substitui um arquivo existente que tenha o nome especificado, ainda que ele não seja um arquivo de backup.
-
exemplo Fazer backup de um 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
;
Restaurar um certificado TDE
Use o procedimento armazenado rds_restore_tde_certificate
para restaurar (importar) certificados TDE do usuário. Ele tem a sintaxe a seguir.
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
';
Os seguintes parâmetros são obrigatórios:
-
@certificate_name
: o nome do certificado TDE a ser restaurado. O nome deve iniciar com o prefixoUserTDECertificate_
. -
@certificate_file_s3_arn
: o ARN do S3 do arquivo de backup usado para restaurar o certificado TDE. -
@private_key_file_s3_arn
: o ARN do S3 do arquivo de backup da chave privada do certificado TDE a ser restaurado. -
@kms_password_key_arn
: o ARN da chave do KMS simétrica usada para criptografar a senha da chave privada.
exemplo Restaurar um 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
';
Visualizar certificados TDE restaurados
Use a função rds_fn_list_user_tde_certificates
para visualizar certificados TDE do usuário restaurados (importados). Ele tem a sintaxe a seguir.
SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();
A saída será semelhante à seguinte. Nem todas as colunas são exibidas aqui.
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 |
Descartar certificados TDE restaurados
Para descartar certificados TDE do usuário restaurados (importados) que você não está usando, utilize o procedimento armazenado rds_drop_tde_certificate
. Ele tem a sintaxe a seguir.
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_
certificate_name
';
O seguinte parâmetro é obrigatório:
-
@certificate_name
: o nome do certificado TDE a ser descartado.
Você só pode descartar certificados TDE restaurados (importados). Você não pode descartar certificados criados pelo RDS.
exemplo Descartar um certificado TDE
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_
myTDEcertificate
';