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 AWS Glue Data Catalog condiviso utilizzando Amazon Athena
Creato da Denis Avdonin () AWS
Ambiente: produzione | Tecnologie: DataLakes; Analisi; Big data | Carico di lavoro: tutti gli altri carichi di lavoro |
AWSservizi: Amazon Athena; Glue 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) Simple Storage Service (Amazon S3) utilizzando il Glue Data Catalog. AWS Puoi archiviare il set di dati in un bucket S3. I metadati vengono raccolti da un crawler AWS Glue e inseriti nel AWS Glue Data Catalog. Il bucket S3 e il AWS Glue Data Catalog risiedono in un AWS account denominato account dati. Puoi fornire l'accesso ai IAM principali in un altro AWS account denominato account consumatore. Gli utenti possono interrogare i dati nell'account consumer utilizzando il motore di query serverless di Amazon Athena.
Prerequisiti e limitazioni
Prerequisiti
Un bucket S3 in uno degli account AWS
AWSCommand Line Interface (AWSCLI), installata e configurata (o AWS CloudShell
per l'esecuzione di AWS CLI comandi)
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 al catalogo dati di Glue AWS Glue su più account con Amazon Athena
Architettura
Stack tecnologico Target
Amazon Athena
Amazon Simple Storage Service (Amazon S3)
AWS Glue
AWSIdentity and Access Management (IAM)
AWSServizio di gestione delle chiavi (AWSKMS)
Il diagramma seguente mostra un'architettura che utilizza IAM le autorizzazioni per condividere i dati in un bucket S3 in un AWS account (account dati) con un altro AWS account (account consumatore) tramite il AWS Glue Data Catalog.
Il diagramma mostra il flusso di lavoro seguente:
La policy S3 bucket nell'account dati concede le autorizzazioni a un IAM ruolo nell'account consumer e al ruolo del servizio crawler AWS Glue nell'account dati.
La politica AWS KMS chiave nell'account dati concede le autorizzazioni per il IAM ruolo nell'account consumatore e per il ruolo del servizio crawler AWS Glue nell'account dati.
Il crawler AWS Glue nell'account dati rileva lo schema dei dati archiviati nel bucket S3.
La politica delle risorse del AWS Glue Data Catalog nell'account dati consente l'accesso al IAM ruolo nell'account consumatore.
Un utente crea un riferimento di catalogo denominato nell'account consumer utilizzando un AWS CLI comando.
Una IAM policy concede a un IAM ruolo nell'account consumer l'accesso alle risorse dell'account dati. La politica di fiducia del IAM ruolo consente agli utenti dell'account consumatore di assumere il IAM ruolo.
Un utente dell'account consumer assume il IAM ruolo e accede agli oggetti nel catalogo dati utilizzando SQL le query.
Il motore serverless Athena esegue le interrogazioni. SQL
Nota: le IAM migliori pratiche consigliano di concedere le autorizzazioni a un IAM ruolo e di utilizzare la federazione delle identità.
Strumenti
Amazon Athena è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon S3 utilizzando standard. SQL
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.
AWSGlue è 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.
AWSIdentity and Access Management (IAM) consente di gestire in modo sicuro l'accesso alle AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
AWSKey Management Service (AWSKMS) consente di creare e controllare chiavi crittografiche per proteggere i dati.
Epiche
Attività | Descrizione | Competenze 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.
La policy bucket concede le autorizzazioni per il IAM ruolo nell'account consumer e per il 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 AWS KMS chiave, concedi l' Aggiorna la policy chiave con la seguente dichiarazione:
| Amministratore cloud |
Concedi al crawler l'accesso ai dati. | Allega la seguente IAM policy al ruolo di servizio del crawler:
| Amministratore cloud |
(Se richiesto) Concedi al crawler l'accesso alla chiave di crittografia dei dati. | Se il bucket S3 è crittografato da una AWS KMS chiave, concedi l'
| Amministratore del cloud |
Concedi al IAM ruolo nell'account consumer e al crawler l'accesso al catalogo dati. |
Questa politica consente tutte le azioni AWS Glue su tutti i database e le tabelle dell'account dati. È possibile personalizzare la politica in modo da 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à | Descrizione | Competenze richieste |
---|---|---|
Crea un riferimento denominato per il catalogo dati. | Per creare un riferimento denominato al catalogo di dati, utilizzate CloudShello installatelo localmente AWS CLI per eseguire il seguente comando:
| Amministratore cloud |
Concedi al IAM ruolo nell'account del consumatore l'accesso ai dati. | Allega la seguente politica al IAM ruolo nell'account consumatore per concedere al ruolo l'accesso ai dati tra account diversi:
Successivamente, utilizza il seguente modello per specificare quali utenti possono accettare il IAM ruolo nella relativa politica di fiducia:
Infine, concedi all'utente le autorizzazioni per assumere il IAM ruolo associando la stessa politica al gruppo di utenti a cui appartengono. | Amministratore cloud |
(Se richiesto) Concedi al IAM ruolo nell'account del consumatore l'accesso alla chiave di crittografia dei dati. | Se il bucket S3 è crittografato con una AWS KMS chiave, concedi l'
| Amministratore cloud |
Passa al IAM ruolo nell'account consumer per accedere ai dati. | In qualità di consumatore di dati, passa al IAM ruolo di accesso 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:
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:
Per ulteriori informazioni, consulta Accesso multiaccount ai cataloghi di dati 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 usare 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 ACID gestite per le transazioni e altre funzionalità. Sebbene Lake Formation sia ben integrato con Athena, richiede una configurazione aggiuntiva rispetto all'approccio basato esclusivamente su questo modelloIAM. Ti consigliamo di prendere in considerazione la decisione di utilizzare Lake Formation o IAM solo i controlli di accesso all'interno del 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.