Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Configura l'accesso tra account a un catalogo dati AWS Glue condiviso utilizzando Amazon Athena - Prontuario AWS

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

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

Configura l'accesso tra account a un catalogo dati AWS Glue condiviso utilizzando Amazon Athena

Creato da Denis Avdonin (AWS)

Riepilogo

Questo modello fornisce step-by-step istruzioni, inclusi esempi di policy AWS Identity and Access Management (IAM), per configurare la condivisione tra account di un set di dati archiviato in un bucket Amazon Simple Storage Service (Amazon S3) utilizzando AWS Glue Data Catalog. Puoi archiviare il set di dati in un bucket S3. I metadati vengono raccolti da un crawler di AWS Glue e inseriti nel catalogo dati di AWS Glue. Il bucket S3 e il catalogo dati AWS Glue risiedono in un account AWS denominato account dati. Puoi fornire l'accesso ai principali IAM in un altro account AWS denominato account consumer. Gli utenti possono interrogare i dati nell'account consumer utilizzando il motore di query serverless di Amazon Athena.

Prerequisiti e limitazioni

Prerequisiti

Versioni del prodotto

Questo modello funziona solo con il motore Athena versione 2 e il motore Athena versione 3. Ti consigliamo di eseguire l'aggiornamento alla versione 3 del motore Athena. Se non riesci a eseguire l'upgrade dalla versione 1 del motore Athena alla versione 3 del motore Athena, segui l'approccio dell'accesso multiaccount di AWS Glue Data Catalog con Amazon Athena nel blog di AWS Big Data.

Architettura

Stack tecnologico Target

  • Amazon Athena

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Glue

  • AWS Identity and Access Management (IAM)

  • AWS Key Management Service (AWS KMS)

Il diagramma seguente mostra un'architettura che utilizza le autorizzazioni IAM per condividere i dati in un bucket S3 in un account AWS (account dati) con un altro account AWS (account consumer) tramite AWS Glue Data Catalog.

Condivisione di un set di dati in un bucket S3 tra un account dati e un account consumer utilizzando AWS Glue Data Catalog.

Il diagramma mostra il flusso di lavoro seguente:

  1. La policy S3 bucket nell'account dati concede le autorizzazioni a un ruolo IAM nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.

  2. La policy chiave di AWS KMS nell'account dati concede le autorizzazioni al ruolo IAM nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.

  3. Il crawler AWS Glue nell'account dati rileva lo schema dei dati archiviati nel bucket S3.

  4. La policy sulle risorse di AWS Glue Data Catalog nell'account dati consente l'accesso al ruolo IAM nell'account consumer.

  5. Un utente crea un riferimento di catalogo denominato nell'account consumer utilizzando un comando CLI AWS.

  6. Una policy IAM garantisce a un ruolo IAM nell'account consumer l'accesso alle risorse dell'account di dati. La policy di fiducia del ruolo IAM consente agli utenti dell'account consumer di assumere il ruolo IAM.

  7. Un utente dell'account consumer assume il ruolo IAM e accede agli oggetti nel catalogo dati utilizzando le query SQL.

  8. Il motore serverless Athena esegue le query SQL.

Strumenti

  • Amazon Athena è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon S3 utilizzando SQL standard.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • AWS Glue è un servizio di estrazione, trasformazione e caricamento (ETL) completamente gestito. Ti aiuta a classificare, pulire, arricchire e spostare i dati in modo affidabile tra archivi di dati e flussi di dati.

  • AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

  • AWS Key Management Service (AWS KMS) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.

Epiche

AttivitàDescrizioneCompetenze richieste

Concedi l'accesso ai dati nel bucket S3.

Crea una policy per i bucket S3 basata sul modello seguente e assegna la policy al bucket in cui sono archiviati i dati.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }

La bucket policy concede le autorizzazioni al ruolo IAM nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.

Amministratore del cloud

(Se richiesto) Concedi l'accesso alla chiave di crittografia dei dati.

Se il bucket S3 è crittografato da una chiave AWS KMS, kms:Decrypt concedi l'autorizzazione sulla chiave al ruolo IAM nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.

Aggiorna la policy chiave con la seguente dichiarazione:

{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Amministratore cloud

Concedi al crawler l'accesso ai dati.

Allega la seguente policy IAM al ruolo di servizio del crawler:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }
Amministratore cloud

(Se richiesto) Concedi al crawler l'accesso alla chiave di crittografia dei dati.

