

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

# Utilizzo dei segreti per accedere agli AWS Database Migration Service endpoint
Utilizzo dei segreti per accedere alle risorse

Infatti AWS DMS, un *segreto* è una chiave crittografata che è possibile utilizzare per rappresentare un set di credenziali utente per autenticare, tramite l'*autenticazione segreta*, la connessione al database per un endpoint di AWS DMS origine o di destinazione supportato. Per un endpoint Oracle che utilizza anche Oracle Automatic Storage Management (ASM), AWS DMS richiede un segreto aggiuntivo che rappresenti le credenziali utente per accedere a Oracle ASM.

È possibile creare il segreto o i segreti AWS DMS necessari per l'autenticazione segreta utilizzando un servizio per la creazione Gestione dei segreti AWS, l'archiviazione e il recupero in modo sicuro delle credenziali per accedere ad applicazioni, servizi e risorse IT nel cloud e in locale. È incluso il supporto per la rotazione periodica automatica del valore del segreto crittografato senza l'intervento dell'utente, che fornisce un ulteriore livello di sicurezza per le credenziali. L'attivazione della rotazione dei valori segreti garantisce Gestione dei segreti AWS inoltre che questa rotazione dei valori segreti avvenga senza alcun effetto sulla migrazione del database che si basa sul segreto. Per autenticare segretamente una connessione del database agli endpoint, crea un segreto e assegnane l'identità o l'ARN a `SecretsManagerSecretId`, da includere nelle impostazioni dell'endpoint. Per autenticare segretamente Oracle ASM come parte di un endpoint Oracle, crea un segreto e assegnane l'identità o l'ARN a `SecretsManagerOracleAsmSecretId`, da includere sempre nelle impostazioni dell'endpoint.

**Nota**  
Non puoi usare le credenziali master gestite da Amazon RDS Aurora. Queste credenziali non includono informazioni sull'host o sulla porta, che AWS DMS devono stabilire connessioni. Crea invece un utente e un segreto nuovi. Per informazioni sulla creazione di un utente e un segreto, consulta [Utilizzo di Console di gestione AWS per creare un ruolo segreto e di accesso segreto](#security_iam_secretsmanager.console) di seguito.

Per ulteriori informazioni su Gestione dei segreti AWS, consulta [What Is AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) nella *Guida Gestione dei segreti AWS per l'utente*.

AWS DMS supporta l'autenticazione segreta per i seguenti database locali o AWS gestiti sugli endpoint di origine e di destinazione supportati:
+ Amazon DocumentDB
+ IBM Db2 LUW
+ Microsoft SQL Server
+ MongoDB
+ MySQL
+ Oracle
+ PostgreSQL
+ Amazon Redshift
+ SAP ASE

Per la connessione a uno di questi database, puoi scegliere di specificare uno dei seguenti set di valori, ma non entrambi, come parte delle impostazioni dell'endpoint:
+ Valori in chiaro per autenticare la connessione al database utilizzando le impostazioni `UserName`, `Password`, `ServerName` e `Port`. Per un endpoint Oracle che utilizza anche Oracle ASM, includi valori in chiaro aggiuntivi per autenticare ASM utilizzando le impostazioni `AsmUserName`, `AsmPassword` e `AsmServerName`.
+ Autenticazione dei segreti utilizzando i valori per le impostazioni `SecretsManagerSecretId` e `SecretsManagerAccessRoleArn`. Per un endpoint Oracle che utilizza Oracle ASM, includi valori aggiuntivi per le impostazioni `SecretsManagerOracleAsmSecretId` e `SecretsManagerOracleAsmAccessRoleArn`. I valori dei segreti di queste impostazioni possono includere: 
  + `SecretsManagerSecretId`: il nome della risorsa Amazon (ARN) completo, l'ARN parziale o il nome descrittivo di un segreto che hai creato per l'accesso al database degli endpoint in Gestione dei segreti AWS.
  + `SecretsManagerAccessRoleArn`— L'ARN di un ruolo di accesso segreto che hai creato in IAM per fornire AWS DMS l'accesso a questo `SecretsManagerSecretId` segreto per tuo conto.
  + `SecretsManagerOracleAsmSecretId`: il nome della risorsa Amazon (ARN) completo, l'ARN parziale o il nome descrittivo di un segreto che hai creato per l'accesso a Oracle ASM in Gestione dei segreti AWS.
  + `SecretsManagerOracleAsmAccessRoleArn`: l'ARN di un ruolo di accesso al segreto che hai creato in IAM per fornire ad AWS DMS l'accesso al segreto `SecretsManagerOracleAsmSecretId` per tuo conto.
