

# Configurar o acesso entre contas do AWS Glue no Athena para Spark
<a name="spark-notebooks-cross-account-glue"></a>

Este tópico mostra como a conta do consumidor *666666666666* e a conta do proprietário *999999999999* podem ser configuradas para acesso entre contas do AWS Glue. Quando as contas são configuradas, a conta do consumidor pode executar consultas do Athena para Spark nos bancos de dados e tabelas do AWS Glue do proprietário.

## Etapa 1: fornecer acesso aos perfis de consumidor no AWS Glue
<a name="spark-notebooks-cross-account-glue-in-aws-glue-provide-access-to-the-consumer-account"></a>

No AWS Glue, o proprietário cria uma política que fornece aos perfis do consumidor acesso ao catálogo de dados do AWS Glue do proprietário.

**Adicionar uma política do AWS Glue que permita que um perfil de consumidor acesse o catálogo de dados do proprietário**

1. Usando a conta do proprietário do catálogo, faça login no Console de gerenciamento da AWS.

1. Abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. No painel de navegação, expanda **Data Catalog** e escolha **Configurações do catálogo**.

1. Na página **Configurações do catálogo de dados**, na seção **Permissões**, adicione uma política como a seguir. Essa política fornece perfis para a conta do consumidor *666666666666* acessar o catálogo de dados na conta do proprietário *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/*"
               ]
           }
       ]
   }
   ```

------

## Etapa 2: configurar a conta de consumidor para acesso
<a name="spark-notebooks-cross-account-glue-configure-the-consumer-account-for-access"></a>

Na conta do consumidor, crie uma política para permitir o acesso ao AWS Glue Data Catalog, aos bancos de dados e às tabelas do proprietário e anexe a política a um perfil. O exemplo a seguir usa a conta de consumidor *666666666666*.

**Criar uma política do AWS Glue para acesso ao AWS Glue Data Catalog do proprietário**

1. Usando a conta do consumidor, faça login no Console de gerenciamento da AWS.

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, expanda **Gerenciamento de acesso** e escolha **Políticas**.

1. Escolha **Criar política**.

1. Na página **Especificar permissões**, escolha **JSON**.

1. No **Editor de políticas**, insira uma instrução JSON como a seguir que permite ações do AWS Glue no catálogo de dados da conta do proprietário.

------
#### [ 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. Escolha **Próximo**.

1. Na página **Revisar e criar**, para **Nome da política**, insira um nome para a política.

1. Escolha **Criar política**.

Em seguida, você usa o console do IAM na conta do consumidor para anexar a política que você acabou de criar ao perfil ou aos perfis do IAM que a conta do consumidor usará para acessar o catálogo de dados do proprietário.

**Anexar a política do AWS Glue  aos perfis na conta do consumidor**

1. No painel de navegação do console do IAM da conta do consumidor, escolha **Perfis**.

1. Na página **Perfis**, encontre o perfil ao qual você deseja anexar a política.

1. Escolha **Adicionar permissões** e depois **Anexar políticas**.

1. Encontre a política que você acabou de criar.

1. Marque a caixa de seleção da política e escolha **Adicionar permissões**.

1. Repita as etapas para adicionar a política a outros perfis que você deseja usar.

## Etapa 3: configurar uma sessão e criar uma consulta
<a name="spark-notebooks-cross-account-glue-configure-a-session-and-create-a-query"></a>

No Athena Spark, na conta do solicitante, usando o perfil especificado, crie uma sessão para testar o acesso [criando um caderno](notebooks-spark-getting-started.md#notebooks-spark-getting-started-creating-your-own-notebook) ou [editando uma sessão atual](notebooks-spark-getting-started.md#notebooks-spark-getting-started-editing-session-details). Ao [configurar as propriedades da sessão](notebooks-spark-custom-jar-cfg.md#notebooks-spark-custom-jar-cfg-console), especifique uma das seguintes opções:
+ **O separador de catálogo do AWS Glue**: com essa abordagem, você inclui o ID da conta do proprietário em suas consultas. Use esse método se você for usar a sessão para consultar catálogos de dados de diferentes proprietários.
+ **O ID do catálogo do AWS Glue**: com essa abordagem, você consulta o banco de dados diretamente. Esse método será mais conveniente se você for usar a sessão para consultar o catálogo de dados de somente um proprietário.

### Usar o separador do catálogo do AWS Glue
<a name="spark-notebooks-cross-account-glue-using-the-glue-catalog-separator-approach"></a>

Ao editar as propriedades da sessão, adicione o seguinte:

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

Ao executar uma consulta em uma célula, use uma sintaxe como a do exemplo a seguir. Observe que na cláusula `FROM`, o separador e o ID do catálogo e são necessários antes do nome do banco de dados.

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

### Usar o ID do catálogo do AWS Glue
<a name="spark-notebooks-cross-account-glue-using-the-glue-catalog-id-approach"></a>

Ao editar as propriedades da sessão, insira a propriedade a seguir. Substitua *999999999999* pelo ID da conta do proprietário.

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

Ao executar uma consulta em uma célula, use uma sintaxe como a seguir. Observe que na cláusula `FROM`, o separador e ID do catálogo não são necessários antes do nome do banco de dados.

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

## Recursos adicionais
<a name="spark-notebooks-cross-account-glue-additional-resources"></a>

[Configurar o acesso entre contas aos catálogos de dados do AWS Glue](security-iam-cross-account-glue-catalog-access.md)

[Managing cross-account permissions using both AWS Glue and Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-cross-account.html) no *Guia do desenvolvedor do AWS Lake Formation*.

[Configure o acesso entre contas para um AWS Glue Data Catalog compartilhado usando o Amazon Athena](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html) nos *Padrões de orientação prescritiva da AWS*.