Come posso ripristinare un file di backup crittografato con KMS su RDS per SQL Server da un ambiente on-premise?

Ultimo aggiornamento: 14/10/2022

Desidero ripristinare un file di backup crittografato di Servizio di gestione delle chiavi AWS (AWS KMS) da un ambiente on-premise a un'istanza Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server. Come posso farlo utilizzando la funzionalità di backup e ripristino nativa?

Breve descrizione

La crittografia AWS KMS crittografa in modo sicuro un file di backup di Microsoft SQL Server in RDS per SQL Server utilizzando una chiave AWS KMS. Puoi ripristinare il backup crittografato su un'altra istanza di RDS per SQL Server.

Risoluzione

Nota: prima di iniziare la seguente risoluzione, assicurati di disporre di quanto segue:

1.    Avvia la crittografia lato client sul backup nativo specificando il parametro della chiave AWS KMS (@kms_master_key_arn):

exec msdb.dbo.rds_backup_database @source_db_name='database-name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx1';

2.    Ripristina il backup crittografato di AWS KMS in un'altra istanza di RDS per SQL Server nella stessa regione e nello stesso account. A tale scopo, specifica la stessa chiave AWS KMS utilizzata per crittografare il backup nel seguente comando:

exec msdb.dbo.rds_restore_database @restore_db_name='database-name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx1';

Ripristino di un backup crittografato di AWS KMS in un'altra regione con lo stesso account

Se il backup crittografato di AWS KMS deve essere ripristinato in un'altra regione con lo stesso account, procedi come segue:

1.    Crea una chiave AWS KMS multiregionale. Per il tipo di chiave, assicurati di scegliere la chiave simmetrica.

2.    Crea le chiavi di replica per la regione di destinazione richiesta.

3.    Avvia un backup nativo crittografato specificando il parametro della chiave AWS KMS (@kms_master_key_arn) nella regione A:

exec msdb.dbo.rds_backup_database @source_db_name='database-name', 
@s3_arn_to_backup_to='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx2';

4.    Copia il file di backup nel bucket S3 nella stessa regione. Amazon RDS non supporta i bucket tra regioni.

5.    Ripristina il backup crittografato di AWS KMS nella regione B, specificando lo stesso ID chiave AWS KMS utilizzato per crittografare il backup.

Nota: la regione associata a @kms_master_key_arn cambia di conseguenza.

exec msdb.dbo.rds_restore_database ;@restore_db_name='database-name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-2:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx2';

Ripristina un backup crittografato di AWS KMS in un ambiente on-premise, tra account o tra regioni.

I tre scenari seguenti richiedono una soluzione alternativa per ripristinare il backup:

  • Il backup del database crittografato di AWS KMS deve essere ripristinato nella stessa regione ma con un account diverso (tra account). Amazon RDS non supporta la condivisione di chiavi AWS KMS tra account. Ciò significa che non è possibile crittografare un backup nell'account A con la chiave KMS K1 e ripristinare quindi il backup nell'account B utilizzando la stessa chiave.
  • Il backup del database crittografato di AWS KMS deve essere ripristinato in una regione diversa e in un account diverso (tra regioni e tra account). Amazon RDS non supporta la condivisione di chiavi AWS KMS tra account o bucket tra regioni.
  • Il backup del database crittografato di AWS KMS deve essere ripristinato in un ambiente on-premise. L'ambiente on-premise non conosce i dettagli della chiave AWS KMS perché questa è un'entità esterna. Pertanto, prima del ripristino dovrai decrittografare i file crittografati di AWS KMS.

Per una soluzione alternativa a queste limitazioni, consulta la sezione Esportazione da Amazon RDS per SQL Server in Crittografia e decrittografia lato client dei backup di Microsoft SQL Server da utilizzare con Amazon RDS.