Backup e ripristino dei certificati TDE su RDS per SQL Server - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Backup e ripristino dei certificati TDE su RDS per SQL Server

RDS per SQL Server fornisce stored procedure per il backup, il ripristino e il rilascio di certificati TDE. RDS per SQL Server fornisce inoltre una funzione per la visualizzazione dei certificati TDE utente ripristinati.

I certificati TDE utente vengono utilizzati per ripristinare i database su RDS per SQL Server on-premise e con TDE attivato. Questi certificati hanno il prefisso UserTDECertificate_. Dopo aver ripristinato i database e prima di renderli disponibili per l'uso, RDS modifica i database in cui TDE è attivato per utilizzare i certificati TDE generati da RDS. Questi certificati hanno il prefisso RDSTDECertificate.

I certificati TDE dell'utente rimangono nell'istanza database RDS per SQL Server, a meno che non vengano rilasciati utilizzando la stored procedure rds_drop_tde_certificate. Per ulteriori informazioni, consulta Ripristino di certificati TDE ripristinati.

Puoi utilizzare un certificato TDE utente per ripristinare altri database dall'istanza database di origine. I database da ripristinare devono utilizzare lo stesso certificato TDE e avere TDE attivato. Non è necessario importare (ripristinare) nuovamente lo stesso certificato.

Prerequisiti

Prima poter eseguire il backup o il ripristino dei certificati TDE su RDS per SQL Server, assicurati di eseguire le seguenti attività. Le prime tre sono descritte in Configurazione di backup e ripristino nativi.

  1. Crea bucket Amazon S3 per l'archiviazione di file di cui eseguire il backup e il ripristino.

    Si consiglia di utilizzare bucket separati per i backup del database e per i backup dei certificati TDE.

  2. Crea un ruolo IAM per il backup e il ripristino dei file.

    Il ruolo IAM deve essere sia un utente sia un amministratore per AWS KMS key.

    Oltre alle autorizzazioni richieste per il backup e il ripristino nativi di SQL Server, il ruolo IAM richiede anche le seguenti autorizzazioni:

    • s3:GetBucketAcl, s3:GetBucketLocation e s3:ListBucket sulla risorsa di bucket S3

    • s3:ListAllMyBuckets sulla risorsa *

  3. Aggiungi l'opzione SQLSERVER_BACKUP_RESTORE a un gruppo di opzioni sull'istanza database.

    Questa è in aggiunta all'opzione TRANSPARENT_DATA_ENCRYPTION (TDE).

  4. Assicurati di disporre di una chiave KMS di crittografia simmetrica. Sono disponibili le seguenti opzioni:

    • Se disponi di una chiave KMS esistente nel tuo account, puoi utilizzarla. Non è richiesta alcuna operazione aggiuntiva.

    • Se non disponi di una chiave KMS di crittografia simmetrica esistente nel tuo account, crea una chiave KMS seguendo le istruzioni in Creazione di chiavi nella Guida per gli sviluppatori di AWS Key Management Service .

  5. Abilita l'integrazione con Amazon S3 per trasferire file tra l'istanza database e Amazon S3.

    Per ulteriori informazioni sull'abilitazione dell'integrazione di Amazon S3, consulta Integrazione di un'istanza database Amazon RDS for SQL Server con Amazon S3.

Limitazioni

