View a markdown version of this page

Conectar-se às sessões do Athena Spark por meio de um endpoint da VPC de interface - Amazon Athena

Conectar-se às sessões do Athena Spark por meio de um endpoint da VPC de interface

No caso de grupos de trabalho com Apache Spark versão 3.5, você pode se conectar diretamente às sessões do Apache Spark por meio de um endpoint da VPC de interface (AWS PrivateLink) na sua nuvem privada virtual (VPC), em vez de se conectar pela internet. Quando você usa um endpoint da VPC de interface, a comunicação entre a VPC e os endpoints da sessão do Athena Spark é totalmente realizada na rede da AWS.

Cada endpoint da VPC é representado por uma ou mais interfaces de rede elástica (ENIs) com endereços IP privados nas sub-redes da VPC. As ENIs na sua VPC não precisam de endereços IP públicos para a comunicação com os endpoints da sessão do Athena Spark.

Para usar os endpoints da sessão do Athena Spark por meio da sua VPC, você precisa se conectar de uma instância que esteja dentro da VPC ou conectar sua rede privada à sua VPC usando Site-to-Site VPN ou AWS Direct Connect.

Endpoints compatíveis

Os seguintes endpoints de sessão do Athena Spark oferecem suporte ao acesso privado por meio do AWS PrivateLink:

Endpoint Descrição Nome do serviço
Spark Connect Endpoint gRPC para execução remota de workload do Spark com.amazonaws.region.athena.sessions
Live UI Monitoramento de tarefas do Spark em tempo real com o navegador com.amazonaws.region.athena.dashboard
Persistent UI Spark History Server para sessões concluídas com.amazonaws.region.athena.persistent-dashboard

Considerações

  • Para garantir que os URLs dos endpoints da sessão sejam acessíveis somente de dentro da sua VPC, você deve chamar GetSessionEndpoint (Spark Connect) ou GetResourceDashboard (Live UI e Persistent UI) por meio do endpoint da VPC da API do Athena. O Athena incorpora a VPC de origem no token de acesso e garante que o endpoint seja acessado da mesma VPC.

  • Um URL do endpoint da sessão gerado de dentro de uma VPC pode ser acessada da mesma VPC ou da internet pública, mas não de uma VPC diferente. Isso dá suporte a fluxos de trabalho comuns em que um token é gerado programaticamente de dentro de uma VPC e o URL do painel resultante é aberto em um navegador local.

  • Um URL de endpoint de sessão gerado pela internet pública não pode ser acessado de uma VPC.

  • As políticas de endpoint da VPC não são compatíveis com os endpoints Athena Spark Connect, Live UI ou Persistent UI.

  • As políticas de endpoint da VPC têm suporte para endpoints da API do Athena. Para controlar quais entidades principais do IAM podem invocar os endpoints da API do Athena, aplique uma política de endpoint da VPC ao seu endpoint da VPC (com.amazonaws.region.athena) da API do Athena.

Criar um endpoint da VPC para endpoints da sessão do Athena Spark

Você pode criar um endpoint da VPC da interface usando o Console de gerenciamento da AWS ou a AWS CLI.

Para criar um endpoint usando a AWS CLI:

aws ec2 create-vpc-endpoint \ --vpc-id <your-vpc-id> \ --service-name com.amazonaws.<region>.athena.sessions \ --vpc-endpoint-type Interface \ --subnet-ids <subnet-id> \ --security-group-ids <security-group-id> \ --private-dns-enabled

Depois de criar o endpoint e habilitar o DNS privado, o URL da sessão do Spark Connect é resolvido automaticamente para o endpoint da VPC. Nenhuma alteração é necessária na configuração do cliente do SparkConnect. Para obter mais informações, consulte Criar um endpoint de interface na documentação do AWS PrivateLink.

Criar uma política de endpoint da VPC para endpoints da sessão do Athena Spark

As políticas de endpoint da VPC não são compatíveis com os endpoints Athena Spark Connect, Live UI ou Persistent UI.

Para controlar o acesso, anexe uma política de endpoint da VPC ao endpoint da API do Athena (com.amazonaws.region.athena). Como os URLs dos endpoints da sessão estão vinculados à VPC a partir da qual foram gerados, controlar quem pode chamar GetSessionEndpoint ou GetResourceDashboard por meio do endpoint da API controla efetivamente o acesso aos endpoints da sessão correspondentes.

Para obter mais informações, consulte Controlar acesso a serviços com endpoints de VPC.

O exemplo a seguir permite que somente um perfil do IAM específico gere URLs do endpoint da sessão:

{ "Statement": [ { "Action": [ "athena:GetSessionEndpoint", "athena:GetResourceDashboard" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::<account-id>:role/<role-name>" } } ] }