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 importare dati da un file Amazon S3, concedi al l'SQLautorizzazione ad accedere al bucket Amazon S3 contenente il file. Puoi concedere l'accesso a un bucket Amazon S3 in uno dei due modi descritti negli argomenti seguenti.
Argomenti
Utilizzo di un IAM ruolo per accedere a un bucket Amazon S3
Prima di caricare i dati da un file Amazon S3, concedi al l'SQLautorizzazione ad accedere al bucket Amazon S3 in cui si trova il file. In questo modo non dovrai gestire ulteriori informazioni sulle credenziali né fornirle nella chiamata della funzione aws_s3.table_import_from_s3.
A tale scopo, crea una IAM policy che fornisca l'accesso al bucket Amazon S3. Crea un IAM ruolo e associa la policy al ruolo. Quindi assegna il IAM ruolo all'istanza DB.
Fornire a un l'accesso ad Amazon S3 tramite un ruolo IAM
-
Crea IAM una policy.
Questa policy fornisce le autorizzazioni per bucket e oggetti che consentono al di accedere ad Amazon S3 SQL.
-
s3:GetObject
-
s3:ListBucket
Includere nella policy le seguenti risorse per identificare il bucket Amazon S3 e gli oggetti nel bucket. Questo mostra il formato Amazon Resource Name (ARN) per accedere ad Amazon S3.
-
arn:aws:s3:::
amzn-s3-demo-bucket
-
arn:aws:s3:::
amzn-s3-demo-bucket
/*
Per ulteriori informazioni sulla creazione di una IAM politica per , vedere. SQL 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
Il AWS CLI comando seguente crea una IAM politica denominata
rds-s3-import-policy
con queste opzioni. Garantisce l'accesso a un bucket denominatoamzn-s3-demo-bucket
.Nota
Prendi nota dell'Amazon Resource Name (ARN) della policy restituita da questo comando. Ti servirà ARN in un passaggio successivo quando associ la policy a un IAM ruolo.
Esempio
In Linux, macOS, oppure Unix:
aws iam create-policy \ --policy-name rds-s3-import-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3import", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }'In Windows:
aws iam create-policy ^ --policy-name rds-s3-import-policy ^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3import", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }' -
-
Crea un IAM ruolo.
Lo fai in modo che Amazon possa assumere IAM questo ruolo 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 il AWS CLI comando per creare un ruolo denominatords-s3-import-role
.Esempio
In Linux, macOS, oppure Unix:
aws iam create-role \ --role-name rds-s3-import-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-import-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.
Il AWS CLI comando seguente associa la politica creata nel passaggio precedente al ruolo denominato
rds-s3-import-role
Replace
con la politica ARN annotato in un passaggio precedente.your-policy-arn
Esempio
In Linux, macOS, oppure Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-name rds-s3-import-roleIn Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-name rds-s3-import-role -
Aggiungere il IAM ruolo all'istanza del DB.
A tale scopo, utilizzare AWS Management Console o AWS CLI, come descritto di seguito.
Per aggiungere un IAM ruolo per un'istanza del Postgree 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 s3Import.
-
Scegliere Add role (Aggiungi ruolo).
Per aggiungere un IAM ruolo per un'istanza SQL DB 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
s3Import
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 s3Import \ --role-arnyour-role-arn
\ --regionyour-region
In Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
my-db-instance
^ --feature-name s3Import ^ --role-arnyour-role-arn
^ --regionyour-region
Per aggiungere un IAM ruolo per un'istanza del Postgre SQL DB utilizzando Amazon RDSAPI, chiama l'operazione.
Utilizzo delle credenziali di sicurezza per accedere a un bucket Amazon S3
Se preferisci, puoi utilizzare le credenziali di sicurezza per fornire l'accesso a un bucket Amazon S3 anziché fornire l'accesso con un ruolo. IAM A tale scopo, specifica il parametro credentials
nella chiamata di funzione aws_s3.table_import_from_s3.
Il credentials
parametro è una struttura di tipo che contiene le aws_commons._aws_credentials_1
credenziali. AWS Utilizzare la funzione aws_commons.create_aws_credentials per impostare la chiave di accesso e la chiave segreta in una struttura aws_commons._aws_credentials_1
, come illustrato di seguito.
postgres=>
SELECT aws_commons.create_aws_credentials( 'sample_access_key
', 'sample_secret_key
', '') AS creds \gset
Dopo aver creato la struttura aws_commons._aws_credentials_1
, utilizzare la funzione aws_s3.table_import_from_s3 con il parametro credentials
per importare i dati, come illustrato di seguito.
postgres=>
SELECT aws_s3.table_import_from_s3( 't', '', '(format csv)', :'s3_uri', :'creds' );
Oppure si può includere la chiamata inline di funzione aws_commons.create_aws_credentials all'interno della chiamata di funzione aws_s3.table_import_from_s3
.
postgres=>
SELECT aws_s3.table_import_from_s3( 't', '', '(format csv)', :'s3_uri', aws_commons.create_aws_credentials('sample_access_key
', 'sample_secret_key
', '') );
Risoluzione dei problemi di accesso a Amazon S3
Se riscontri problemi di connessione quanto tenti di importare i dati da Amazon S3, segui questi suggerimenti:
-
Risoluzione dei problemi di identità e accesso in Amazon RDS
-
Risoluzione dei problemi di Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service
-
Risoluzione dei problemi di Amazon S3 e IAM nella guida per l'utente IAM