L'utilizzo di stored procedure per eseguire il backup e il ripristino di certificati TDE presenta le seguenti limitazioni:

  • Le opzioni SQLSERVER_BACKUP_RESTORE e TRANSPARENT_DATA_ENCRYPTION (TDE) devono essere entrambe aggiunte al gruppo di opzioni associato all'istanza database.

  • Il backup e ripristino del certificato TDE non sono supportati nelle istanze database Multi-AZ.

  • L'annullamento delle attività di backup e ripristino del certificato TDE non è supportata.

  • Non è possibile utilizzare un certificato TDE utente per la crittografia TDE di qualsiasi altro database nell'istanza database di RDS per SQL Server. Puoi utilizzarlo per ripristinare solo altri database dall'istanza database di origine in cui TDE è attivato e che utilizzano lo stesso certificato TDE.

  • Puoi rilasciare solo certificati TDE utente.

  • Il numero massimo di certificati TDE utente supportati su RDS è 10. Se il numero supera 10, rilascia i certificati TDE inutilizzati e riprova.

  • Il nome del certificato non può essere vuoto o nullo.

  • Durante il ripristino di un certificato, il nome del certificato non può includere la parola chiave RDSTDECERTIFICATE e deve iniziare con il prefisso UserTDECertificate_.

  • Il parametro @certificate_name può includere solo i seguenti caratteri: a-z, 0-9, @, $, # e carattere di sottolineatura (_).

  • L'estensione file per @certificate_file_s3_arn deve essere .cer (senza distinzione tra maiuscole e minuscole).

  • L'estensione file per @private_key_file_s3_arn deve essere .cer (senza distinzione tra maiuscole e minuscole).

  • I metadati S3 per il file della chiave privata devono includere il tag x-amz-meta-rds-tde-pwd. Per ulteriori informazioni, consulta Backup e ripristino dei TDE certificati per i database locali.

Backup di un certificato TDE

Per eseguire il backup dei certificati TDE, utilizza la stored procedure rds_backup_tde_certificate. Di seguito è riportata la sintassi utilizzata.

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];

I parametri seguenti sono obbligatori:

  • @certificate_name – Nome del certificato TDE di cui eseguire il backup.

  • @certificate_file_s3_arn – Nome della risorsa Amazon (ARN) di destinazione per il file di backup del certificato in Amazon S3.

  • @private_key_file_s3_arn – ARN di S3 di destinazione del file della chiave privata che protegge il certificato TDE.

  • @kms_password_key_arn – ARN della chiave KMS simmetrica utilizzata per crittografare la password della chiave privata.

Il parametro seguente è facoltativo:

  • @overwrite_s3_files – Indica se sovrascrivere il certificato esistente e i file di della chiave privata in S3:

    • 0 – Il file esistente non viene sovrascritto. Questo è il valore predefinito.

      L'impostazione di @overwrite_s3_files su 0 restituisce un errore se il file esiste già.

    • 1 – Il file esistente con il nome specificato viene sovrascritto, anche se non è un file di backup.

Esempio di backup di un certificato 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;

Ripristino di un certificato TDE

La stored procedure rds_restore_tde_certificate viene utilizzata per ripristinare (importare) certificati TDE utente. Di seguito è riportata la sintassi utilizzata.

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';

I parametri seguenti sono obbligatori:

  • @certificate_name – Nome del certificato TDE di cui eseguire il backup. Il nome deve iniziare con il prefisso UserTDECertificate_.

  • @certificate_file_s3_arn – L'ARN S3 del file di backup utilizzato per ripristinare il certificato TDE.

  • @private_key_file_s3_arn – L'ARN S3 del file di backup utilizzato per ripristinare il certificato TDE.

  • @kms_password_key_arn – L'ARN della chiave KMS simmetrica utilizzata per crittografare la password della chiave privata.

Esempio di ripristino di un certificato 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';

Ripristino di certificati TDE ripristinati

La funzione rds_fn_list_user_tde_certificates viene utilizzata per ripristinare (importare) certificati TDE utente. Di seguito è riportata la sintassi utilizzata.

SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();

L'output è simile a quello riportato di seguito. Non tutte le colonne sono mostrate qui.

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

Ripristino di certificati TDE ripristinati

Per eliminare i certificati TDE utente ripristinati (importati) che non si utilizzano, utilizzare ilrds_drop_tde_certificateprocedura archiviata. Di seguito è riportata la sintassi utilizzata.

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

Il parametro seguente è obbligatorio:

  • @certificate_name – Nome del certificato TDE da rilasciare.

Puoi rilasciare solo i certificati TDE ripristinati (importati). Non puoi rilasciare i certificati creati da RDS.

Esempio di rilascio di un certificato TDE
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';