

# Criar uma conexão de fonte de dados
<a name="connect-to-a-data-source"></a>

Para usar um conector de fonte de dados do Athena, você cria a conexão AWS Glue que armazena as informações de conexão sobre o conector e sua fonte de dados. Ao criar a conexão, você informa à fonte de dados um nome que usará para fazer referência à sua fonte de dados em suas consultas SQL.

É possível criar e configurar uma conexão de fonte de dados no Athena usando o [console](connect-to-a-data-source-console-steps.md) ou as operações da API [CreateDataCatalog](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateDataCatalog.html).

**Topics**
+ [Permissões para criar e usar uma fonte de dados no Athena](connect-to-a-data-source-permissions.md)
+ [Usar o console do Athena para conectar a uma fonte de dados](connect-to-a-data-source-console-steps.md)
+ [Usar o AWS Serverless Application Repository para implantar um conector de fonte de dados](connect-data-source-serverless-app-repo.md)
+ [Criar uma VPC para um conector de fonte de dados ou conexão do AWS Glue](athena-connectors-vpc-creation.md)
+ [Extrair imagens do ECR para sua conta da AWS](pull-ecr-customer-account.md)
+ [Registrar sua conexão como um Glue Data Catalog](register-connection-as-gdc.md)
+ [Habilitar consultas federadas entre contas](xacct-fed-query-enable.md)
+ [Atualizar um conector de fonte de dados](connectors-updating.md)

# Permissões para criar e usar uma fonte de dados no Athena
<a name="connect-to-a-data-source-permissions"></a>

Para criar e usar uma fonte de dados, você precisa dos seguintes conjuntos de permissões.
+ AmazonAthenaFullAccess, que fornece acesso total ao Amazon Athena e acesso limitado às dependências necessárias para permitir a consulta, a gravação de resultados e o gerenciamento de dados. Para obter mais informações, consulte [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html) no Guia de referência de política gerenciada da AWS.
+ Permissões para chamar a API CreateDataCatalog. Essas permissões só são necessárias quando você cria uma fonte de dados que se integra às conexões do Glue. Para obter mais informações sobre o exemplo de política, consulte [Permissões necessárias para criar o conector e o catálogo do Athena](athena-catalog-access.md).
+ Se quiser usar o controle de acesso refinado do Lake Formation, além das permissões listadas acima, você também precisará das seguintes permissões.

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lakeformation:RegisterResource",
          "iam:ListRoles",
          "glue:CreateCatalog",
          "glue:GetCatalogs",
          "glue:GetCatalog"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

------

# Usar o console do Athena para conectar a uma fonte de dados
<a name="connect-to-a-data-source-console-steps"></a>

Você pode usar o console do Athena para criar e configurar uma conexão de fonte de dados.