Se il bucket S3 è crittografato da una chiave AWS KMS, kms:Decrypt concedi l'autorizzazione sulla chiave per il ruolo di servizio del crawler allegando la seguente policy:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Amministratore del cloud

Concedi al ruolo IAM nell'account consumer e al crawler l'accesso al catalogo dati.

  1. Accedi alla Console di gestione AWS e apri la console AWS Glue.

  2. Nel pannello di navigazione, in Data Catalog, scegli Impostazioni.

  3. Nella sezione Autorizzazioni, aggiungi la seguente dichiarazione, quindi scegli Salva.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action" : "glue:*", "Resource" : [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Questa policy consente tutte le azioni di AWS Glue su tutti i database e le tabelle nell'account dati. Puoi personalizzare la policy per concedere solo le autorizzazioni necessarie ai responsabili dei consumatori. Ad esempio, è possibile fornire l'accesso in sola lettura a tabelle o viste specifiche in un database.

Amministratore cloud

Imposta le autorizzazioni nell'account dati

AttivitàDescrizioneCompetenze richieste

Concedi l'accesso ai dati nel bucket S3.

Crea una policy per i bucket S3 basata sul modello seguente e assegna la policy al bucket in cui sono archiviati i dati.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }

La bucket policy concede le autorizzazioni al ruolo IAM nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.

Amministratore del cloud

(Se richiesto) Concedi l'accesso alla chiave di crittografia dei dati.

Se il bucket S3 è crittografato da una chiave AWS KMS, kms:Decrypt concedi l'autorizzazione sulla chiave al ruolo IAM nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.

Aggiorna la policy chiave con la seguente dichiarazione:

{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Amministratore cloud

Concedi al crawler l'accesso ai dati.

Allega la seguente policy IAM al ruolo di servizio del crawler:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" } ] }
Amministratore cloud

(Se richiesto) Concedi al crawler l'accesso alla chiave di crittografia dei dati.

Se il bucket S3 è crittografato da una chiave AWS KMS, kms:Decrypt concedi l'autorizzazione sulla chiave per il ruolo di servizio del crawler allegando la seguente policy:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Amministratore del cloud

Concedi al ruolo IAM nell'account consumer e al crawler l'accesso al catalogo dati.

  1. Accedi alla Console di gestione AWS e apri la console AWS Glue.

  2. Nel pannello di navigazione, in Data Catalog, scegli Impostazioni.

  3. Nella sezione Autorizzazioni, aggiungi la seguente dichiarazione, quindi scegli Salva.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::<consumer account id>:role/<role name>", "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler" ] }, "Action" : "glue:*", "Resource" : [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Questa policy consente tutte le azioni di AWS Glue su tutti i database e le tabelle nell'account dati. Puoi personalizzare la policy per concedere solo le autorizzazioni necessarie ai responsabili dei consumatori. Ad esempio, è possibile fornire l'accesso in sola lettura a tabelle o viste specifiche in un database.

Amministratore cloud
AttivitàDescrizioneCompetenze richieste

Crea un riferimento denominato per il catalogo dati.

Per creare un riferimento denominato al catalogo di dati, usa CloudShelluna CLI AWS installata localmente per eseguire il seguente comando:

aws athena create-data-catalog --name <shared catalog name> --type GLUE --parameters catalog-id=<data account id>
Amministratore cloud

Concedi al ruolo IAM nell'account consumer l'accesso ai dati.

Allega la seguente policy al ruolo IAM nell'account consumer per concedere al ruolo l'accesso ai dati tra account diversi:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" }, { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Successivamente, utilizza il seguente modello per specificare quali utenti possono accettare il ruolo IAM nella relativa policy di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<consumer account id>:user/<IAM user>" }, "Action": "sts:AssumeRole" } ] }

Infine, concedi agli utenti i permessi per assumere il ruolo IAM associando la stessa policy al gruppo di utenti a cui appartengono.

Amministratore cloud

(Se richiesto) Concedi al ruolo IAM nell'account consumer l'accesso alla chiave di crittografia dei dati.

Se il bucket S3 è crittografato da una chiave AWS KMS, kms:Decrypt concedi l'autorizzazione sulla chiave al ruolo IAM nell'account consumer allegando la seguente policy:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Amministratore del cloud

Passa al ruolo IAM nell'account consumer per accedere ai dati.

