

# Conectar o Athena ao Centro de Identidade do IAM
<a name="using-trusted-identity-propagation-setup"></a>

A seção a seguir lista o processo de conexão do Athena ao Centro de Identidade do IAM.

## Configurar um emissor de tokens confiável
<a name="using-trusted-identity-propagation-step1"></a>

Siga o guia [Configurar um emissor de tokens confiável](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) para configurar um emissor de tokens confiável. Isso criará um Centro de Identidade do AWS IAM.

**nota**  
Em **Tipo de provedor**, escolha **OpenID Connect**. Em **URL do provedor**, insira a URL do emissor do seu provedor de identidade. Em **Público**, especifique o ID do cliente emitido pelo provedor de identidade para sua aplicação.  
 

Copie o nome do recurso do aplicativo (ARN) do provedor de identidade do AWS IAM. Para obter mais informações, consulte [Provedores de identidade e federação](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html).

## Configurar perfis do IAM
<a name="using-trusted-identity-propagation-step2"></a>

### Configurar perfil de aplicação do IAM
<a name="using-trusted-identity-propagation-step2-application-role"></a>

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 à esquerda, escolha **Perfis** e **Criar perfil**.

1. Em **Tipo de entidade confiável**, escolha **Política de confiança personalizada** da seguinte forma:

   1. Em **Entidade principal federada**, adicione o ARN do provedor de identidade do AWS IAM que você copiou durante a configuração do emissor de tokens confiável.

   1. Como condição da política, adicione o público do seu provedor de identidade federado externo.

