

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

# Configurazione dell'accesso a un bucket Amazon S3
<a name="postgresql-s3-export-access-bucket"></a>

Per esportare i dati in Amazon S3, concedi all'istanza del di database PostgreSQL l'autorizzazione per accedere al bucket Amazon S3 di destinazione dei file. 

A tale scopo, procedi come indicato di seguito.

**Per concedere a un'istanza database PostgreSQL l'accesso ad Amazon S3 tramite un ruolo IAM**

1. Creare una policy IAM 

   Questa policy fornisce le autorizzazioni bucket e di oggetto che consentono all’istanza del di database PostgreSQL di accedere a Amazon S3. 

   Come parte della creazione di questa policy, attenersi alla seguente procedura:

   1. Includere nella policy le seguenti operazioni obbligatorie per consentire il trasferimento dei file dall’istanza del del database PostgreSQL a un bucket Amazon S3: 
      + `s3:PutObject`
      + `s3:AbortMultipartUpload`

   1. Includere l'Amazon Resource Name (ARN) che identifica il bucket Amazon S3 e gli oggetti nel bucket. Il formato ARN per l'accesso a Amazon S3 è: `arn:aws:s3:::amzn-s3-demo-bucket/*`

   Per ulteriori informazioni sulla creazione di una policy IAM per Amazon RDS for PostgreSQL, consulta [Creazione e utilizzo di una policy IAM per l'accesso al database IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md). Consulta anche il [Tutorial: Creare e collegare la prima policy gestita dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html) nella *Guida per l'utente di IAM*.

   Il AWS CLI comando seguente crea una policy IAM denominata `rds-s3-export-policy` con queste opzioni. Concede l'accesso a un bucket denominato *amzn-s3-demo-bucket*. 
**avvertimento**  
Si consiglia di impostare il database all'interno di un VPC privato con policy di endpoint configurate per accedere a bucket specifici. Per ulteriori informazioni, consulta [Utilizzo delle policy dell'endpoint per Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3) nella Guida per l'utente di Amazon VPC.  
Si consiglia di non creare una policy con accesso a tutte le risorse. Questo accesso può rappresentare una minaccia per la sicurezza dei dati. Se si crea una policy che consente a `S3:PutObject` di accedere a tutte le risorse utilizzando `"Resource":"*"`, un utente con privilegi di esportazione può esportare i dati in tutti i bucket dell'account. Inoltre, l'utente può esportare i dati in *qualsiasi bucket pubblicamente scrivibile all'interno della regione AWS *. 

   Dopo aver creato la policy, annotarne l'Amazon Resource Name (ARN). Per la fase successiva, in cui si associa la policy a un ruolo IAM, è necessario l'ARN. 

   ```
   aws iam create-policy  --policy-name rds-s3-export-policy  --policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "s3export",
            "Action": [
              "s3:PutObject*",
              "s3:ListBucket",
              "s3:GetObject*",
              "s3:DeleteObject*",
              "s3:GetBucketLocation",
              "s3:AbortMultipartUpload"
            ],
            "Effect": "Allow",
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ] 
          }
        ] 
      }'
   ```

1. Creare un ruolo IAM. 

   In questo modo, Amazon RDS può assumere questo ruolo IAM per tuo conto, per accedere ai bucket Amazon 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*.

   Si consiglia di utilizzare le chiavi di contesto delle condizioni globali `[aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)` e `[aws: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). 

   Se si utilizzano entrambe le chiavi di contesto delle condizioni globali e il valore `aws:SourceArn` contiene l'ID account, il valore `aws:SourceAccount` e l’account nel valore `aws:SourceArn` devono utilizzare lo stesso ID account quando viene utilizzato nella stessa dichiarazione di 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, assicurarsi di utilizzare la chiave di contesto della condizione globale `aws:SourceArn` con l'ARN completo della risorsa. L'esempio seguente mostra come eseguire questa operazione utilizzando il AWS CLI comando per creare un ruolo denominato`rds-s3-export-role`.   
**Example**  

   Per Linux, macOS o Unix:

   ```
   aws iam create-role  \
       --role-name rds-s3-export-role  \
       --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                   "aws:SourceAccount": "111122223333",
                   "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname"
                   }
                }
          }
        ] 
      }'
   ```

   Per Windows:

   ```
   aws iam create-role  ^
       --role-name rds-s3-export-role  ^
       --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                   "aws:SourceAccount": "111122223333",
                   "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname"
                   }
                }
          }
        ] 
      }'
   ```

1. Collegare la policy IAM al ruolo IAM creato.

   Il AWS CLI comando seguente associa la policy creata in precedenza al ruolo denominato `rds-s3-export-role.` Replace `your-policy-arn` con l'ARN della policy annotato in un passaggio precedente. 

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

1. Aggiungere il ruolo IAM all'istanza database. A tale scopo, utilizzare Console di gestione AWS o AWS CLI, come descritto di seguito.

## Console
<a name="collapsible-section-1"></a>

**Per aggiungere un ruolo IAM all'istanza database PostgreSQL tramite la console**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Scegliere il nome dell'istanza database PostgreSQL per visualizzarne i dettagli.

1. Nella scheda **Connectivity & security (Connettività e sicurezza)**, nella sezione **Manage IAM roles (Gestisci ruoli IAM)**, selezionare il ruolo da aggiungere sotto **Add IAM roles to this instance (Aggiungi ruoli IAM a questa istanza)**. 

1. In **Feature (Caratteristica)**, scegliere **s3Export**.

1. Scegliere **Add role (Aggiungi ruolo)**.

## AWS CLI
<a name="collapsible-section-2"></a>

**Per aggiungere un ruolo IAM a un'istanza database PostgreSQL tramite CLI**
+ Utilizzare il seguente comando per aggiungere il ruolo all'istanza database PostgreSQL denominata `my-db-instance`. Sostituire *`your-role-arn`* con l'ARN del ruolo annotato in precedenza. Utilizzare `s3Export` come valore dell’opzione `--feature-name`.   
**Example**  

  Per Linux, macOS o Unix:

  ```
  aws rds add-role-to-db-instance \
     --db-instance-identifier my-db-instance \
     --feature-name s3Export \
     --role-arn your-role-arn   \
     --region your-region
  ```

  Per Windows:

  ```
  aws rds add-role-to-db-instance ^
     --db-instance-identifier my-db-instance ^
     --feature-name s3Export ^
     --role-arn your-role-arn ^
     --region your-region
  ```