

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

# Prerequisiti per l'integrazione di RDS for SQL Server con S3
<a name="Appendix.SQLServer.Options.S3-integration.preparing"></a>

Prima di iniziare, trova o crea il bucket S3 che desideri utilizzare. Quindi, aggiungi le autorizzazioni in modo che l'istanza database RDS possa accedere al bucket S3. Per configurare questo accesso, crea una policy e un ruolo IAM.

## Console
<a name="Appendix.SQLServer.Options.S3-integration.preparing.console"></a>

**Per creare una policy IAM per accedere ad Amazon S3**

1. Nel riquadro di navigazione della [console di gestione IAM](https://console.aws.amazon.com/iam/home?#home), scegliere **Policies (Policy)**.

1. Creare una nuova policy e usare la scheda **Visual editor (Editor visivo)** per le seguenti fasi.

1. Per **Service (Servizio)**, immettere **S3** e scegliere il servizio **S3**.

1. Per **Actions (Operazioni)**, scegliere le seguenti opzioni per concedere l'accesso richiesto dall'istanza database:
   + `ListAllMyBuckets`— richiesto
   + `ListBucket`— richiesto
   + `GetBucketAcl`— richiesto
   + `GetBucketLocation`— richiesto
   + `GetObject` – obbligatorio per il download dei file da S3 a `D:\S3\`
   + `PutObject` – obbligatorio per il caricamento dei file da `D:\S3\` a S3
   + `ListMultipartUploadParts` – obbligatorio per il caricamento dei file da `D:\S3\` a S3
   + `AbortMultipartUpload` – obbligatorio per il caricamento dei file da `D:\S3\` a S3

1. Per **Resources (Risorse)**, le opzioni visualizzate dipendono dalle operazioni scelte nella fase precedente. Potrebbero essere visualizzate le opzioni per **bucket**, **object (oggetto)** o entrambi. Per ognuna di queste opzioni, aggiungere l'Amazon Resource Name (ARN) appropriato.

   Per **bucket**, aggiungere l'ARN per il bucket che si desidera utilizzare. Ad esempio, se il bucket è denominato *amzn-s3-demo-bucket*, impostare l'ARN su `arn:aws:s3:::amzn-s3-demo-bucket`.

   Per **object (oggetto)**, immettere l'ARN per il bucket e scegliere una delle opzioni seguenti:
   + Per concedere l'accesso a tutti i file nel bucket specificato, selezionare **Any (Qualsiasi)** per **Bucket name (Nome bucket)** e **Object name (Nome oggetto)**.
   + Per concedere l'accesso a file o cartelle specifici nel bucket, fornisci ARNs i bucket e gli oggetti specifici a cui desideri che SQL Server acceda. 

1. Seguire le istruzioni indicate nella console fino al termine della creazione della policy.

   Le precedenti sono indicazioni generali per la creazione di una policy. Per istruzioni più dettagliate sulla creazione delle policy IAM, consultare [Creazione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *Guida per l'utente di IAM.*

**Per creare un ruolo IAM che utilizza la policy IAM della procedura precedente**

1. Nel riquadro di navigazione della [console di gestione IAM](https://console.aws.amazon.com/iam/home?#home), scegliere **Roles (Ruoli)**.

1. Creare un nuovo ruolo IAM e scegliere le seguenti opzioni quando vengono visualizzate nella console:
   + **AWSservice**
   + **RDS**
   + **RDS – Add Role to Database (RDS – Aggiungi ruolo al database)**

   Scegliere **Next: Permissions (Successivo: Autorizzazioni)** nella parte inferiore dello schermo.

1. Per **Attach permissions policies (Collega policy di autorizzazioni)**, immettere il nome della policy IAM precedentemente creata. Scegliere quindi la policy dall'elenco.

1. Seguire le istruzioni indicate nella console fino al termine della creazione del ruolo.

   Le precedenti sono indicazioni generali per la configurazione di un ruolo. Per istruzioni più dettagliate sulla creazione dei ruoli, consultare [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) nella *Guida per l'utente di IAM.*

## AWS CLI
<a name="Appendix.SQLServer.Options.S3-integration.preparing.CLI"></a>

Per concedere ad Amazon RDS l'accesso a un bucket Amazon S3, utilizza la seguente procedura:

1. Creare una policy IAM che conceda ad Amazon RDS l'accesso a un bucket S3.

1. Creare un ruolo IAM che Amazon RDS può assumere per conto dell'utente per accedere ai bucket S3.

   Per ulteriori informazioni, consulta la pagina relativa alla [creazione di un ruolo per delegare le autorizzazioni a un utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) nella *Guida per l'utente IAM*.

1. Collegare la policy IAM al ruolo IAM creato.

**Per creare la policy IAM**

Includere le operazioni appropriate per garantire l'accesso richiesto dall'istanza database:
+ `ListAllMyBuckets`— obbligatorio
+ `ListBucket`— richiesto
+ `GetBucketAcl`— richiesto
+ `GetBucketLocation`— richiesto
+ `GetObject` – obbligatorio per il download dei file da S3 a `D:\S3\`
+ `PutObject` – obbligatorio per il caricamento dei file da `D:\S3\` a S3
+ `ListMultipartUploadParts` – obbligatorio per il caricamento dei file da `D:\S3\` a S3
+ `AbortMultipartUpload` – obbligatorio per il caricamento dei file da `D:\S3\` a S3

1. Il AWS CLI comando seguente crea una policy IAM denominata `rds-s3-integration-policy` con queste opzioni. Concede l'accesso a un bucket denominato *amzn-s3-demo-bucket*.  
**Example**  

   Per Linux, macOS o Unix:

   ```
   aws iam create-policy \
   	 --policy-name rds-s3-integration-policy \
   	 --policy-document '{
   	        "Version": "2012-10-17",		 	 	 
   	        "Statement": [
   	            {
   	                "Effect": "Allow",
   	                "Action": "s3:ListAllMyBuckets",
   	                "Resource": "*"
   	            },
   	            {
   	                "Effect": "Allow",
   	                "Action": [
   	                    "s3:ListBucket",
   	                    "s3:GetBucketAcl",
   	                    "s3:GetBucketLocation"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
   	            },
   	            {
   	                "Effect": "Allow",
   	                "Action": [
   	                    "s3:GetObject",
   	                    "s3:PutObject",
   	                    "s3:ListMultipartUploadParts",
   	                    "s3:AbortMultipartUpload"
   	                ],
   	                "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
   	            }
   	        ]
   	    }'
   ```

   Per Windows:

   Assicurarsi di cambiare i caratteri di fine riga con quelli supportati dall'interfaccia in uso (`^` al posto di `\`). Inoltre, in Windows, è necessario applicare a tutte le doppie virgolette il carattere di escape `\`. Per evitare l'uso del carattere di escape per le virgolette in JSON, è possibile salvarlo in un file e passarlo come parametro. 

   Per prima cosa creare il file `policy.json` con la seguente policy di autorizzazione:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:ListAllMyBuckets",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketACL",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:ListMultipartUploadParts",
                   "s3:AbortMultipartUpload"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*"
           }
       ]
   }
   ```

------

   Usare il comando seguente per creare la policy:

   ```
   aws iam create-policy ^
        --policy-name rds-s3-integration-policy ^
        --policy-document file://file_path/assume_role_policy.json
   ```

1. Dopo aver creato la policy, annotarne l'Amazon Resource Name (ARN). L'ARN sarà necessario in una fase successiva.

**Per creare il ruolo IAM**
+ Il AWS CLI comando seguente crea il ruolo `rds-s3-integration-role` IAM per questo scopo.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws iam create-role \
  	   --role-name rds-s3-integration-role \
  	   --assume-role-policy-document '{
  	     "Version": "2012-10-17",		 	 	 
  	     "Statement": [
  	       {
  	         "Effect": "Allow",
  	         "Principal": {
  	            "Service": "rds.amazonaws.com"
  	          },
  	         "Action": "sts:AssumeRole"
  	       }
  	     ]
  	   }'
  ```

  Per Windows:

  Assicurarsi di cambiare i caratteri di fine riga con quelli supportati dall'interfaccia in uso (`^` al posto di `\`). Inoltre, in Windows, è necessario applicare a tutte le doppie virgolette il carattere di escape `\`. Per evitare l'uso del carattere di escape per le virgolette in JSON, è possibile salvarlo in un file e passarlo come parametro. 

  Per prima cosa creare il file `assume_role_policy.json` con la seguente policy:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "rds.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------

  Usare il comando seguente per creare il ruolo IAM:

  ```
  aws iam create-role ^
       --role-name rds-s3-integration-role ^
       --assume-role-policy-document file://file_path/assume_role_policy.json
  ```  
**Example di utilizzare la chiave del contesto delle condizioni globale per creare il ruolo IAM**  

  Si consiglia di utilizzare le chiavi di contesto delle condizioni globali [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) nelle policy basate sulle risorse per limitare le autorizzazioni del servizio a una risorsa specifica. Questo è il modo più efficace per proteggersi dal [problema di deputy confused](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

  Puoi usare le chiavi di contesto delle condizioni globali e avere il valore `aws:SourceArn` che contiene l'ID dell'account. In questo caso, il valore `aws:SourceAccount` e l'account nel valore `aws:SourceArn` deve utilizzare lo stesso ID account quando viene utilizzato nella stessa istruzione della policy.
  + Utilizzare `aws:SourceArn` se si desidera un accesso cross-service per una singola risorsa.
  + Utilizzare `aws:SourceAccount` se si desidera consentire l'associazione di qualsiasi risorsa in tale account all'uso cross-service.

  Nella policy, assicurati di utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con l'Amazon Resource Name (ARN) completo delle risorse che accedono al ruolo. Per l'integrazione con S3, assicurati di includere l'istanza DB ARNs, come mostrato nell'esempio seguente.

  Per Linux, macOS o Unix:

  ```
  aws iam create-role \
  	   --role-name rds-s3-integration-role \
  	   --assume-role-policy-document '{
  	     "Version": "2012-10-17",		 	 	 
  	     "Statement": [
  	       {
  	         "Effect": "Allow",
  	         "Principal": {
  	            "Service": "rds.amazonaws.com"
  	          },
  	         "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                      }
                  }
  	       }
  	     ]
  	   }'
  ```

  Per Windows:

  Aggiungi la chiave di contesto delle condizioni globali a `assume_role_policy.json`.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "rds.amazonaws.com"
                  ]
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                      "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier"
                  }
              }
          }
      ]
  }
  ```

------

**Per allegare la policy IAM al ruolo IAM**
+ Il AWS CLI comando seguente collega la policy al ruolo denominato. `rds-s3-integration-role` Sostituire `your-policy-arn` con l'ARN della policy annotato nel passaggio precedente.  
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws iam attach-role-policy \
  	   --policy-arn your-policy-arn \
  	   --role-name rds-s3-integration-role
  ```

  Per Windows:

  ```
  aws iam attach-role-policy ^
  	   --policy-arn your-policy-arn ^
  	   --role-name rds-s3-integration-role
  ```