1. Adicione a política em linha a seguir para conceder acesso ao usuário para as permissões [CreateTokenWithIAM](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html), [ListTagsForResource](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListTagsForResource.html) e [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "athena:ListTags*",
                   "sso:ListTags*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------
**nota**  
As permissões `CreateTokenWithIam` são fornecidas na aplicação do Centro de Identidade do IAM gerenciada pelo cliente.

1. Copie o ARN para o perfil de aplicação.

### Configurar o perfil de acesso do IAM
<a name="using-trusted-identity-propagation-step2-access-role"></a>

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 à esquerda, escolha **Perfis** e **Criar perfil**.

1. Em **Tipo de entidade confiável**, escolha **Política de confiança personalizada** da seguinte forma:

   1. Em **Entidade principal federada**, adicione o ARN do Centro de Identidade do AWS IAM copiado durante a configuração do emissor de tokens confiável.

   1. Em **Entidade principal da AWS**, adicione o ARN para o perfil de aplicação do AWS IAM copiado durante a configuração do perfil de aplicação do IAM.

1. Adicione a seguinte **política em linha** para conceder acesso a fluxos de trabalho do driver:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "athena:StartQueryExecution",
                   "athena:GetQueryExecution",
                   "athena:GetQueryResults",
                   "athena:ListWorkGroups",
                   "athena:ListDataCatalogs",
                   "athena:ListDatabases",
                   "athena:ListTableMetadata"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:CreateTable",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:UpdateTable",
                   "glue:DeleteTable",
                   "glue:BatchDeleteTable",
                   "glue:GetTableVersion",
                   "glue:GetTableVersions",
                   "glue:DeleteTableVersion",
                   "glue:BatchDeleteTableVersion",
                   "glue:CreatePartition",
                   "glue:BatchCreatePartition",
                   "glue:GetPartition",
                   "glue:GetPartitions",
                   "glue:BatchGetPartition",
                   "glue:UpdatePartition",
                   "glue:DeletePartition",
                   "glue:BatchDeletePartition"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lakeformation:GetDataAccess"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Copie o ARN para o perfil de acesso.

## Configurar a aplicação gerenciada pelo cliente do Centro de Identidade do AWS IAM
<a name="using-trusted-identity-propagation-step3"></a>

Para configurar a aplicação gerenciada pelo cliente, siga as etapas em [Configurar aplicações OAuth 2.0 gerenciadas pelo cliente para a propagação de identidade confiável](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html) com as considerações a seguir para o Athena.
+ Em **Tags**, adicione os seguintes pares de chave-valor:
  + **Chave**: **AthenaDriverOidcAppArn**
  + **Valor**: **AccessRoleARN** que foi copiado durante a configuração do perfil de acesso do IAM.
+ Ao [especificar as credenciais da aplicação](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-application-credentials), adicione o ARN para o perfil de aplicação do AWS IAM que você copiou durante a configuração do perfil de aplicação do IAM.
+ Em **Aplicações que podem receber solicitações**, escolha **AWS-Lake-Formation-AWS-Glue-Data-Catalog-<account-id>**.
+ Em **Escopos de acesso para aplicação**, selecione **lakeformation:query** para grupos de trabalho habilitados para IAM, ou **lakeformation:query**, **athena:workgroup:read\_write** e **s3:access\_grants:read\_write** para grupos de trabalho habilitados para o Centro de Identidade.

## Configurar a associação de grupo de trabalho
<a name="using-trusted-identity-propagation-step4"></a>

1. No painel de navegação do console do Athena, escolha **Workgroups** (Grupos de trabalho).

1. Escolha um grupo de trabalho na lista e abra a guia **Tags**. 

1. Escolha **Gerenciar tags** e insira o seguinte:

   1. **Chave** – `AthenaDriverOidcAppArn`

   1. **Valor**: o ARN da aplicação do Centro de Identidade do AWS IAM.

1. Escolha **Salvar**.

Depois que os administradores concluírem a configuração única, eles poderão distribuir detalhes essenciais da conexão aos usuários. Os usuários precisam desses cinco parâmetros obrigatórios para executar workloads SQL:

1. **ApplicationRoleARN**: o ARN do perfil de aplicação

1. **JwtWebIdentityToken**: o token JWT para verificação de identidade

1. **WorkgroupARN**: o ARN do grupo de trabalho do Athena

1. **JwtRoleSessionName**: o nome da sessão para o perfil JWT

1. **CredentialsProvider**: a configuração do provedor de credenciais

**nota**  
Simplificamos a configuração da string de conexão por meio de marcação estratégica. Ao marcar adequadamente o grupo de trabalho do Athena Centro de Identidade do AWS IAM e a aplicação gerenciada pelo cliente do , os administradores eliminam a necessidade de os usuários fornecerem `AccessRoleArn` e `CustomerIdcApplicationArn`. O plug-in lida com isso automaticamente usando o perfil de aplicação para localizar as tags necessárias e recuperar os valores de ARN correspondentes para seu fluxo de trabalho.   
Os administradores ainda podem fazer com que os usuários forneçam `AccessRoleArn` ou `CustomerIdcApplicationArn` na string de conexão ajustando as permissões do perfil de aplicação conforme necessário.

## Execute consultas usando drivers do Athena habilitados para propagação de identidade confiável
<a name="using-trusted-identity-propagation-step5"></a>

Baixe a versão mais recente do driver que deseja usar. Para obter mais informações sobre a instalação do JDBC, consulte [Conceitos básicos do driver JDBC 3.x](jdbc-v3-driver-getting-started.md). Você pode optar por instalar os drivers ODBC com base na plataforma compatível. Para obter mais informações, consulte [Conceitos básicos do driver ODBC 2.x](odbc-v2-driver-getting-started.md). Com base no driver que você deseja usar, forneça os parâmetros listados em:
+ [Parâmetros de conexão do plug-in de autenticação JDBC](jdbc-v3-driver-jwt-tip-credentials.md)
+ [Parâmetros de conexão do plug-in de autenticação ODBC](odbc-v2-driver-jwt-tip.md)

**nota**  
A propagação de identidade confiável com drivers só está disponível após a versão 3.6.0 no JDBC e a versão 2.0.5.0 no ODBC.

## Usar drivers do Athena e a propagação de identidade confiável com o DBeaver
<a name="using-trusted-identity-propagation-step6"></a>

1. Baixe o jar JDBC mais recente com dependências do Athena. Para obter mais informações, consulte [Driver JDBC 3.x do Athena](jdbc-v3-driver.md).

1. Abra a aplicação DBeaver em seu computador.

1. Navegue até o menu **Banco de dados** na parte superior da tela e escolha **Gerenciador de drivers**.

1. Escolha **Novo** e, em seguida, **Bibliotecas**.

1. Adicione o driver mais recente e escolha **Localizar classe**. Isso fornecerá um caminho de arquivo como `com.amazon.athena.jdbc.AthenaDriver`.

1. Abra a guia **Configurações** e forneça os campos a seguir

   1. **Nome do driver**: propagação de identidade confiável JDBC do Athena

   1. **Nome da classe** – `com.amazon.athena.jdbc.AthenaDriver`

   1. Selecione a opção **Sem autenticação**.

1. Escolha **Conectar a um banco de dados** e encontre a propagação de identidade confiável JDBC do Athena. Isso levará você ao URL do JDBC. Para obter mais informações, consulte [Configurar o driver](jdbc-v3-driver-getting-started.md#jdbc-v3-driver-configuring-the-driver).

1. Forneça os seguintes detalhes

   1. **Grupo de trabalho**: o grupo de trabalho no qual você deseja executar consultas. Para obter mais informações sobre grupos de trabalho, consulte [WorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html).

   1. **Região**: a Região da AWS onde as consultas serão executadas. Para conferir a lista de regiões, consulte [Amazon Athena endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/athena.html).

   1. **OutputLocation**: o local no Amazon S3 em que você deseja armazenar os resultados da consulta. Para obter informações sobre o local de saída, consulte [ResultConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_ResultConfiguration.html).

   1. **CredentialsProvider**: insira `JWT_TIP`.

   1. **ApplicationRoleArn**: o ARN do perfil para habilitar `AssumeRoleWithWebIdentity`. Para obter mais informações sobre perfis de ARN, consulte [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) na referência da API do AWS Security Token Service.

   1. **WorkgroupArn**: o ARN do grupo de trabalho no qual as consultas serão executadas. Ele deve ser o mesmo grupo de trabalho fornecido no campo **Grupo de trabalho**. Para obter mais informações sobre grupos de trabalho, consulte [WorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html).

   1. **JwtRoleSessionName**: o nome da sessão quando você usa as credenciais JWT para autenticação. Pode ser qualquer nome de sua escolha.

   1. **JwtWebIdentityToken**: o token JWT obtido de um provedor de identidade federado externo. Esse token é usado para autenticação no Athena.

      ```
      jdbc:athena://Workgroup={{<value>}};Region={{<region>}};OutputLocation={{<location>}};CredentialsProvider=JWT_TIP;ApplicationRoleArn={{<arn>}};WorkgroupArn={{<arn>}};JwtRoleSessionName=JDBC_TIP_SESSION;JwtWebIdentityToken={{<token>}};
      ```

1. Escolha **OK** e feche a janela. O DBeaver começará a carregar seus metadados após essa etapa e você deverá começar a ver seus catálogos, bancos de dados e tabelas sendo preenchidos.
**nota**  
Se a declaração de JTI estiver presente no token e você escolher **Testar conexão** antes de escolher **OK**, isso impedirá que a mesma JTI seja reutilizada para trocas de tokens. Para obter mais informações, consulte [Pré-requisitos e considerações para emissores de tokens confiáveis](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-apps-with-trusted-token-issuer.html#trusted-token-issuer-prerequisites). Para lidar com isso, o JDBC implementa um cache na memória cujo ciclo de vida depende da instância principal do driver. Para ODBC, opcionalmente, existe um [cache de arquivos](odbc-v2-driver-jwt-tip.md#odbc-v2-driver-jwt-tip-file-cache) que permite que credenciais temporárias sejam armazenadas em cache e reutilizadas para reduzir o número de tokens de identidade da web usados durante o ciclo de vida da sessão.

1. Abra o **Editor de consultas SQL** e comece a executar suas consultas. Consulte os [Logs do Cloudtrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) para verificar a identidade propagada do usuário.