Configurazione dell'accesso a un bucket Simple Storage Service (Amazon S3) - 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à.

Configurazione dell'accesso a un bucket Simple Storage Service (Amazon S3)

Per esportare i dati in Amazon S3, consenti all'istanza del Postgre SQL DB l'autorizzazione ad accedere al bucket Amazon S3 in cui devono essere inseriti i file.

A tale scopo, procedi come indicato di seguito.

Per consentire a un'istanza del Postgree SQL DB di accedere ad Amazon S3 tramite un ruolo IAM
  1. Crea una policy. IAM

    Questa policy fornisce le autorizzazioni per bucket e oggetti che consentono all'istanza del Postgre SQL DB di accedere ad Amazon S3.

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

    1. Includi nella policy le seguenti azioni richieste per consentire il trasferimento di file dall'istanza del Postgre SQL DB a un bucket Amazon S3:

      • s3:PutObject

      • s3:AbortMultipartUpload

    2. Includi l'Amazon Resource Name (ARN) che identifica il bucket Amazon S3 e gli oggetti in esso contenuti. Il ARN formato per accedere ad Amazon S3 è: arn:aws:s3:::amzn-s3-demo-bucket/*

    Per ulteriori informazioni sulla creazione di una IAM policy per , consulta. Creazione e utilizzo di una policy IAM per l'accesso al database IAM Vedi anche Tutorial: Crea e allega la tua prima politica gestita dai clienti nella Guida per l'utente. IAM

    I seguenti AWS CLI il comando crea una IAM politica denominata rds-s3-export-policy con queste opzioni. Garantisce l'accesso a un bucket denominato amzn-s3-demo-bucket.

    avvertimento

    Ti consigliamo di configurare il tuo database all'interno di un ambiente privato VPC con policy di endpoint configurate per l'accesso a bucket specifici. Per ulteriori informazioni, consulta Using endpoint policies for Amazon S3 nella VPC Amazon User Guide.

    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 scrivibile pubblicamente all'interno del AWS Regione.

    Dopo aver creato la policy, annota l'Amazon Resource Name (ARN) della policy. È necessario eseguire ARN un passaggio successivo quando si associa la policy a un IAM ruolo.

    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/*" ] } ] }'
  2. Crea un IAM ruolo.

    Lo fai in modo che Amazon possa assumere IAM questo ruolo per tuo conto per accedere ai tuoi bucket Amazon S3. Per ulteriori informazioni, consulta Creazione di un ruolo per delegare le autorizzazioni a un utente nella Guida per l'utente. IAM IAM

    Si consiglia di utilizzare le chiavi di contesto delle condizioni globali aws:SourceArn e aws: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.

    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, assicurati di utilizzare la chiave di contesto della condizione aws:SourceArn globale con l'intera ARN risorsa. L'esempio seguente mostra come eseguire questa operazione utilizzando AWS CLI comando per creare un ruolo denominatords-s3-export-role.

    Esempio

    In Linux, macOS, oppure 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" } } } ] }'

    In 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" } } } ] }'
  3. Allega la IAM politica che hai creato al IAM ruolo che hai creato.

    I seguenti AWS CLI comando associa la politica creata in precedenza al ruolo denominato rds-s3-export-role. Sostituisci your-policy-arn con la politica ARN che hai annotato in un passaggio precedente.

    aws iam attach-role-policy --policy-arn your-policy-arn --role-name rds-s3-export-role
  4. Aggiungere il IAM ruolo all'istanza del DB. A tale scopo, è possibile utilizzare il AWS Management Console oppure AWS CLI, come descritto di seguito.

Per aggiungere un IAM ruolo per un'istanza del Postgre SQL DB utilizzando la console
  1. Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/.

  2. Scegli il nome dell'istanza del Postgre SQL DB per visualizzarne i dettagli.

  3. Nella scheda Connettività e sicurezza, nella sezione Gestisci IAM ruoli, scegli il ruolo da aggiungere in Aggiungi IAM ruoli a questa istanza.

  4. In Feature (Caratteristica), scegliere s3Export.

  5. Scegliere Add role (Aggiungi ruolo).

Per aggiungere un IAM ruolo per un'istanza SQL DB di Postgre utilizzando il CLI
  • Usa il comando seguente per aggiungere il ruolo all'istanza DB di Postgre denominata. SQL my-db-instance Replace (Sostituisci) your-role-arn con il ruolo ARN che hai annotato in un passaggio precedente. Utilizzare s3Export come valore dell'opzione --feature-name.

    Esempio

    In Linux, macOS, oppure 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

    In 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