

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
<a name="TDE.BackupRestoreRDS"></a>

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](#TDE.BackupRestoreRDS.Drop).

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. 

**Topics**
+ [Prerequisiti](#TDE.BackupRestoreRDS.Prereqs)
+ [Limitazioni](#TDE.Limitations)
+ [Backup di un certificato TDE](#TDE.BackupRestoreRDS.Backup)
+ [Ripristino di un certificato TDE](#TDE.BackupRestoreRDS.Restore)
+ [Ripristino di certificati TDE ripristinati](#TDE.BackupRestoreRDS.Show)
+ [Ripristino di certificati TDE ripristinati](#TDE.BackupRestoreRDS.Drop)

## Prerequisiti
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

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](SQLServer.Procedural.Importing.Native.Enabling.md).

1. Crea bucket Amazon S3 per uso generico o bucket di directory per archiviare 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.

1. 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.

   Quando si utilizzano i bucket di directory, non sono richieste autorizzazioni aggiuntive oltre a quelle richieste per i bucket di directory. [Creazione manuale di un ruolo IAM per backup e ripristino nativi](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)

   Quando si utilizzano risorse S3, il ruolo IAM richiede anche le seguenti autorizzazioni oltre alle autorizzazioni richieste per: [Creazione manuale di un ruolo IAM per backup e ripristino nativi](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
   + `s3:GetBucketAcl`, `s3:GetBucketLocation` e `s3:ListBucket` sulla risorsa di bucket S3

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

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

1. 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](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella *Guida per gli sviluppatori di AWS Key Management Service *.

1. 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](User.SQLServer.Options.S3-integration.md).

   Tieni presente che i bucket di directory non sono supportati per l'integrazione con S3. Questo passaggio è necessario solo per. [Backup e ripristino di certificati TDE per database on-premise](TDE.BackupRestoreOnPrem.md)

## Limitazioni
<a name="TDE.Limitations"></a>

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, @, \$1, \$1 e carattere di sottolineatura (\$1).
+ 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 di certificati TDE per database on-premise](TDE.BackupRestoreOnPrem.md).
+ RDS per SQL Server non supporta l’utilizzo di chiavi multi-account per il certificato TDE.

## Backup di un certificato TDE
<a name="TDE.BackupRestoreRDS.Backup"></a>

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.

**Example 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
<a name="TDE.BackupRestoreRDS.Restore"></a>

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.

**Example 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
<a name="TDE.BackupRestoreRDS.Show"></a>

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\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | 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
<a name="TDE.BackupRestoreRDS.Drop"></a>

Per eliminare i certificati TDE utente ripristinati (importati) che non si utilizzano, utilizzare il`rds_drop_tde_certificate`procedura 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.

**Example di rilascio di un certificato TDE**  

```
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';
```