In qualità di consumatore di dati, passa al ruolo IAM per accedere ai dati nell'account dati.

Consumatore di dati

Accedi ai dati.

Interroga i dati usando Athena. Ad esempio, apri l'editor di query Athena ed esegui la seguente query:

SELECT * FROM <shared catalog name>.<database name>.<table name>

Invece di utilizzare un riferimento denominato al catalogo, puoi fare riferimento al catalogo anche tramite il relativo Amazon Resource Name (ARN).

Nota

Se utilizzi un riferimento dinamico al catalogo in una query o in una vista, racchiudi il riferimento tra virgolette doppie con escape (\»). Per esempio:

SELECT * FROM \"glue:arn:aws:glue:<region>:<data account id>:catalog\".<database name>.<table name>

Per ulteriori informazioni, consulta Accesso da più account ai cataloghi di dati di AWS Glue nella Guida per l'utente di Amazon Athena.

Consumatore di dati

Accedi ai dati dall'account del consumatore

AttivitàDescrizioneCompetenze richieste

Crea un riferimento denominato per il catalogo dati.

Per creare un riferimento denominato al catalogo di dati, usa CloudShelluna CLI AWS installata localmente per eseguire il seguente comando:

aws athena create-data-catalog --name <shared catalog name> --type GLUE --parameters catalog-id=<data account id>
Amministratore cloud

Concedi al ruolo IAM nell'account consumer l'accesso ai dati.

Allega la seguente policy al ruolo IAM nell'account consumer per concedere al ruolo l'accesso ai dati tra account diversi:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::data-bucket/*" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::data-bucket" }, { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:<region>:<data account id>:catalog", "arn:aws:glue:<region>:<data account id>:database/*", "arn:aws:glue:<region>:<data account id>:table/*" ] } ] }

Successivamente, utilizza il seguente modello per specificare quali utenti possono accettare il ruolo IAM nella relativa policy di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<consumer account id>:user/<IAM user>" }, "Action": "sts:AssumeRole" } ] }

Infine, concedi agli utenti i permessi per assumere il ruolo IAM associando la stessa policy al gruppo di utenti a cui appartengono.

Amministratore cloud

(Se richiesto) Concedi al ruolo IAM nell'account consumer l'accesso alla chiave di crittografia dei dati.

Se il bucket S3 è crittografato da una chiave AWS KMS, kms:Decrypt concedi l'autorizzazione sulla chiave al ruolo IAM nell'account consumer allegando la seguente policy:

{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>" }
Amministratore del cloud

Passa al ruolo IAM nell'account consumer per accedere ai dati.

In qualità di consumatore di dati, passa al ruolo IAM per accedere ai dati nell'account dati.

Consumatore di dati

Accedi ai dati.

Interroga i dati usando Athena. Ad esempio, apri l'editor di query Athena ed esegui la seguente query:

SELECT * FROM <shared catalog name>.<database name>.<table name>

Invece di utilizzare un riferimento denominato al catalogo, puoi fare riferimento al catalogo anche tramite il relativo Amazon Resource Name (ARN).

Nota

Se utilizzi un riferimento dinamico al catalogo in una query o in una vista, racchiudi il riferimento tra virgolette doppie con escape (\»). Per esempio:

SELECT * FROM \"glue:arn:aws:glue:<region>:<data account id>:catalog\".<database name>.<table name>

Per ulteriori informazioni, consulta Accesso da più account ai cataloghi di dati di AWS Glue nella Guida per l'utente di Amazon Athena.

Consumatore di dati

Risorse correlate

Informazioni aggiuntive

Utilizzo di Lake Formation come alternativa per la condivisione tra account

Puoi anche utilizzare AWS Lake Formation per condividere l'accesso agli oggetti del catalogo AWS Glue tra gli account. Lake Formation offre un controllo granulare degli accessi a livello di colonna e riga, controllo degli accessi basato su tag, tabelle governate per le transazioni ACID e altre funzionalità. Sebbene Lake Formation sia ben integrato con Athena, richiede una configurazione aggiuntiva rispetto all'approccio basato esclusivamente sull'IAM di questo modello. Ti consigliamo di prendere in considerazione la decisione di utilizzare i controlli di accesso solo per Lake Formation o IAM nel contesto più ampio dell'architettura complessiva della tua soluzione. Le considerazioni includono quali altri servizi sono coinvolti e come si integrano con entrambi gli approcci.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.