**Nota**  
Puoi anche utilizzare un singolo ruolo di accesso segreto per fornire AWS DMS l'accesso sia al `SecretsManagerSecretId` segreto che al `SecretsManagerOracleAsmSecretId` segreto. Se crei questo singolo ruolo di accesso per entrambi i segreti, assicurati di assegnare lo stesso ARN per il ruolo di accesso a entrambi `SecretsManagerAccessRoleArn` e `SecretsManagerOracleAsmAccessRoleArn`. Ad esempio, se il ruolo di accesso per entrambi i segreti ha il relativo ARN assegnato alla variabile `ARN2xsecrets`, puoi impostare le impostazioni dell'ARN come segue:  

  ```
  SecretsManagerAccessRoleArn = ARN2xsecrets;
  SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;
  ```

  Per ulteriori informazioni sulla creazione di questi valori, consulta [Utilizzo di Console di gestione AWS per creare un ruolo segreto e di accesso segreto](#security_iam_secretsmanager.console).

Dopo aver creato e specificato le impostazioni necessarie per l'endpoint con il ruolo di accesso al segreto e il segreto, aggiorna le autorizzazioni sugli account utente che eseguono la richiesta API `CreateEndpoint` o `ModifyEndpoint` con questi dettagli del segreto. Assicurati che queste autorizzazioni dell'account includano l'`IAM:GetRole`autorizzazione sul ruolo di accesso segreto e l'`SecretsManager:DescribeSecret`autorizzazione sul segreto. AWS DMS richiede queste autorizzazioni per convalidare sia il ruolo di accesso che il relativo segreto.

**Per fornire e verificare le autorizzazioni utente richieste**

1. Accedi a Console di gestione AWS e apri la AWS Identity and Access Management console all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Scegli **Utenti**, quindi seleziona l'**ID utente** utilizzato per effettuare le chiamate API `CreateEndpoint` e `ModifyEndpoint`.

1. Nella scheda **Autorizzazioni **scegli **\$1\$1 JSON**.

1. Assicurati che l'utente disponga delle autorizzazioni mostrate di seguito.

   ```
   {
   	"Statement": [{
   			"Effect": "Allow",
   			"Action": [
   				"iam:GetRole",
   				"iam:PassRole"
   			],
   			"Resource": "SECRET_ACCESS_ROLE_ARN"
   		},
   		{
   			"Effect": "Allow",
   			"Action": "secretsmanager:DescribeSecret",
   			"Resource": "SECRET_ARN"
   		}
   	]
   }
   ```

1. Se l'utente non dispone di tali autorizzazioni, aggiungile.

1. Se utilizzi un ruolo IAM per effettuare chiamate API DMS, ripeti i passaggi precedenti per il rispettivo ruolo.

1. Apri un terminale e usa il AWS CLI per verificare che le autorizzazioni siano state fornite correttamente assumendo il ruolo o l'utente usato sopra.

   1. Convalida l'autorizzazione dell'utente sull' SecretAccessRole utilizzo del comando IAM. `get-role`

      ```
      aws iam get-role --role-name ROLE_NAME
      ```

      Sostituisci *ROLE\$1NAME* con il nome di. `SecretsManagerAccessRole`

      Se il comando restituisce un messaggio di errore, assicurati che le autorizzazioni siano state specificate correttamente.

   1. Convalida l'autorizzazione dell'utente per il segreto utilizzando il comando Secrets Manager `describe-secret`.

      ```
      aws secretsmanager describe-secret --secret-id SECRET_NAME OR SECRET_ARN --region=REGION_NAME
      ```

      L'utente può essere il nome descrittivo, l'ARN parziale o l'ARN completo. Per ulteriori informazioni, consulta [describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html).

      Se il comando restituisce un messaggio di errore, assicurati che le autorizzazioni siano state specificate correttamente.

## Utilizzo di Console di gestione AWS per creare un ruolo segreto e di accesso segreto


È possibile utilizzare il per Console di gestione AWS creare un segreto per l'autenticazione degli endpoint e per creare la politica e il ruolo che consentano l'accesso AWS DMS al segreto per conto dell'utente.

**Per creare un segreto utilizzando il comando Console di gestione AWS that AWS DMS can use per autenticare un database per le connessioni agli endpoint di origine e di destinazione**

1. Accedi a Console di gestione AWS e apri la Gestione dei segreti AWS console all'indirizzo. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)

1. Scegli **Archivia un nuovo segreto**.

1. Nella pagina **Archivia un nuovo segreto** scegli **Altro tipo di segreti** in **Seleziona il tipo di segreto** quindi scegli **Testo in chiaro**.
**Nota**  
Questa è l'unica richiesta di inserimento delle credenziali con testo in chiaro per stabilire d'ora in avanti la connessione al database degli endpoint.

1. Nel campo **Testo in chiaro**: 
   + Per un segreto di cui assegni l'identità a `SecretsManagerSecretId`, immetti la seguente struttura JSON.

     ```
     {
       "username": db_username,
       "password": db_user_password,
       "port": db_port_number,
       "host": db_server_name
     }
     ```
**Nota**  
Questo è l'elenco minimo dei membri JSON necessari per autenticare il database degli endpoint. Puoi aggiungere tutte le impostazioni degli endpoint JSON che desideri come membri JSON usando solo lettere minuscole. Tuttavia, AWS DMS ignora gli eventuali membri JSON aggiuntivi per l'autenticazione dell'endpoint.

     Qui `db_username` è il nome dell'utente che accede al database, `db_user_password` è la password dell'utente del database, `db_port_number` è il numero di porta per accedere al database e `db_server_name` è il nome (indirizzo) del server di database sul Web, come nell'esempio seguente.

     ```
     {
       "username": "admin",
       "password": "some_password",
       "port": "8190",
       "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com"
     }
     ```
   + Per un segreto di cui assegni l'identità a `SecretsManagerOracleAsmSecretId`, immetti la seguente struttura JSON.

     ```
     {
       "asm_user": asm_username,
       "asm_password": asm_user_password,
       "asm_server": asm_server_name
     }
     ```
**Nota**  
Questo è l'elenco minimo dei membri JSON necessari per autenticare Oracle ASM per un endpoint Oracle. È anche l'elenco completo che è possibile specificare in base alle impostazioni degli endpoint Oracle ASM disponibili.

     Qui `asm_username` è il nome dell'utente che accede a Oracle ASM, `asm_user_password` è la password dell'utente Oracle ASM e `asm_server_name` è il nome (indirizzo) del server Oracle ASM sul Web, inclusa la porta, come nell'esempio seguente.

     ```
     { 
       "asm_user": "oracle_asm_user", 
       "asm_password": "oracle_asm_password",
       "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" 
     }
     ```

1. Seleziona una chiave di AWS KMS crittografia per crittografare il segreto. È possibile accettare la chiave di crittografia predefinita creata per il servizio da Gestione dei segreti AWS o selezionare una AWS KMS chiave creata dall'utente.

1. Specifica un nome per fare riferimento a questo segreto e una descrizione facoltativa. Questo è il nome descrittivo che utilizzi come valore per `SecretsManagerSecretId` o `SecretsManagerOracleAsmSecretId`.

1. Se desideri abilitare la rotazione automatica nel segreto, devi selezionare o creare una AWS Lambda funzione con l'autorizzazione a ruotare le credenziali del segreto come descritto. Tuttavia, prima di impostare la rotazione automatica per utilizzare la funzione Lambda, assicurati che le impostazioni di configurazione della funzione aggiungano al valore della variabile di ambiente `EXCLUDE_CHARACTERS` i seguenti quattro caratteri.

   ```
   ;.:+{}*&,%\
   ```

   AWS DMS non ammette questi caratteri nelle password utilizzate per le credenziali degli endpoint. La configurazione della funzione Lambda per escluderli impedisce ad Gestione dei segreti AWS di generare questi caratteri come parte dei valori della password ruotate. Dopo aver impostato la rotazione automatica per utilizzare la funzione Lambda, ruota Gestione dei segreti AWS immediatamente il segreto per convalidare la configurazione segreta.
**Nota**  
A seconda della configurazione del motore di database, è possibile che il database non recuperi le credenziali ruotate. In questo caso, è necessario riavviare manualmente l'attività per aggiornare le credenziali.

1. Rivedi e archivia il tuo segreto in. Gestione dei segreti AWSÈ quindi possibile cercare ogni segreto in base al relativo nome descrittivo in Gestione dei segreti AWS, quindi recuperare l'ARN segreto come valore `SecretsManagerOracleAsmSecretId` o, se appropriato, `SecretsManagerSecretId` per autenticare l'accesso alla connessione al database degli endpoint e a Oracle ASM (se utilizzato).

**Per creare la politica di accesso segreto e il ruolo su cui impostare `SecretsManagerAccessRoleArn` o`SecretsManagerOracleAsmAccessRoleArn`, che consente di accedere AWS DMS Gestione dei segreti AWS al segreto appropriato**

1. Accedi Console di gestione AWS e apri la console AWS Identity and Access Management (IAM) all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleziona **Policy**, quindi scegli **Crea policy**.

1. Scegli **JSON** e inserisci la seguente policy per consentire l'accesso e la decrittografia del tuo segreto.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "secretsmanager:GetSecretValue",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   Qui `secret_arn` è l'ARN del tuo segreto, che puoi ottenere da `SecretsManagerSecretId` o `SecretsManagerOracleAsmSecretId`, come appropriato, e `kms_key_arn` è l'ARN della chiave AWS KMS che stai usando per crittografare il segreto, come nell'esempio seguente.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**Nota**  
Se si utilizza la chiave di crittografia predefinita creata da Gestione dei segreti AWS, non è necessario specificare le AWS KMS autorizzazioni per`kms_key_arn`.  
Se desideri che la tua policy fornisca l'accesso a entrambi i segreti, specifica semplicemente un oggetto risorsa JSON aggiuntivo per l'altro. *secret\$1arn*  
Se il segreto si trova in un account diverso, il ruolo `SecretsManagerAccessRoleArn` necessita di una policy aggiuntiva per verificare il segreto tra gli account. Per questi casi d'uso, aggiungi l'azione `secretsmanager:DescribeSecret` alla policy. Per maggiori dettagli sulla configurazione di un segreto per più account, consulta [Autorizzazioni ai AWS segreti di Secrets Manager per gli utenti di un account diverso](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html).

1. Rivedi e crea la policy con un nome descrittivo e, facoltativamente, una descrizione.

1. Seleziona **Ruoli**, quindi scegli **Crea ruolo**.

1. Per il tipo di entità attendibile, scegli **Servizio AWS **.

1. Scegli **DMS** dall'elenco dei servizi come servizio attendibile, quindi seleziona **Successivo: Autorizzazioni**.

1. Cerca e collega la policy che hai creato nella fase 4, quindi procedi con l'aggiunta di eventuali tag ed esamina il ruolo. A questo punto, modifica le relazioni di trust relative al ruolo in modo da utilizzare il responsabile del servizio AWS DMS regionale come entità affidabile. Questo principale ha il seguente formato.

   ```
   dms.region-name.amazonaws.com
   ```

   Qui *`region-name`* è il nome della regione, ad esempio `us-east-1`. Segue quindi un responsabile del servizio AWS DMS regionale per questa regione.

   ```
   dms.us-east-1.amazonaws.com
   ```

1. Dopo aver modificato l'entità attendibile per il ruolo, crea il ruolo con un nome descrittivo e, facoltativamente, una descrizione. Ora puoi cercare il nuovo ruolo in base al suo nome descrittivo in IAM, quindi recuperare il ruolo ARN come valore `SecretsManagerAccessRoleArn` o `SecretsManagerOracleAsmAccessRoleArn` per autenticare la connessione al database degli endpoint.

**Per utilizzare Secrets Manager con un'istanza di replica in una sottorete privata**

1. Crea un endpoint VPC con Secrets Manager e annota il DNS per l'endpoint. Per ulteriori informazioni sulla creazione di un endpoint VPC con Secrets Manager, consulta [Connessione a Secrets Manager tramite un endpoint VPC](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html#vpc-endpoint) []()nella *Guida per l'utente di AWS Secrets Manager*.

1. Per le regole di ingresso del gruppo di sicurezza degli endpoint VPC, consenti il traffico HTTPS dall'indirizzo IP privato dell'istanza di replica o dai gruppi di sicurezza collegati alle istanze di replica.

1. Per le regole di uscita del gruppo di sicurezza dell'istanza di replica, consenti tutto il traffico per la destinazione `0.0.0.0/0`.

1. Imposta l'attributo aggiuntivo di connessione dell'endpoint `secretsManagerEndpointOverride=secretsManager endpoint DNS` per fornire il DNS dell'endpoint VPC di Secrets Manager, come illustrato nell'esempio seguente.

   ```
   secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com
   ```