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
-
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:
-
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
-
-
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 denominatoamzn-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
/*" ] } ] }' -
-
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
eaws: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 valoreaws:SourceAccount
e l’account nel valoreaws: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
" } } } ] }' -
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
con la politica ARN che hai annotato in un passaggio precedente.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role -
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
Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/
. -
Scegli il nome dell'istanza del Postgre SQL DB per visualizzarne i dettagli.
-
Nella scheda Connettività e sicurezza, nella sezione Gestisci IAM ruoli, scegli il ruolo da aggiungere in Aggiungi IAM ruoli a questa istanza.
-
In Feature (Caratteristica), scegliere s3Export.
-
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)
con il ruolo ARN che hai annotato in un passaggio precedente. Utilizzareyour-role-arn
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-arnyour-role-arn
\ --regionyour-region
In Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
my-db-instance
^ --feature-name s3Export ^ --role-arnyour-role-arn
^ --regionyour-region