Connectivité VPC pour S3 Tables - Amazon Simple Storage Service

Connectivité VPC pour S3 Tables

Toutes les tables figurant dans S3 Tables sont au format Apache Iceberg et sont composées de deux types d’objets S3. Ces deux types d’objets sont des fichiers de données qui stockent les fichiers de données et de métadonnées qui effectuent le suivi des informations relatives aux fichiers de données à différents points dans le temps. Toutes les opérations relatives aux compartiments de tables, aux espaces de noms et aux tables (par exemple, CreateNamespace, CreateTable, etc.) sont routées via un point de terminaison S3 Tables (s3tables.region.amazonaws.com) et toutes les opérations au niveau des objets qui lisent ou écrivent les fichiers de données et de métadonnées continuent d’être routées via un point de terminaison de service S3 (s3.region.amazonaws.com).

Pour accéder à S3 Tables, Amazon S3 prend en charge deux types de points de terminaison de VPC en utilisant AWS PrivateLink : les points de terminaison de passerelle et les points de terminaison d’interface. Un point de terminaison de passerelle est une passerelle que vous spécifiez dans votre table de routage pour accéder à S3 depuis votre VPC via le réseau AWS. Les points de terminaison d’interface étendent la fonctionnalité des points de terminaison de passerelle en utilisant des adresses IP privées pour acheminer les demandes vers Amazon S3 depuis votre VPC, sur site ou depuis un VPC dans une autre Région AWS à l’aide d’un appairage de VPC ou d’une AWS Transit Gateway.

Pour accéder à S3 Tables depuis un VPC, nous vous recommandons de créer deux points de terminaison de VPC (un pour S3 et l’autre pour S3 Tables). Vous pouvez créer une passerelle ou un point de terminaison d’interface pour router les opérations de niveau fichier (objet) vers S3 et un point de terminaison d’interface pour router les opérations de niveau compartiment ou table vers S3 Tables. Vous pouvez créer et utiliser des points de terminaison de VPC pour les demandes de niveau fichier à l’aide de S3. Pour plus d’informations, consultez Points de terminaison de passerelle dans le Guide de l’utilisateur AWS PrivateLink.

Pour en savoir plus sur l’utilisation d’AWS PrivateLink pour créer et utiliser des points de terminaison pour S3 Tables, consultez les rubriques suivantes. Pour créer un point de terminaison d’interface de VPC, consultez Création d’un point de terminaison de VPC dans le Guide AWS PrivateLink.

Création de points de terminaison de VPC pour S3 Tables

Lorsque vous créez un point de terminaison de VPC, S3 Tables génère deux types de noms DNS spécifiques au point de terminaison : régional et zonal.

  • Un nom DNS régional a le format suivant : VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com. Par exemple, pour l’ID de point de terminaison de VPC vpce-1a2b3c4d, le nom DNS généré sera similaire à vpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com.

  • Un nom DNS zonal a le format suivant : VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com. Par exemple, pour l’ID de point de terminaison de VPC vpce-1a2b3c4d-5e6f., le nom DNS généré sera similaire à vpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com.

    Un nom DNS zonal inclut votre zone de disponibilité. Vous pouvez utiliser des noms DNS zonaux si votre architecture isole les zones de disponibilité. Les noms DNS S3 spécifiques au point de terminaison peuvent être résolus depuis le domaine DNS public S3.

Vous pouvez également utiliser les options de DNS privé pour simplifier le routage du trafic S3 vers les points de terminaison de VPC et tirer parti du chemin réseau le plus économique disponible pour votre application. Le réseau DNS privé mappe le point de terminaison public de S3 Tables, par exemple s3tables.region.amazonaws.com, à une adresse IP privée dans votre VPC. Vous pouvez utiliser les options de DNS privé pour router le trafic S3 régional sans mettre à jour vos clients S3 pour utiliser les noms DNS spécifiques aux points de terminaison de vos points de terminaison d’interface.

Accès aux compartiments de tables et aux tables via des points de terminaison à l’aide de l’AWS CLI

Vous pouvez utiliser l’AWS Command Line Interface (AWS CLI) pour accéder aux compartiments de tables et aux tables via les points de terminaison d’interface. Avec l’AWS CLI, les commandes aws s3 routent le trafic via le point de terminaison Amazon S3. Les commandes AWS CLI aws s3tables utilisent le point de terminaison Amazon S3 Tables.

vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com est un exemple de point de terminaison de VPC s3tables

Un point de terminaison de VPC s3tables n’inclut pas de nom de compartiment. Vous pouvez accéder au point de terminaison de VPC s3tables à l’aide des commandes AWS CLI aws s3tables.

amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com est un exemple de point de terminaison de VPC s3

Vous pouvez accéder au point de terminaison de VPC s3 à l’aide des commandes AWS CLI aws s3.

Pour accéder aux compartiments de tables et aux tables via les points de terminaison d’interface à l’aide de l’AWS CLI, utilisez les paramètres -region et --endpoint-url. Pour effectuer des actions de niveau compartiment ou table, utilisez l’URL du point de terminaison S3 Tables. Pour effectuer des actions de niveau objet, utilisez l’URL du point de terminaison Amazon S3.

