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
Per esportare i dati in Amazon S3, concedi all' del cluster 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 cluster di database PostgreSQL l'accesso ad Amazon S3 tramite un ruolo IAM
-
Creare una policy IAM
Questa policy fornisce le autorizzazioni bucket e di oggetto che consentono all’ del cluster di database PostgreSQL di accedere a Amazon S3.
Come parte della creazione di questa policy, attenersi alla seguente procedura:
-
Includere nella policy le seguenti operazioni obbligatorie per consentire il trasferimento dei file dall’ del cluster del database PostgreSQL a un bucket Amazon S3:
-
s3:PutObject
-
s3:AbortMultipartUpload
-
-
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 Aurora PostgreSQL, consulta Creazione e utilizzo di una policy IAM per l'accesso al database IAM. Consulta anche il Tutorial: Creare e collegare la prima policy gestita dal cliente 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 denominatoamzn-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 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
/*" ] } ] }' -
-
Creare un ruolo IAM.
In questo modo, Aurora PostgreSQL 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 nella Guida per l'utente 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, 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 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:cluster: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:cluster:dbname
" } } } ] }' -
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
con l'ARN della policy 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 ruolo IAM al cluster. A tale scopo, utilizzare AWS Management Console o AWS CLI, come descritto di seguito.
Per aggiungere un ruolo IAM al cluster di database PostgreSQL tramite la console
Accedi a AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Scegliere il nome del cluster di database PostgreSQL per visualizzarne i dettagli.
-
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).
-
In Feature (Caratteristica), scegliere s3Export.
-
Scegliere Add role (Aggiungi ruolo).
Per aggiungere un ruolo IAM a un cluster di database PostgreSQL tramite CLI
-
Utilizzare il seguente comando per aggiungere il ruolo al cluster di database PostgreSQL denominato
my-db-cluster
. Sostituire
con l'ARN del ruolo annotato in precedenza. Utilizzareyour-role-arn
s3Export
come valore dell'opzione--feature-name
.Esempio
In Linux, macOS, oppure Unix:
aws rds add-role-to-db-cluster \ --db-cluster-identifier
my-db-cluster
\ --feature-name s3Export \ --role-arnyour-role-arn
\ --regionyour-region
In Windows:
aws rds add-role-to-db-cluster ^ --db-cluster-identifier
my-db-cluster
^ --feature-name s3Export ^ --role-arnyour-role-arn
^ --regionyour-region