**Criar uma conexão com uma fonte de dados**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação do console não estiver visível, escolha o menu de expansão à esquerda.  
![\[Escolha o menu de expansão.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/nav-pane-expansion.png)

1. No painel de navegação, escolha **Fontes de dados e catálogos**.

1. Na página **Fontes de dados e catálogos**, escolha **Criar fonte de dados**.

1. Em **Choose a data source** (Escolher uma origem dos dados), escolha a origem dos dados que o Athena deve consultar, considerando as seguintes diretrizes:
   + Escolha uma opção de conexão que corresponda à sua fonte de dados. O Athena tem conectores de origem dos dados pré-criados que você pode configurar para origens que incluem o MySQL, o Amazon DocumentDB e o PostgreSQL.
   + Escolha **S3 - AWS Glue Data Catalog** se quiser consultar dados no Amazon S3 e não estiver usando um metastore do Apache Hive ou uma das outras opções de origem dos dados de consulta federada nesta página. O Athena usa o AWS Glue Data Catalog para armazenar metadados e informações de esquemas para origens dos dados no Amazon S3. Essa é a opção padrão (não federada). Para obter mais informações, consulte [Usar o AWS Glue Data Catalog para se conectar aos seus dados](data-sources-glue.md). Para ver as etapas de uso desse fluxo de trabalho, consulte [Registrar e usar catálogos de dados no Athena](gdc-register.md).
   + Selecione **S3 - Apache Hive metastore** para consultar conjuntos de dados no Amazon S3 que usam um metastore do Apache Hive. Para obter mais informações sobre essa opção, consulte [Conectar o Athena a um metastore do Apache Hive](connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore.md).
   + Escolha **Custom or shared connector** (Conector personalizado ou compartilhado) se quiser criar seu próprio conector de origem dos dados para usar com o Athena. Para obter informações sobre como escrever um conector de origem dos dados, consulte [Desenvolver um conector de fonte de dados com uso do SDK do Athena Query Federation](connect-data-source-federation-sdk.md).

1. Escolha **Próximo**.

1. Na página **Inserir detalhes da fonte de dados**, em **Nome da fonte de dados**, insira o nome gerado automaticamente ou um nome exclusivo que deseja usar em suas instruções SQL ao consultar a fonte de dados usando o Athena. O nome pode ter até 127 caracteres e deve ser exclusivo na sua conta. Ele não poderá ser alterado após a criação. Os caracteres válidos são a-z, A-Z, 0-9, \$1 (sublinhado), @ (arroba) e - (hífen). Os nomes `awsdatacatalog`, `hive`, `jmx` e `system` são reservados pelo Athena e não podem ser usados como nomes de origens dos dados. 

1. Se a fonte de dados escolhida tiver integração com conexões do AWS Glue.

   1. Em **obter detalhes da conexão do AWS Glue**, insira as informações necessárias. Uma conexão que contém as propriedades necessárias para se conectar a uma fonte de dados específica. As propriedades necessárias variam de acordo com o tipo de conexão. Para obter mais informações sobre propriedades relacionadas ao seu conector, consulte [Conectores de fonte de dados disponíveis](connectors-available.md). Para obter informações sobre propriedades adicionais de conexão, consulte [Propriedades de conexão do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html) no *Guia do usuário do AWS Glue*.
**nota**  
Quando você atualiza as propriedades de conexão do Glue, o conector Lambda precisa ser reiniciado para obter as propriedades atualizadas. Para fazer isso, edite as propriedades do ambiente e salve-as sem alterar efetivamente nada. 
Quando você atualizar uma conexão do Glue, as propriedades a seguir não serão atualizadas automaticamente na função do Lambda correspondente. Você deverá atualizar manualmente sua função do Lambda para essas propriedades.  
Configuração de VPC do Lambda: `security_group_ids`, `subnet_ids`
Perfil de execução do Lambda: `spill_bucket`, `secret_name`, `spill_kms_key_id`

   1. Em **Perfil do IAM de execução do Lambda**, escolha uma das seguintes opções:
      + **Criar e usar um novo perfil de execução**: (Padrão) o Athena cria um perfil de execução que será usado para acessar recursos no AWS Lambda em seu nome. O Athena exige esse perfil para criar sua fonte de dados federada.
      + **Usar um perfil de execução existente**: use essa opção para escolher um perfil de execução existente. Para essa opção, escolha o perfil de execução que deseja usar no menu suspenso **Perfil de execução**.

1. Se a fonte de dados escolhida não tiver integração com conexões do AWS Glue. 

   1. Em **Lambda function** (Função do Lambda), escolha **Create Lambda function** (Criar função do Lambda). A página de função do conector escolhido será aberta no console do AWS Lambda. A página inclui informações detalhadas sobre o conector.

   1. Em **Application settings** (Configurações da aplicação), leia atentamente a descrição de cada configuração de aplicação e insira os valores de acordo com os seus requisitos.

      As configurações de aplicação exibidas variam dependendo do conector da sua origem dos dados. As configurações mínimas necessárias são:
      + **AthenaCatalogName**: um nome para a função do Lambda, em letras minúsculas, que indica a origem dos dados desejada, como `cloudwatchlogs`.
      + **SpillBucket**: um bucket do Amazon S3 em sua conta para armazenar os dados que excedem os limites de tamanho de resposta da função do Lambda.
**nota**  
Dados derramados não serão reutilizados em execuções subsequentes e poderão ser excluídos com segurança. O Athena não os exclui para você. Para gerenciar esses objetos, considere adicionar uma política de ciclo de vida de objetos que exclua dados antigos do seu bucket de derramamento do Amazon S3. Para obter mais informações, consulte [Gerenciar o ciclo de vida dos objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) no Guia do usuário do Amazon S3.

   1. Selecione **Reconheço que este aplicativo cria perfis personalizadas do IAM e políticas de recursos**. Para obter mais informações, escolha o link **Informações**.

   1. Escolha **Implantar**. Quando a implantação for concluída, a função do Lambda será exibida seção **Resources** (Recursos) no console do Lambda.

      Depois de implantar o conector da origem dos dados em sua conta, você poderá conectar o Athena a ele.

   1. Retorne à página **Enter data source details** (Inserir detalhes da origem dos dados) do console do Athena.

   1. Na seção **Connection details** (Detalhes da conexão), escolha o ícone de atualização ao lado da caixa de pesquisa **Select or enter a Lambda function** (Selecionar ou inserir uma função do Lambda).

   1. Escolha o nome da função que você acabou de criar no console do Lambda. O ARN da função do Lambda é exibido.

1. (Opcional) Para **Tags**, adicione pares de chave-valor a associar com essa origem dos dados. Para obter mais informações sobre tags, consulte [Marcar recursos do Athena com tags](tags.md).

1. Escolha **Próximo**.

1. Na página **Revisar e criar**, revise os detalhes da fonte de dados. Para fazer alterações, escolha **Editar**. 

1. Leia as informações em **O Athena criará recursos em sua conta**. Se você concordar, selecione **Reconheço que o Athena criará recursos em meu nome**.

1. Escolha **Criar fonte de dados**. O **Athena** criará os seguintes recursos para você.
   + Perfil do IAM de execução do Lambda
   + Conexão do AWS Glue (somente se a fonte de dados for compatível com conexões do AWS Glue)
   + Função do Lambda

A seção **Data source details** (Detalhes da origem dos dados) da página de sua origem dos dados mostra informações sobre o novo conector. Agora é possível usar o conector em suas consultas do Athena. 

Para obter informações sobre como usar conectores de dados em consultas, acesse [Executar consultas federadas](running-federated-queries.md).

# Usar o AWS Serverless Application Repository para implantar um conector de fonte de dados
<a name="connect-data-source-serverless-app-repo"></a>

Para implantar um conector de fonte de dados, você pode usar o [AWS Serverless Application Repository](https://aws.amazon.com/serverless/serverlessrepo/) em vez de usar uma conexão do AWS Glue.

**nota**  
Recomendamos que você só use o SAR se tiver um conector personalizado ou precisar usar um conector mais antigo. Caso contrário, recomenda-se usar o console do Athena. 

É possível recorrer ao AWS Serverless Application Repository para encontrar o conector que deseja usar, fornecer os parâmetros que o conector exige e implantar o conector em sua conta. Depois de implantar o conector, você usa o console do Athena para disponibilizar a origem dos dados para o Athena.

## Implantar o conector em sua conta
<a name="connect-data-source-serverless-app-repo-deploying"></a>

**Como usar o AWS Serverless Application Repository para implantar um conector de fonte de dados em sua conta**

1. Faça login no Console de gerenciamento da AWS e abra o **Repositório de aplicativos sem servidor**.

1. No painel de navegação, escolha **Aplicativos disponíveis**.

1. Selecione a opção **Show apps that create custom IAM roles or resource policies** (Mostrar aplicações que criam funções personalizadas do IAM ou políticas de recursos).

1. Na caixa de pesquisa, digite o nome do conector. Para obter uma lista de conectores de dados predefinidos do Athena, consulte [Conectores de fonte de dados disponíveis](connectors-available.md).

1. Escolha o nome do conector. Ao escolher um conector, a página **Application details** (Detalhes da aplicação) da função do Lambda no console do AWS Lambda é aberta.

1. No lado direito da página de detalhes, em **Application settings** (Configurações da aplicação), preencha as informações necessárias. As configurações mínimas necessárias são mostradas a seguir. Para obter informações sobre as opções configuráveis restantes de conectores de dados criados pelo Athena, consulte o tópico [Available Connectors](https://github.com/awslabs/aws-athena-query-federation/wiki/Available-Connectors) (Conectores disponíveis) no GitHub.
   + **AthenaCatalogName**: um nome para a função do Lambda em letras minúsculas que indica a origem dos dados desejada, como `cloudwatchlogs`.
   + **SpillBucket**: especifique um bucket do Amazon S3 em sua conta para receber os dados de qualquer carga útil de resposta grande que exceda os limites de tamanho de resposta da função do Lambda.

1. Selecione **I acknowledge that this app creates custom IAM roles and resource policies** (Reconheço que este aplicativo cria funções personalizadas do IAM e políticas de recursos). Para obter mais informações, escolha o link **Informações**.

1. Na parte inferior direita da página **Configurações da aplicação** selecione **Implantar**. Quando a implantação for concluída, a função do Lambda será exibida seção **Resources** (Recursos) no console do Lambda.

## Disponibilizar o conector no Athena
<a name="connect-data-source-serverless-app-repo-making-the-connector-available-in-athena"></a>

Agora você já pode usar o console do Athena para disponibilizar o conector da origem dos dados para o Athena.

**Para disponibilizar o conector da origem dos dados para o Athena**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação do console não estiver visível, escolha o menu de expansão à esquerda.  
![\[Escolha o menu de expansão.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/nav-pane-expansion.png)

1. No painel de navegação, escolha **Fontes de dados e catálogos**.

1. Na página **Fontes de dados e catálogos**, escolha **Criar fonte de dados**.

1. Em **Choose a data source** (Escolher uma origem dos dados), escolha a origem dos dados para a qual você criou um conector no AWS Serverless Application Repository. Este tutorial usa o **Amazon CloudWatch Logs** como origem dos dados federada.

1. Escolha **Próximo**.

1. Na página **Enter data source details** (Inserir detalhes da origem dos dados), em **Data source name** (Nome da origem dos dados), insira o nome que deseja usar em suas instruções SQL ao consultar a origem dos dados pelo Athena (por exemplo, `CloudWatchLogs`). O nome pode ter até 127 caracteres e deve ser exclusivo na sua conta. Ele não poderá ser alterado após a criação. Os caracteres válidos são a-z, A-Z, 0-9, \$1 (sublinhado), @ (arroba) e - (hífen). Os nomes `awsdatacatalog`, `hive`, `jmx` e `system` são reservados pelo Athena e não podem ser usados como nomes de origens dos dados. 

1. Na seção **Connection details** (Detalhes da conexão), use a caixa **Select or enter a Lambda function** (Selecionar ou inserir uma função do Lambda) para escolher o nome da função que você acabou de criar. O ARN da função do Lambda é exibido.

1. (Opcional) Para **Tags**, adicione pares de chave-valor a associar com essa origem dos dados. Para obter mais informações sobre tags, consulte [Marcar recursos do Athena com tags](tags.md).

1. Escolha **Próximo**.

1. Na página **Review and create** (Revisar e criar), analise os detalhes da origem dos dados e escolha **Create data source** (Criar origem dos dados). 

1. A seção **Data source details** (Detalhes da origem dos dados) da página de sua origem dos dados mostra informações sobre o novo conector. Agora é possível usar o conector em suas consultas do Athena. 

   Para obter informações sobre como usar conectores de dados em consultas, acesse [Executar consultas federadas](running-federated-queries.md).

# Criar uma VPC para um conector de fonte de dados ou conexão do AWS Glue
<a name="athena-connectors-vpc-creation"></a>

Alguns conectores de fonte de dados do Athena e conexões do AWS Glue exigem uma VPC e um grupo de segurança. Este tópico mostra como criar uma VPC com uma sub-rede e um grupo de segurança para a VPC. Como parte desse processo, você recupera os IDs da VPC, da sub-rede e do grupo de segurança criados. Esses IDs são necessários quando você configura sua conexão do AWS Glue ou o conector da fonte de dados para uso com o Athena.

**Para criar uma VPC para um conector de origem de dados do Athena**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Escolha **Criar VPC**.

1. Na página **Criar VPC**, em **Configurações da VPC**, para **Recursos a criar**, escolha **VPC e mais**.

1. Em **Geração automática da etiqueta de nome**, para **Gerar automaticamente**, insira o valor que será usado para gerar as tags de nome para todos os recursos na VPC.

1. Escolha **Criar VPC**.

1. Quando o processo for concluído, escolha **Visualizar VPC**.

1. Na seção **Details** (Detalhes), em **VPC ID** (ID da VPC), copie o ID da VPC para referência posterior.

Agora você já pode recuperar o ID de sub-rede da VPC que acabou de criar.

**Para recuperar o ID de sub-rede da VPC**

1. No painel de navegação do console da VPC, escolha **Subnets** (Sub-redes).

1. Selecione o nome de uma sub-rede cuja coluna **VPC** tenha o ID da VPC que você anotou.

1. Na seção **Details** (Detalhes), em **Subnet ID** (ID da sub-rede), copie o ID da sub-rede para referência posterior.

Em seguida, crie um grupo de segurança para a VPC.

**Para criar um grupo de segurança para a VPC**

1. No painel de navegação do console da VPC, escolha **Security** (Segurança), **Security groups** (Grupos de segurança).

1. Escolha **Criar grupo de segurança**.

1. Na página **Create Security Group** (Criar grupo de segurança), insira as informações a seguir:
   + Em **Security group name** (Nome do grupo de segurança), insira um nome para o grupo de segurança.
   + Em **Description** (Descrição), insira uma descrição para o grupo de segurança. É necessária uma descrição.
   + Em **VPC**, escolha o ID da VPC criada por você para o conector da fonte de dados.
   + Em **Inbound rules** (Regras de entrada) e **Outbound rules** (Regras de saída), adicione todas as regras de entrada e saída que precisar.

1. Escolha **Criar grupo de segurança**.

1. Na página **Details** (Detalhes) do grupo de segurança, copie o **Security group ID** (ID do grupo de segurança) para referência posterior.

## Considerações importantes sobre o uso de VPC com os conectores do Athena
<a name="vpc-warning-instructions"></a>

As instruções a seguir se aplicam a todos os conectores do Athena, pois todos os conectores podem utilizar VPC.

**nota**  
Ao usar uma VPC com conexões do AWS Glue, será necessário configurar os seguintes endpoints do PrivateLink:  
Amazon S3
AWS Glue
AWS Secrets Manager

Como alternativa, você pode usar o acesso público à Internet, embora isso não seja recomendado por motivo de segurança.

**Atenção**  
O uso do acesso público à Internet pode expor seus recursos a riscos de segurança adicionais. É altamente recomendável usar endpoints do PrivateLink para aumentar a segurança da configuração da VPC.

# Extrair imagens do ECR para sua conta da AWS
<a name="pull-ecr-customer-account"></a>

As funções do Lambda do conector do Athena Federation usam as imagens de contêiner que estão armazenadas no repositórios do Amazon ECR gerenciados pelo Athena. Para realizar verificações de segurança nessas imagens de contêiner, você deve primeiro copiá-las para um repositório do Amazon ECR em sua conta. Esta seção fornece instruções passo a passo sobre como copiar uma imagem para o repositório e configurar a função do Lambda para usá-la.

## Pré-requisitos
<a name="pull-ecr-customer-account-prereq"></a>
+ Um conector do Athena Federation: o conector pode ser criado por meio de qualquer fonte, desde que use uma imagem de contêiner.
**nota**  
Para verificar a implantação de imagens, verifique a guia Imagem no Lambda do conector do Athena Federation
+ Docker instalado e em execução
+ AWS CLI instalada
+ Credenciais de conta com permissões de extração apropriadas

## Como transferir uma imagem
<a name="image-transfer-procedure"></a>

1. Localize o URI da imagem do Lambda do conector do Athena Federation  
**Example**  

   ```
   account_id_1.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.15.1
   ```

1. Gere um token de autenticação do Docker para a conta gerenciada pelo Athena:

   ```
   aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin athena-managed-registry
   ```

   Em que:
   + *regionID* é região da implantação (p. ex., us-east-1)
   + *athena-managed-registry* é a parte do registro do URI da imagem (por exemplo, account\$1id\$11.dkr. ecr.us-east-1.amazonaws.com)

1. Extraia a imagem da conta gerenciada pelo Athena:

   ```
   docker pull athenaImageURI
   ```

1. Autentique o Docker para o registro:

   ```
   aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin customer-registry
   ```

   Onde *customer-registry* é o registro ECR (p. ex., account\$1id\$12.dkr.ecr.us-east-1.amazonaws.com)

1. Marque a imagem extraída para a repositório:

   ```
   docker tag athenaImageURI yourImageURI
   ```

1. Extraia a imagem para o repositório:

   ```
   docker push yourImageURI
   ```

1. Atualize o conector do Athena Federation:

   1. Navegue até a função do Lambda

   1. Selecione **Implantar nova imagem**

   1. Insira o URI da nova imagem

   A imagem do conector federado do Athena agora se encontra em sua conta, o que permite que você execute varreduras de CVE na imagem.

# Registrar sua conexão como um Glue Data Catalog
<a name="register-connection-as-gdc"></a>

Após criar sua fonte de dados, você poderá usar o console do Athena para registrar sua conexão como um Glue Data Catalog. Após o registro, você poderá gerenciar seu catálogo de dados federados e habilitar um controle de acesso refinado usando o Lake Formation. Para obter mais informações, consulte [Creating a federated catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/create-fed-catalog-data-source.html).

É possível registrar os seguintes conectores para integração com o AWS Glue a fim de oferecer um controle de acesso refinado.
+ Redshift
+ BigQuery
+ DynamoDB (pré-visualização)
+ Snowflake (pré-visualização)
+ MySQL
+ PostgreSQL
+ AWS CMDB
+ Timestream
+ Azure Data Lake Storage
+ Azure Synapse
+ IBM Db2
+ IBM Db2 AS/400 (Db2 iSeries)
+ DocumentDB
+ Google Cloud Storage
+ HBase
+ OpenSearch
+ Oracle
+ SAP HANA
+ SQL Server
+ TPC-DS
+ Cloudera Hive
+ CloudWatch
+ Cloudwatch Metrics
+ Teradata
+ Vertica

## Pré-requisitos
<a name="register-connection-as-gdc-pre"></a>

Antes de começar, conclua os pré-requisitos a seguir.
+ Certifique-se de que você tenha os perfis e as permissões necessários para registrar locais. Para obter mais informações, consulte [Requisitos para funções usadas para registrar locais](https://docs.aws.amazon.com/lake-formation/latest/dg/registration-role.html) no Guia do desenvolvedor do AWS Lake Formation.
+ Certifique-se de que você tenha os perfis necessários para o Lake Formation. Para obter mais informações, consulte [Prerequisites for connecting the Data Catalog to external data sources](https://docs.aws.amazon.com/lake-formation/latest/dg/federated-catalog-data-connection.html) no Guia do desenvolvedor do AWS Lake Formation.
+ O perfil que você registrar no Glue deverá ter as permissões listadas no exemplo a seguir.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetObject"
              ],
              "Resource": [
      "arn:aws:s3:::amzn-s3-demo-bucket/spill-prefix/*",
      "arn:aws:s3:::amzn-s3-demo-bucket/spill-prefix"
              ]
          },
          {
              "Sid": "lambdainvoke",
              "Effect": "Allow",
              "Action": "lambda:InvokeFunction",
              "Resource": "arn:aws:lambda:us-east-1:111122223333:function:lambda_function_name"
          },
          {
              "Sid": "gluepolicy",
              "Effect": "Allow",
              "Action": "glue:*",
              "Resource": [
              "arn:aws:glue:us-east-1:111122223333:connection/<connection_name>",
      "arn:aws:glue:us-east-1:111122223333:catalog"
              ]
          }
      ]
  }
  ```

------
+ Você é responsável por determinar e gerenciar o acesso adequado aos dados. [Com controles de acesso refinados em consultas federadas, é recomendável usar a política gerenciada AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html). Se quiser usar sua própria política, você deverá garantir que os usuários que executam consultas federadas não tenham acesso aos seguintes recursos.
  + `lambda:InvokeFunction` no conector Lambda especificado na conexão do Glue
  + Acesso à localização do bucket de derramamento no IAM
  + Acesso à conexão do Glue associada ao seu catálogo federado
  + Perfil do Lake Formation no IAM

## Registrar sua conexão usando o console
<a name="register-connection-as-gdc-steps"></a>

**Para registrar sua conexão como um Glue Data Catalog**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. No painel de navegação, escolha **Fontes de dados e catálogos**.

1. Na lista **Fontes de dados**, escolha a fonte de dados que você criou para abrir a página **Detalhes da fonte de dados**. 

1. Escolha **Comece a usar o AWS Lake Formation**.
**nota**  
Após escolher essa opção, você deverá gerenciar sua função do Lambda por conta própria. O Athena não excluirá sua função do Lambda.

1. Em **Nome do catálogo de dados**, forneça um nome exclusivo para seu catálogo.

1. Escolha o **Perfil do IAM do Lake Formation** que concede permissão ao Lake Formation para invocar a função do Lambda. Certifique-se de que seu perfil tenha as permissões [deste exemplo](#register-connection-as-gdc-pre).

1. Na caixa de texto, digite **confirmar** para excluir a fonte de dados do Athena e substituí-la por um registro do catálogo de dados do Glue.
**nota**  
Essa ação excluirá sua fonte de dados do Athena e criará um novo Glue Data Catalog em seu lugar. Após a conclusão desse processo, talvez seja necessário atualizar as consultas que acessam a fonte de dados para fazer referência ao catálogo de dados do Glue recém-criado.

1. Escolha **Criar catálogo e acessar o Lake Formation**. Isso vai abrir o console do Lake Formation, onde você poderá gerenciar o catálogo e conceder permissões aos usuários em catálogos, bancos de dados e tabelas.

# Habilitar consultas federadas entre contas
<a name="xacct-fed-query-enable"></a>

A consulta federada permite consultar as origens de dados que não são do Amazon S3 usando os conectores de origem de dados implantados no AWS Lambda. O recurso de consulta federada entre contas permite que a função do Lambda e as origens de dados a serem consultadas estejam localizadas em contas diferentes.

**nota**  
Só use esse método se você não tiver registrado sua fonte de dados federada com o AWS Glue Data Catalog. Se você tiver registrado sua fonte de dados no AWS Glue Data Catalog, use o modelo de recursos e permissões entre contas do AWS Glue Data Catalog. Para mais informações, consulte [Concessão de acesso entre contas](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html) no *Guia do usuário do AWS Glue*.

Como administrador de dados, você pode habilitar consultas federadas entre contas compartilhando seu conector de dados com uma conta de analista de dados ou, como analista de dados, usando um ARN do Lambda compartilhado de um administrador de dados para adicionar à sua conta. Quando alterações de configuração são feitas em um conector na conta de origem, a configuração atualizada é aplicada automaticamente às instâncias compartilhadas do conector nas outras contas de usuário.

## Considerações e limitações
<a name="xacct-fed-query-enable-considerations-and-limitations"></a>
+ O recurso de consulta federada entre contas está disponível para conectores de dados de metastore não Hive que usam uma origem de dados baseada no Lambda.
+ O recurso não está disponível para o tipo de origem de dados AWS Glue Data Catalog. Para obter informações sobre o acesso entre contas aos AWS Glue Data Catalogs, consulte [Configurar o acesso entre contas aos catálogos de dados do AWS Glue](security-iam-cross-account-glue-catalog-access.md).
+ Se a resposta da função do Lambda do conector excede o limite de tamanho de resposta do Lambda de 6 MB, o Athena automaticamente criptografa, agrupa e distribui a resposta para um bucket do Amazon S3 que você configurou. A entidade que executa a consulta do Athena deve ter acesso ao local do vazamento para que o Athena leia os dados vazados. Recomendamos definir uma política de ciclo de vida do Amazon S3 para excluir objetos do local do vazamento, pois os dados não serão necessários após a conclusão da consulta. 
+ Não há suporte para o uso de consultas federadas em Regiões da AWS. 

## Permissões obrigatórias
<a name="xacct-fed-query-enable-required-permissions"></a>

Para configurar as permissões necessárias, ações devem ser feitas na Conta A (*444455556666*) e na Conta B (*111122223333*).

### Ações para a Conta A
<a name="xacct-fed-query-enable-required-permissions-account-a"></a>

Para que a Conta A de administrador de dados compartilhe uma função do Lambda com a Conta B de analista de dados, a Conta B requer a função invoke do Lambda e acesso ao bucket de vazamento. Consequentemente, a Conta A deve adicionar uma [política baseada em recursos](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) à função do Lambda e acesso do [principal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html) ao bucket de vazamento no Amazon S3.

1. A política a seguir concede as permissões da função invoke do Lambda à Conta B em uma função do Lambda na conta A.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CrossAccountInvocationStatement",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/username"
                   ]
               },
               "Action": "lambda:InvokeFunction",
               "Resource": "arn:aws:lambda:us-east-1:444455556666:function:lambda-function-name"
           }
       ]
   }
   ```

------

1. A política a seguir concede acesso ao bucket de vazamento a entidade principal na conta B. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
               "AWS": ["arn:aws:iam::111122223333:user/username"]
               },
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket"
                ],
               "Resource": [
                   "arn:aws:s3:::spill-bucket",
                   "arn:aws:s3:::spill-bucket/*"
               ]
           }
        ]
    }
   ```

------

1. Se a função do Lambda criptografar o bucket de vazamento com uma chave AWS KMS, em vez de usar a criptografia padrão oferecida pelo SDK da federação, a política de chave AWS KMS na conta A deverá conceder acesso ao usuário na Conta B, como no exemplo a seguir.

   ```
   { 
       "Sid": "Allow use of the key", 
       "Effect": "Allow", 
       "Principal": 
       { 
          "AWS": ["arn:aws:iam::account-B-id:user/username"] 
       }, 
       "Action": [ "kms:Decrypt" ], 
       "Resource": "*" // Resource policy that gets placed on the KMS key. 
    }
   ```

### Ações para a Conta B
<a name="xacct-fed-query-enable-required-permissions-account-b"></a>

Para que a Conta A compartilhe seu conector com a Conta B, a Conta B deve criar uma função chamada `AthenaCrossAccountCreate-account-A-id`, que a Conta A assume chamando a ação de API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) do AWS Security Token Service.

1. Use o console do IAM ou a AWS CLI para criar o perfil `AthenaCrossAccountCreate-account-A-id` como um perfil de política de confiança personalizada. Uma política de confiança personalizada delega acesso e permite que outras pessoas realizem ações na sua conta da AWS. Para ver as instruções passo a passo, consulte [Criar um perfil usando políticas de confiança personalizadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) no *Guia de Usuário do IAM*.

   A relação de confiança deve ter um objeto de entidade principal no qual a chave é `AWS` e o valor é o ARN da Conta A, como no exemplo a seguir.

   ```
   ...
   "Principal": 
   { 
      "AWS": ["arn:aws:iam::account-A-id:user/username"]
   }, 
   ...
   ```

1. Também na Conta B, crie uma política como a descrita a seguir que permita a ação `CreateDataCatalog`. 

   ```
   {
    "Effect": "Allow",
    "Action": "athena:CreateDataCatalog",
    "Resource": "arn:aws:athena:*:account-B-id:datacatalog/*"
   }
   ```

1. Adicione ao perfil `AthenaCrossAccountCreate-account-A-id` que você criou usando a Conta B a política que permite a ação `CreateDataCatalog`. 

## Compartilhar uma origem de dados na conta A com a conta B
<a name="xacct-fed-query-enable-sharing-a-lambda-data-source-in-account-a-with-account-b"></a>

Após aplicar as permissões, você poderá usar a página **Fontes de dados e catálogos** no console do Athena para compartilhar um conector de dados em sua conta (Conta A) com outra conta (Conta B). A conta A mantém total controle e propriedade do conector. Quando a conta A faz alterações de configuração no conector, a configuração atualizada se aplica ao conector compartilhado na conta B.

**nota**  
Você só pode compartilhar uma fonte de dados do tipo Lambda e não pode compartilhar fontes de dados que usam conexões do AWS Glue. Para obter mais informações, consulte [Conectores de fonte de dados disponíveis](connectors-available.md).

**Para compartilhar uma origem de dados do Lambda na conta A com a conta B**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação do console não estiver visível, escolha o menu de expansão à esquerda.  
![\[Escolha o menu de expansão.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/nav-pane-expansion.png)

1. Escolha **Fontes de dados e catálogos**.

1. Na página **Fontes de dados e catálogos**, escolha o link do conector que deseja compartilhar.

1. Na página de detalhes de uma fonte de dados do Lambda, no menu **Ações**, escolha a opção **Compartilhar** no canto superior direito.

1. Na caixa de diálogo **Compartilhar *Lambda-name* com outra conta?**, insira as informações necessárias.
   + Para **Data source name** (Nome da origem dos dados), insira o nome da origem de dados copiada como você deseja que apareça na outra conta.
   + Para **Account ID**, (ID da conta), insira o ID da conta com a qual deseja compartilhar sua origem dos dados (neste caso, Conta B).

1. Selecione **Share**. O conector de dados compartilhados que você especificou é criado na Conta B. As alterações de configuração do conector na Conta A se aplicam ao conector na Conta B.

## Adicionar uma origem de dados compartilhada da conta A à conta B
<a name="xacct-fed-query-enable-add-a-shared-lambda-function-arn-to-your-account"></a>

Como analista de dados, você pode receber, de um administrador de dados, o ARN de um conector para adicionar à sua conta. Você pode usar a página **Fontes de dados e catálogos** do console do Athena para adicionar o ARN do Lambda fornecido pelo administrador à sua conta.

**Para adicionar o Lambda ARN de um conector de dados compartilhado à sua conta**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação não estiver visível, escolha o menu de expansão à esquerda.

1. Escolha **Fontes de dados e catálogos**.

1. Na página **Fontes de dados e catálogos**, escolha **Criar fonte de dados**.

1. Na página **Escolha uma fonte de dados**, escolha **Conector personalizado ou compartilhado**.

1. Escolha **Próximo**.

1. Na página **Inserir detalhes da fonte de dados**, na seção **Detalhes da conexão**, em **Selecionar ou inserir uma função do Lambda**, insira o ARN do Lambda da conta A.

1. Escolha **Próximo**.

1. Na página **Revisar e criar**, escolha **Criar fonte de dados**.

## Solução de problemas
<a name="xacct-fed-query-enable-troubleshooting"></a>

Se você receber uma mensagem de erro informando que a Conta A não tem permissões para assumir uma função na Conta B, certifique-se de que o nome da função criada na Conta B esteja escrito corretamente e ela que tenha a política adequada anexada.

# Atualizar um conector de fonte de dados
<a name="connectors-updating"></a>

O Athena recomenda atualizar regularmente os conectores da fonte de dados que você usa para a versão mais recente para aproveitar os novos recursos e aprimoramentos. A atualização um conector de fonte de dados inclui as etapas a seguir:

# Conexões do Glue (recomendação)
<a name="connectors-updating-gc"></a>

## Localizar a versão mais recente do Athena Query Federation
<a name="connectors-updating-finding-the-latest-version"></a>

O número da versão mais recente dos conectores de fonte de dados do Athena corresponde à versão mais recente do Athena Query Federation. Em certos casos, as versões do GitHub podem ser um pouco mais recentes do que as disponíveis no AWS Serverless Application Repository (SAR).

**Para localizar o número da versão mais recente do Athena Query Federation**

1. Acesse o URL do GitHub [https://github.com/awslabs/aws-athena-query-federation/releases/latest](https://github.com/awslabs/aws-athena-query-federation/releases/latest).

1. Observe o número da versão no título da página principal no seguinte formato:

   **Versão v** *year*.*week\$1of\$1year*.*iteration\$1of\$1week* **do Athena Query Federation **

   Por exemplo, o número da **versão v2023.8.3 do Athena Query Federation** é 2023.8.3.

## Descobrir a versão do conector
<a name="connectors-find-version"></a>

Siga estas etapas para determinar qual é a versão do conector que você está usando no momento.

**Para descobrir a versão do conector**

1. Na página do console do Lambda de sua aplicação do Lambda, escolha a guia **Imagem**.

1. Na guia Imagem, localize o URI da imagem. O URI tem este formato:

   ```
   Image_location_account.dkr.ecr.us-west-2.amazonaws.com/athena-federation-repository:Version
   ```

1. O número da versão no URI da imagem tem o formato `year.week_of_year.iteration_of_week` (por exemplo, `2021.42.1`). Esse número representa a versão do conector.

## Implantar uma nova versão do conector
<a name="connectors-deploy-new-version"></a>

Siga as etapas a seguir para implantar uma nova versão do conector.

**Para implantar uma nova versão de conector**

1. Encontre a versão desejada seguindo o procedimento para encontrar a versão mais recente do Athena Query Federation.

1. Na função do Lambda do conector federado, localize o ImageURI e atualize a tag para a versão desejada. Por exemplo:

   From:

   ```
   509399631660.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.15.1
   ```

   Para:

   ```
   509399631660.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.26.1
   ```

**nota**  
Se sua versão atual for anterior à 2025.15.1, preste atenção a essas mudanças importantes:  
O nome do repositório foi atualizado para `athena-federation-repository`
Para versões anteriores a essa atualização, a substituição de comando pode não estar definida. Você deve configurá-la como o manipulador composto.

# Conexões legadas
<a name="connectors-updating-legacy"></a>

## Localizar a versão mais recente do Athena Query Federation
<a name="connectors-updating-finding-the-latest-version"></a>

O número da versão mais recente dos conectores de fonte de dados do Athena corresponde à versão mais recente do Athena Query Federation. Em certos casos, as versões do GitHub podem ser um pouco mais recentes do que as disponíveis no AWS Serverless Application Repository (SAR).

**Para localizar o número da versão mais recente do Athena Query Federation**

1. Acesse o URL do GitHub [https://github.com/awslabs/aws-athena-query-federation/releases/latest](https://github.com/awslabs/aws-athena-query-federation/releases/latest).

1. Observe o número da versão no título da página principal no seguinte formato:

   **Versão v** *year*.*week\$1of\$1year*.*iteration\$1of\$1week* **do Athena Query Federation **

   Por exemplo, o número da **versão v2023.8.3 do Athena Query Federation** é 2023.8.3.

## Localizar e anotar os nomes dos recursos
<a name="connectors-updating-finding-and-noting-resource-names"></a>

Na preparação para o upgrade, é necessário localizar e anotar as seguintes informações:

1. O nome da função do Lambda para o conector.

1. As variáveis de ambiente da função do Lambda.

1. O nome da aplicação do Lambda, que gerencia a função do Lambda para o conector.

**Para localizar nomes de recursos no console do Athena**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação do console não estiver visível, escolha o menu de expansão à esquerda.  
![\[Escolha o menu de expansão.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/nav-pane-expansion.png)

1. No painel de navegação, escolha **Fontes de dados e catálogos**.

1. Na coluna **Nome da fonte de dados**, escolha o link para a fonte de dados do conector.

1. Na seção **Detalhes da fonte de dados**, em **Função do Lambda**, escolha o link para a função do Lambda.  
![\[Escolha o link da função do Lambda.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/connectors-updating-1.png)

1. Na página **Funções**, na coluna **Nome da função**, anote o nome da função do conector.  
![\[Observe o nome da função.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/connectors-updating-2.png)

1. Escolha o link do nome da função.

1. Na seção **Visão geral da função**, escolha a guia **Configuração**.

1. No painel à esquerda, escolha **Variáveis de ambiente**.

1. Na seção **Variáveis de ambiente**, anote as chaves e os valores correspondentes.

1. Mova a barra de rolagem até o topo da página.

1. Na mensagem **Esta função pertence a uma aplicação. Clique aqui para gerenciá-la**, escolha o link **Clique aqui**.

1. Na página **serverlessrepo-*your\$1application\$1name***, anote o nome da aplicação sem **serverlessrepo**. Por exemplo, se o nome da aplicação for **serverlessrepo-DynamoDbTestApp**, o nome da aplicação será **DynamoDbTestApp**.

1. Permaneça na página do console do Lambda de sua aplicação e continue com as etapas descritas em **Localizar a versão do conector que você está usando**.

## Localizar a versão do conector que está sendo usado
<a name="connectors-updating-finding-the-version-that-you-are-using"></a>

Siga estas etapas para localizar a versão do conector que você está usando.

**Para localizar a versão do conector que você está usando**

1. Na página do console do Lambda de sua aplicação do Lambda, escolha a guia **Implantações**.

1. Na guia **Implantações**, expanda o **Modelo do SAM**.

1. Pesquise **CodeUri**.

1. No campo **Chave**, em **CodeUri**, localize a seguinte string:

   ```
   applications-connector_name-versions-year.week_of_year.iteration_of_week/hash_number
   ```

   O exemplo a seguir mostra uma string do conector do CloudWatch:

   ```
   applications-AthenaCloudwatchConnector-versions-2021.42.1/15151159...
   ```

1. Registre o valor de *year*.*week\$1of\$1year*.*iteration\$1of\$1week* (por exemplo, **2021.42.1**). Esta é a versão de seu conector.

## Implantar uma nova versão do seu conector
<a name="connectors-updating-deploying-the-new-version"></a>

Siga as etapas a seguir para implantar uma nova versão do conector.

**Para implantar uma nova versão de seu conector**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação do console não estiver visível, escolha o menu de expansão à esquerda.  
![\[Escolha o menu de expansão.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/nav-pane-expansion.png)

1. No painel de navegação, escolha **Fontes de dados e catálogos**.

1. Na página **Fontes de dados e catálogos**, escolha **Criar fonte de dados**.

1. Escolha a fonte de dados que deseja atualizar e escolha **Próximo**.

1. Na seção **Detalhes da conexão**, escolha **Criar função do Lambda**. Isso abre o console do Lambda, no qual você poderá implantar a aplicação atualizada.  
![\[Página do conector no console do AWS Lambda.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/connectors-updating-3.png)

1. Como você não está de fato criando uma nova fonte de dados, pode fechar a guia do console do Athena.

1. Na página do console do Lambda do conector, execute as seguintes etapas:

   1. Verifique se removeu o prefixo **serverlessrepo-** do nome da aplicação e copie o nome da aplicação no campo **Nome da aplicação**.

   1. Copie o nome da função do Lambda no campo **AthenaCatalogName**. Alguns conectores chamam esse campo de **LambdaFunctionName**.

   1. Copie as variáveis de ambiente que você registrou nos campos correspondentes.

1. Selecione a opção **Eu reconheço que esta aplicação cria perfis do IAM personalizados e políticas de recursos** e escolha **Implantar**.

1. Para verificar se a aplicação foi atualizada, escolha a guia **Implantações**.

   A seção **Histórico de implantações** mostra que sua atualização foi concluída.  
![\[Atualização do conector concluída.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/connectors-updating-4.png)

1. Para confirmar o novo número da versão, você pode expandir **Modelo do SAM** como antes, localizar o **CodeUri** e verificar o número da versão do conector no campo **Chave**.

Agora é possível usar seu conector atualizado para criar consultas federadas do Athena.