Configurazione dell' AWS Glue accesso tra account diversi in Athena per Spark - Amazon Athena

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' AWS Glue accesso tra account diversi in Athena per Spark

In questo argomento viene illustrato come configurare l'account consumer 666666666666 e l'account proprietario 999999999999 per l'accesso multi-account su AWS Glue . Quando gli account sono configurati, l'account consumer può eseguire query da Athena for Spark sui database e sulle tabelle AWS Glue del proprietario.

1. Nel AWS Glue, fornisci l'accesso ai ruoli dei consumatori

Nel AWS Glue, il proprietario crea una politica che fornisce ai ruoli del consumatore l'accesso al catalogo AWS Glue dati del proprietario.

Per aggiungere una AWS Glue politica che consenta a un ruolo di consumatore di accedere al catalogo dati del proprietario
  1. Accedi a AWS Management Console utilizzando l'account del proprietario del catalogo.

  2. Apri la AWS Glue console all'indirizzo https://console.aws.amazon.com/glue/.

  3. Nel riquadro di navigazione, espandi Data Catalog, quindi seleziona Impostazioni catalogo.

  4. Nella pagina Impostazioni del catalogo dati, nella sezione Autorizzazioni, aggiungi una policy come quella che segue. Questa policy fornisce i ruoli per l'accesso dell'account consumer 666666666666 al catalogo dati dell'account proprietario 999999999999.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Cataloguers", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::666666666666:role/Admin", "arn:aws:iam::666666666666:role/AWSAthenaSparkExecutionRole" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-west-2:999999999999:catalog", "arn:aws:glue:us-west-2:999999999999:database/*", "arn:aws:glue:us-west-2:999999999999:table/*" ] } ] }

2. Configurazione dell'account consumer per l'accesso

Nell'account consumer, crea una policy per consentire l'accesso al proprietario AWS Glue Data Catalog, ai database e alle tabelle e associala a un ruolo. Nell'esempio seguente viene utilizzato l'account consumer 666666666666.

Per creare una AWS Glue politica di accesso al proprietario AWS Glue Data Catalog
  1. Accedi con l'account consumer a AWS Management Console.

  2. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  3. Nel riquadro di navigazione, espandi Gestione accesso, quindi seleziona Policy.

  4. Scegli Crea policy.

  5. Nella pagina Specifica autorizzazioni, seleziona JSON.

  6. Nell'editor delle politiche, inserisci un'istruzione JSON come la seguente che consente AWS Glue azioni sul catalogo di dati dell'account proprietario.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1:999999999999:catalog", "arn:aws:glue:us-east-1:999999999999:database/*", "arn:aws:glue:us-east-1:999999999999:table/*" ] } ] }
  7. Seleziona Successivo.

  8. Nella pagina Rivedi e crea, per Nome policy inserisci un nome per la policy.

  9. Scegli Crea policy.

Successivamente, utilizzi la console IAM nell'account consumer per allegare la policy che hai appena creato a uno o più ruoli IAM che l'account consumer utilizzerà per accedere al catalogo dati del proprietario.

Per allegare la AWS Glue politica ai ruoli nell'account consumatore
  1. Nel pannello di navigazione della console IAM dell'account consumer, seleziona Ruoli.

  2. Nella pagina Ruoli, individua il ruolo a cui intendi collegare la policy.

  3. Seleziona Aggiungi autorizzazioni, quindi seleziona Collega policy.

  4. Trova la policy che hai appena creato.

  5. Seleziona la casella di controllo della policy, quindi seleziona Aggiungi autorizzazioni.

  6. Ripeti i passaggi per aggiungere la policy agli altri ruoli che intendi utilizzare.

3. Configurazione di una sessione e creazione di una query

In Athena Spark, nell'account del richiedente, utilizzando il ruolo specificato, crea una sessione per testare l'accesso creando un notebook o modificando una sessione corrente. Quando configuri le proprietà della sessione, specifica una delle seguenti opzioni:

  • Il separatore del catalogo Glue: con questo approccio, includi l'ID dell'account proprietario nelle tue query. Utilizza questo metodo se intendi utilizzare la sessione per eseguire query sui cataloghi di dati di diversa proprietà.

  • L'ID del catalogo Glue: con questo approccio, si interroga direttamente il database. Questo metodo è più comodo se intendi utilizzare la sessione per eseguire query sul catalogo dati di una sola proprietà.

Utilizzo dell'approccio del separatore di AWS Glue catalogo

Quando modificate le proprietà della sessione, aggiungete quanto segue:

{ "spark.hadoop.aws.glue.catalog.separator": "/" }

Quando esegui una query in una cella, utilizza una sintassi simile a quella dell'esempio seguente. Tieni presente che nella clausola FROM, l'ID del catalogo e il separatore sono obbligatori prima del nome del database.

df = spark.sql('SELECT requestip, uri, method, status FROM `999999999999/mydatabase`.cloudfront_logs LIMIT 5') df.show()

Utilizzo dell'approccio AWS Glue Catalog ID

Quando modificate le proprietà della sessione, inserite la seguente proprietà. Sostituisci 999999999999 con l'ID dell'account del proprietario.

{ "spark.hadoop.hive.metastore.glue.catalogid": "999999999999" }

Quando esegui una query in una cella, utilizza una sintassi come la seguente: Si noti che nella clausola FROM, l'ID del catalogo e il separatore non sono richiesti prima del nome del database.

df = spark.sql('SELECT * FROM mydatabase.cloudfront_logs LIMIT 10') df.show()

Risorse aggiuntive

Accesso tra account ai cataloghi dati AWS Glue

Gestione delle autorizzazioni per più account utilizzando entrambi AWS Glue e Lake Formation nella AWS Lake Formation Developer Guide.

Configura l'accesso tra account a un account condiviso AWS Glue Data Catalog utilizzando Amazon Athena AWS in Prescriptive Guidance Patterns.