Conectividade de VPC para a funcionalidade Tabelas do S3
Todas as tabelas na funcionalidade Tabelas do S3 estão no formato Apache Iceberg e são compostas por dois tipos de objeto do S3. Esses dois tipos de objeto são arquivos de dados que armazenam os dados e arquivos de metadados que rastreiam informações sobre os arquivos de dados em diferentes momentos. Todas as operações de buckets de tabela, namespaces e tabelas (por exemplo, CreateNamespace
, CreateTable
e assim por diante) são roteadas por meio de um endpoint da funcionalidade Tabelas do S3 (s3tables.region.amazonaws.com
) e todas as operações ao nível do objeto que leem ou gravam os arquivos de dados e metadados continuam sendo roteadas por meio de um endpoint de serviço do S3 (s3.region.amazonaws.com
).
Para acessar a funcionalidade Tabelas do S3, o Amazon S3 oferece suporte a dois tipos de endpoint da VPC usando o AWS PrivateLink: endpoints de gateway e endpoints de interface. Um endpoint de gateway é um gateway que você especifica na tabela de rotas para acessar o S3 por meio da VPC pela rede da AWS. Os endpoints de interface estendem a funcionalidade dos endpoints de gateway usando endereços IP privados para rotear solicitações ao Amazon S3 de dentro da VPC on-premises ou de uma VPC em outra Região da AWS usando emparelhamento da VPC ou o AWS Transit Gateway.
Para acessar a funcionalidade Tabelas do S3 de uma VPC, recomendamos criar dois endpoints da VPC (um para o S3 e outro para a funcionalidade Tabelas do S3). Você pode criar um endpoint de gateway ou de interface para rotear operações ao nível do arquivo (objeto) para o S3 e um endpoint de interface para rotear operações ao nível do bucket e da tabela para a funcionalidade Tabelas do S3. Você pode criar e usar endpoints da VPC para solicitações ao nível do arquivo usando o S3. Para ter mais informações, consulte Gateway endpoints no Guia do usuário do AWS PrivateLink.
Para saber mais sobre como usar o AWS PrivateLink para criar e trabalhar com endpoints na funcionalidade Tabelas do S3, consulte os tópicos a seguir. Para criar um endpoint da VPC de interface, consulte Create a VPC endpoint (Criar um endpoint da VPC) no Guia do AWS PrivateLink.
Tópicos
Criar endpoints da VPC para a funcionalidade Tabelas do S3
Quando você cria um endpoint da VPC, a funcionalidade Tabelas do S3 gera dois tipos de nomes DNS específicos do endpoint: regionais e zonais.
-
Um nome DNS regional tem o seguinte formato:
VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com
. Por exemplo, para o ID do endpoint da VPCvpce-1a2b3c4d
, o nome DNS gerado será semelhante avpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com
. -
Um nome DNS zonal tem o seguinte formato:
VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com
. Por exemplo, para o ID do endpoint da VPCvpce-1a2b3c4d-5e6f.
, o nome DNS gerado será semelhante avpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com
.Um nome DNS zonal inclui a zona de disponibilidade. Você pode usar os nomes DNS zonais quando a arquitetura isola zonas de disponibilidade. Os nomes DNS do S3 específicos do endpoint podem ser resolvidos por meio do domínio DNS público do S3.
Você também pode usar as opções de DNS privado para simplificar o roteamento de tráfego do S3 pelos endpoints da VPC e ajudar a aproveitar o caminho de rede de menor custo disponível para a aplicação. O DNS privado mapeia o endpoint público da funcionalidade Tabelas do S3, por exemplo, s3tables.region.amazonaws.com
, para um IP privado na VPC. Você pode usar as opções de DNS privado para rotear o tráfego regional do S3 sem atualizar os clientes do S3 para usar os nomes DNS específicos dos endpoints de interface.
nota
O AWS PrivateLink para Amazon S3 não é compatível com o uso de endpoints de camada dupla do Amazon S3. Consulte mais informações em Using Amazon S3 dual-stack endpoints na Referência de API do Amazon S3.
Acessar tabelas e buckets de tabela por meio de endpoints usando a AWS CLI
Você pode usar a AWS Command Line Interface (AWS CLI) para acessar tabelas e buckets de tabela por meio dos endpoints de interface. Com a AWS CLI, os comandos aws s3
roteiam o tráfego pelo endpoint do Amazon S3. Os comandos aws s3tables
da AWS CLI usam o endpoint da funcionalidade Tabelas do Amazon S3.
Um exemplo de um endpoint da VPC s3tables
é vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com
.
Um endpoint da VPC s3tables
não inclui um nome de bucket. Você pode acessar o endpoint da VPC s3tables
usando os comandos aws s3tables
da AWS CLI.
Um exemplo de um endpoint da VPC s3
é amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com
.
Você pode acessar o endpoint da VPC s3
usando os comandos aws s3
da AWS CLI.
Para acessar tabelas e buckets de tabela por meio de endpoints de interface usando a AWS CLI, use os parâmetros -region
e --endpoint-url
. Para realizar ações ao nível da tabela e do bucket de tabela, use o URL de endpoint da funcionalidade Tabelas do S3. Para realizar ações ao nível do objeto, use o URL de endpoint do Amazon S3.
Nos exemplos a seguir, substitua os espaços reservados para entrada do usuário
por suas próprias informações.
Exemplo 1: usar um URL de endpoint para listar os buckets de tabela de uma conta
aws s3tables list-table-buckets --endpoint https://
vpce-0123456afghjipljb-aac
.s3tables.us-east-1
.vpce.amazonaws.com —regionus-east-1
Exemplo 2: usar um URL de endpoint para listar as tabelas em seu bucket
aws s3tables list-tables --table-bucket-arn arn:aws:s3tables:
us-east-1
:123456789301
:bucket/amzn-s3-demo-bucket
--endpoint https://vpce-0123456afghjipljb-aac
.s3tables.us-east-1
.vpce.amazonaws.com --regionus-east-1
Configurar uma rede de VPC ao usar mecanismos de consulta
Use as etapas a seguir para configurar uma rede de VPC ao usar mecanismos de consulta.
-
Para começar, você pode criar ou atualizar uma VPC. Para obter mais informações, consulte Criar uma VPC.
-
Para operações ao nível da tabela e do bucket de tabela que são roteadas para a funcionalidade Tabelas do S3, crie um endpoint de interface. Para obter mais informações, consulte Acessar um serviço da AWS usando um endpoint da VPC de interface.
-
Para todas as operações ao nível do objeto que são roteadas para o Amazon S3, crie um endpoint de gateway ou um endpoint de interface. Para ter mais informações sobre os endpoints de gateway, consulte Create a gateway endpoint.
-
Depois, configure recursos de dados e inicialize um cluster do Amazon EMR. Para ter mais informações, consulte Getting started with Amazon EMR.
-
Em seguida, você pode enviar uma aplicação do Spark com uma configuração adicional selecionando os nomes DNS no endpoint da VPC. Por exemplo,
spark.sql.catalog.ice_catalog.s3tables.endpoint
ehttps://interface-endpoint.s3tables.
. Para ter mais informações, consulte Submit work to your Amazon EMR cluster.us-east-1
.vpce.amazonaws.com
Restringir o acesso à funcionalidade Tabelas do S3 na rede da VPC
Semelhante às políticas baseadas em recurso, você pode anexar uma política de endpoint ao endpoint da VPC que controla o acesso às tabelas e aos buckets de tabela. No exemplo a seguir, a política de endpoint de interface restringe o acesso somente a buckets de tabela específicos.
{ "Version": "2012-10-17", "Id": "Policy141511512309", "Statement": [{ "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": "s3tables:*", "Effect": "Allow", "Resource": [ "arn:aws:s3tables:
region
:account_id
:bucket/amzn-s3-demo-bucket
", "arn:aws:s3tables:region
:account_id
:bucket/amzn-s3-demo-bucket
/*" ] }] }