

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 AWS Glue l'accesso tra account diversi in Athena per Spark
<a name="spark-notebooks-cross-account-glue"></a>

Questo argomento mostra come configurare l'account consumatore *666666666666* e l'account *999999999999* proprietario per l'accesso su più account. 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.

## Fase 1: In AWS Glue, fornisci l'accesso ai ruoli dei consumatori
<a name="spark-notebooks-cross-account-glue-in-aws-glue-provide-access-to-the-consumer-account"></a>

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 Console di gestione AWS utilizzando l'account del proprietario del catalogo.

1. Apri la AWS Glue console all'indirizzo [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

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

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

------
#### [ JSON ]

****  

   ```
   {
       "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/*"
               ]
           }
       ]
   }
   ```

------

## Passaggio 2: configurare l’account consumer per l’accesso
<a name="spark-notebooks-cross-account-glue-configure-the-consumer-account-for-access"></a>

Nell'account consumatore, crea una politica per consentire l'accesso al proprietario AWS Glue Data Catalog, ai database e alle tabelle e associala a un ruolo. L'esempio seguente utilizza un account consumer*666666666666*.

**Per creare una AWS Glue politica di accesso al proprietario AWS Glue Data Catalog**

1. Accedi con l'account consumer a Console di gestione AWS.

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

1. Scegli **Crea policy**.

1. Nella pagina **Specifica autorizzazioni**, seleziona **JSON**.

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

------
#### [ JSON ]

****  

   ```
   {
       "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/*"
               ]
           }
       ]
   }
   ```

------

1. Scegli **Next (Successivo)**.

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

1. 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**.

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

1. Seleziona **Aggiungi autorizzazioni**, quindi seleziona **Collega policy**.

1. Trova la policy che hai appena creato.

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

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

## Passaggio 3: configurare una sessione e creazione di una query
<a name="spark-notebooks-cross-account-glue-configure-a-session-and-create-a-query"></a>

In Athena Spark, nell'account del richiedente, utilizzando il ruolo specificato, crea una sessione per testare l'accesso [creando un notebook](notebooks-spark-getting-started.md#notebooks-spark-getting-started-creating-your-own-notebook) o [modificando una sessione corrente](notebooks-spark-getting-started.md#notebooks-spark-getting-started-editing-session-details). Quando [configuri le proprietà della sessione](notebooks-spark-custom-jar-cfg.md#notebooks-spark-custom-jar-cfg-console), specifica una delle seguenti opzioni:
+ **Il separatore di AWS Glue catalogo**: 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 AWS Glue catalogo**: 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à.

### Utilizzate il separatore di AWS Glue catalogo
<a name="spark-notebooks-cross-account-glue-using-the-glue-catalog-separator-approach"></a>

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()
```

### Usa l'ID del AWS Glue catalogo
<a name="spark-notebooks-cross-account-glue-using-the-glue-catalog-id-approach"></a>

Quando modificate le proprietà della sessione, inserite la seguente proprietà. *999999999999*Sostituiscilo 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
<a name="spark-notebooks-cross-account-glue-additional-resources"></a>

[Configurare l'accesso tra account ai cataloghi di AWS Glue dati](security-iam-cross-account-glue-catalog-access.md)

[Gestione delle autorizzazioni per più account utilizzando entrambi AWS Glue e Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-cross-account.html) nella *AWS Lake Formation Developer* Guide.

[Configura l'accesso tra account a un account condiviso AWS Glue Data Catalog utilizzando Amazon Athena AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html) *in Prescriptive* Guidance Patterns.