Dans les exemples suivants, remplacez les espaces réservés à la saisie utilisateur par vos propres informations.

Exemple 1 : utilisation d’une URL de point de terminaison pour répertorier les compartiments de tables dans votre compte

aws s3tables list-table-buckets --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com —region us-east-1

Exemple 2 : utilisation d’une URL de point de terminaison pour répertorier les tables dans votre compartiment

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 --region us-east-1

Configuration d’un réseau VPC lors de l’utilisation de moteurs de requête

Effectuez les étapes suivantes pour configurer un réseau VPC lorsque vous utilisez des moteurs de requête.

  1. Pour commencer, vous pouvez créer ou mettre à jour un VPC. Pour plus d’informations, consultez Création d’un VPC.

  2. Pour les opérations de niveau table ou compartiment de tables qui sont routées vers S3 Tables, créez un nouveau point de terminaison d’interface. Pour plus d’informations, consultez Accès à un service AWS à l’aide du point de terminaison d’un VPC d’interface.

  3. Pour toutes les opérations de niveau objet qui sont routées vers Amazon S3, créez un point de terminaison de passerelle ou un point de terminaison d’interface. Pour plus d’informations sur les points de terminaison de passerelle, consultez Création d’un point de terminaison de passerelle.

  4. Configurez ensuite vos ressources de données et lancez un cluster Amazon EMR. Pour plus d’informations, consultez Démarrer avec Amazon EMR.

  5. Vous pouvez ensuite soumettre une application Spark avec une configuration supplémentaire en sélectionnant vos noms DNS depuis le point de terminaison de VPC. Par exemple, spark.sql.catalog.ice_catalog.s3tables.endpoint et https://interface-endpoint.s3tables.us-east-1.vpce.amazonaws.com. Pour plus d’informations, consultez Soumettre un travail à votre cluster Amazon EMR.

Utilisation des points de terminaison à double pile pour accéder aux tables et compartiments de table

S3 Tables prend en charge la connectivité à double pile pour AWS PrivateLink. Les points de terminaison à double pile vous permettent d’accéder aux compartiments de table S3 à l’aide du Protocole Internet version 6 (IPv6), en plus du protocole IPv4, selon ce que votre réseau prend en charge. Vous pouvez accéder à un compartiment S3 via un point de terminaison à double pile en utilisant la convention de dénomination suivante :

s3tables.<region>.api.aws

Voici quelques éléments à connaître avant de tenter d’accéder à des tables S3 et à des compartiments de table via IPv6 dans votre VPC :

  • La double pile doit être activée sur le client que vous utilisez pour accéder aux tables et sur votre client S3.

  • L’IPv6 entrant n’est pas activé par défaut pour les groupes de sécurité VPC. Pour autoriser l’accès IPv6, vous devez ajouter une nouvelle règle autorisant le protocole HTTPS (port TCP 443) à votre groupe de sécurité. Pour plus d’informations, consultez Configuration des règles des groupes de sécurité dans le Guide de l’utilisateur Amazon EC2

  • Si aucun CIDR IPv6 n’est attribué au VPC, vous devez ajouter manuellement un bloc CIDR IPv6 à votre VPC. Pour plus d’informations, consultez Ajout de la prise en charge d’IPv6 pour votre VPC dans le Guide de l’utilisateur AWS PrivateLink

  • Si vous utilisez des politiques IAM de filtrage d’adresses IP, elles doivent être mises à jour pour gérer les adresses IPv6. Pour plus d’informations sur la gestion des autorisations d’accès avec IAM, consultez Gestion des identités et des accès pour Amazon S3.

Pour créer un nouveau point de terminaison d’un VPC qui utilise le point de terminaison à double pile pour S3 Tables, utilisez un exemple de commande de l’interface de ligne de commande :

aws ec2 create-vpc-endpoint \ --vpc-id vpc-id \ --service-name com.amazonaws.aws-region.s3tables \ --subnet-ids subnet-1 subnet-2 \ --vpc-endpoint-type Interface \ --ip-address-type dualstack \ --dns-options "DnsRecordIpType=dualstack" \ --security-group-ids sg-id \ --region aws-region

Pour plus d’informations sur la création de point de terminaisons d’un VPC, consultez Création d’un point de terminaison d’un VPC dans le Guide de l’utilisateur VPC.

Si votre réseau prend en charge IPv6 et que vous souhaitez mettre à jour votre VPC pour activer IPv6, vous pouvez utiliser la commande d’interface de ligne de commande suivante :

aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-id \ --ip-address-type dualstack \ --dns-options "DnsRecordIpType=dualstack" \ --region aws-region

Restriction de l’accès à S3 Tables au sein du réseau VPC

Comme pour les politiques basées sur les ressources, vous pouvez attacher une politique de points de terminaison à votre point de terminaison de VPC qui contrôle l’accès aux tables et aux compartiments de tables. Dans l’exemple suivant, la politique de point de terminaison d’interface restreint l’accès à des compartiments de tables spécifiques uniquement.

JSON
{ "Version":"2012-10-17", "Id": "Policy141511512309", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": "s3tables:*", "Effect": "Allow", "Resource": [ "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket", "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/*" ] } ] }