Conectividad de VPC para Tablas de S3
Todas las tablas de Tablas de S3 tienen el formato Apache Iceberg y están formadas por dos tipos de objetos de S3. Estos dos tipos de objetos son archivos de datos que almacenan los archivos de datos y metadatos que realizan el seguimiento de la información sobre los archivos de datos en diferentes momentos. Todas las operaciones de bucket de tablas, espacio de nombres y tabla (por ejemplo, CreateNamespace
, CreateTable
, etc.) se enrutan a través de un punto de conexión de Tablas de S3 (s3tables.region.amazonaws.com
) y todas las operaciones en el nivel de objeto que leen o escriben los archivos de datos y metadatos continúan enrutándose a través de un punto de conexión de servicio de S3 (s3.region.amazonaws.com
).
Para acceder a Tablas de S3, Amazon S3 admite dos tipos de puntos de conexión de VPC mediante AWS PrivateLink: puntos de conexión de puerta de enlace y puntos de conexión de interfaz. Un punto de conexión de puerta de enlace es una puerta de enlace que se especifica en la tabla de enrutamiento para acceder a S3 desde la VPC a través de la red de AWS. Los puntos de conexión de la interfaz extienden la funcionalidad de los puntos de conexión de la puerta de enlace a través de direcciones IP privadas para enviar solicitudes a Amazon S3 desde la VPC, el sistema en las instalaciones u otra VPC en otra Región de AWS mediante la interconexión de VPC o AWS Transit Gateway.
Para acceder a Tablas de S3 desde una VPC, recomendamos crear dos puntos de conexión de VPC (uno para S3 y otro para Tablas de S3). Puede crear una puerta de enlace o un punto de conexión de interfaz para enrutar las operaciones en el nivel de archivo (objeto) a S3 y un punto de conexión de interfaz para enrutar las operaciones de nivel de bucket y de tabla a Tablas de S3. Puede crear y usar puntos de conexión de VPC para solicitudes de nivel de archivo mediante S3. Para obtener más información, consulte Puntos de conexión de puerta de enlace en la guía del usuario de AWS PrivateLink.
Para obtener más información sobre cómo utilizar AWS PrivateLink para crear y trabajar con puntos de conexión para Tablas de S3, consulte los siguientes temas. Para crear un punto de conexión de interfaz de VPC, consulte Crear un punto de conexión de VPC en la Guía de AWS PrivateLink.
Temas
Creación de puntos de conexión de VPC para Tablas de S3
Cuando se crea un punto de conexión de VPC, Tablas de S3 genera dos tipos de nombres DNS específicos del punto de conexión: regional y zonal.
-
Un nombre DNS regional tiene el siguiente formato:
VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com
. Por ejemplo, para el ID de punto de conexión de VPCvpce-1a2b3c4d
, el nombre DNS generado será similar avpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com
-
Un nombre DNS zonal tiene el siguiente formato:
VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com
. Por ejemplo, para el ID de punto de conexión de VPCvpce-1a2b3c4d-5e6f.
, el nombre DNS generado será similar avpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com
Un nombre DNS zonal incluye la zona de disponibilidad. Puede utilizar nombres DNS zonales si la arquitectura aísla las zonas de disponibilidad. Los nombres DNS de S3 específicos de los puntos de conexión se pueden resolver desde el dominio DNS público de S3.
También puede utilizar opciones de DNS privado para simplificar el enrutamiento del tráfico de S3 a través de los puntos de conexión de VPC y lo ayudan a aprovechar la ruta de red más económica disponible para la aplicación. El DNS privado asigna el punto de conexión público de Tablas de S3, por ejemplo, s3tables.region.amazonaws.com
, a una IP privada en la VPC. Puede utilizar las opciones de DNS privadas para enrutar el tráfico de S3 regional sin actualizar los clientes de S3 para que utilicen los nombres DNS específicos de los puntos de conexión de interfaz.
nota
AWS PrivateLink para Amazon S3 no admite el uso de puntos de conexión de doble pila de Amazon S3. Para obtener más información, consulte Using Amazon S3 dual-stack endpoints en la Amazon S3 API Reference .
Acceso a buckets de tablas y tablas a través de puntos de conexión mediante la AWS CLI
Puede utilizar la AWS Command Line Interface (AWS CLI) para acceder a los buckets de tablas y a las tablas a través de los puntos de conexión de interfaz. Con la AWS CLI, los comandos de aws s3
enrutan el tráfico a través del punto de conexión de Amazon S3. Los comandos aws s3tables
de la AWS CLI utilizan el punto de conexión de Tablas de Amazon S3.
Un ejemplo de punto de conexión de VPC de s3tables
es vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com
Un punto de conexión de VPC de s3tables
no incluye un nombre de bucket. Puede acceder al punto de conexión de VPC de s3tables
mediante los comandos aws s3tables
de la AWS CLI.
Un ejemplo de punto de conexión de VPC de s3
es amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com
Puede acceder al punto de conexión de VPC de s3
mediante los comandos aws s3
de la AWS CLI.
Para acceder a los buckets de tablas y a las tablas a través de puntos de conexión de interfaz mediante la AWS CLI, utilice los parámetros -region
- y --endpoint-url
. Para realizar acciones de nivel de bucket de tablas y de tabla, utilice la URL del punto de conexión de Tablas de S3. Para realizar acciones de nivel de objeto, utilice la URL del punto de conexión de Amazon S3.
En los siguientes ejemplos, reemplace los marcadores de posición de entrada del usuario
con información propia.
Ejemplo 1: utilizar una URL de punto de conexión para enumerar buckets de tablas en la cuenta
aws s3tables list-table-buckets --endpoint https://
vpce-0123456afghjipljb-aac
.s3tables.us-east-1
.vpce.amazonaws.com —regionus-east-1
Ejemplo 2: utilizar una URL del punto de conexión para enumerar tablas en el 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
Configuración de una red de VPC cuando se utilizan motores de consulta
Realice los pasos siguientes para configurar una red VPC cuando utilice motores de consulta.
-
Para empezar, puede crear o actualizar una VPC. Para obtener más información, consulte Creación de una VPC.
-
Para las operaciones de nivel de tabla y de bucket de tabla que se enruten a Tablas de S3, cree un nuevo punto de conexión de interfaz. Para obtener más información, consulte Acceso a un servicio de AWS a través de un punto de conexión de VPC de interfaz.
-
Para todas las operaciones de nivel de objeto que se enruten a Amazon S3, cree un punto de conexión de puerta de enlace o de interfaz. Para obtener más información sobre los puntos de conexión de puerta de enlace, consulte Creación de un punto de conexión de puerta de enlace.
-
A continuación, configure los recursos de datos e inicie un clúster de Amazon EMR. Para obtener más información, consulte Introducción a Amazon EMR.
-
A continuación, puede enviar una aplicación Spark con una configuración adicional mediante la selección de los nombres DNS desde el punto de conexión de VPC. Por ejemplo,
spark.sql.catalog.ice_catalog.s3tables.endpoint
yhttps://interface-endpoint.s3tables.
. Para obtener más información, consulte Envío de un trabajo al clúster de Amazon EMR.us-east-1
.vpce.amazonaws.com
Restricción del acceso a Tablas de S3 dentro de la red de VPC
Al igual que sucede con las políticas basadas en recursos, puede adjuntar una política de punto de conexión al punto de conexión de VPC que controle el acceso a las tablas y los buckets de tablas. En el siguiente ejemplo, la política de punto de conexión de interfaz restringe el acceso solo a buckets de tablas 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
/*" ] }] }