VPC-Konnektivität für S3 Tables - Amazon Simple Storage Service

VPC-Konnektivität für S3 Tables

Alle Tabellen in S3 Tables haben das Format Apache Iceberg und bestehen aus zwei Arten von S3-Objekten. Bei diesen beiden Objekttypen handelt es sich um Datendateien, in denen die Daten gespeichert werden, und um Metadatendateien, in denen Informationen über die Datendateien zu verschiedenen Zeitpunkten aufgezeichnet werden. Alle Operationen im Zusammenhang mit Tabellen-Buckets, Namespaces und Tabellen (z. B. CreateNamespace, CreateTable usw.) werden über einen S3-Tabellen-Endpunkt (s3tables.region.amazonaws.com) geleitet. Alle Operationen auf Objektebene, die die Daten- und Metadatendateien lesen oder schreiben, werden weiterhin über einen S3-Serviceendpunkt (s3.region.amazonaws.com) geleitet.

Für den Zugriff auf S3 Tables unterstützt Amazon S3 zwei Arten von VPC-Endpunkten mit AWS PrivateLink: Gateway-Endpunkte und Schnittstellenendpunkte. Ein Gateway-Endpunkt ist ein Gateway, das Sie in Ihrer Routentabelle angeben, um von Ihrer VPC über das AWS-Netzwerk auf S3 zuzugreifen. Schnittstellenendpunkte erweitern die Funktionalität von Gateway-Endpunkten, indem sie private IP-Adressen verwenden, um Anforderungen von Ihrer VPC, On-Premises oder von einer VPC in einer anderen AWS-Region mithilfe von VPC-Peering oder AWS Transit Gateway an Amazon S3 weiterzuleiten.

Um von einer VPC aus auf S3 Tables zuzugreifen, empfehlen wir, zwei VPC-Endpunkte zu erstellen (einen für S3 und den anderen für S3 Tables). Sie können entweder ein Gateway oder einen Schnittstellenendpunkt erstellen, um Operationen auf Datei-(Objekt-)Ebene an S3 zu leiten, und Sie können einen Schnittstellenendpunkt erstellen, um Operationen auf Bucket- und Tabellenebene an S3 Tables zu leiten. Mit S3 können Sie VPC-Endpunkte für Anforderungen auf Dateiebene erstellen und verwenden. Weitere Informationen finden Sie unter Gateway-Endpunkte im Benutzerhandbuch zu AWS PrivateLink.

Weitere Informationen zur Verwendung von AWS PrivateLink zum Erstellen von und Arbeiten mit Endpunkten für S3 Tables finden Sie in den folgenden Themen. Informationen zum Erstellen eines VPC-Schnittstellenendpunkts finden Sie unter Erstellen eines VPC-Endpunkts im AWS PrivateLink-Handbuch.

Erstellen von VPC-Endpunkten für S3 Tables

Wenn Sie einen VPC-Endpunkt erstellen, generiert S3 Tables zwei Arten von endpunktspezifischen DNS-Namen: regional und zonengebunden.

  • Ein regionaler DNS-Name hat das folgende Format: VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com. Beispielsweise sieht der generierte DNS-Name für die VPC-Endpunkt-ID vpce-1a2b3c4d in etwa so aus: vpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com.

  • Ein zonengebundener DNS-Name hat das folgende Format: VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com. Beispielsweise sieht der generierte DNS-Name für die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f. in etwa so aus: vpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com.

    Ein zonengebundener DNS-Name beinhaltet Ihre Availability Zone. Sie könnten zonengebundene DNS-Namen verwenden, wenn Ihre Architektur Availability Zones isoliert. Endpunktspezifische S3-DNS-Namen können aus der öffentlichen S3-DNS-Domain aufgelöst werden.

Sie können auch Optionen für private DNS verwenden, um das Routing von S3-Datenverkehr über VPC-Endpunkte zu vereinfachen und den kostengünstigsten Netzwerkpfad für Ihre Anwendung zu nutzen. Das private DNS ordnet den öffentlichen Endpunkt von S3 Tables, beispielsweise s3tables.region.amazonaws.com, einer privaten IP in Ihrer VPC zu. Sie können Optionen für private DNS verwenden, um regionalen S3-Datenverkehr weiterzuleiten, ohne Ihre S3-Clients aktualisieren zu müssen, damit sie die endpunktspezifischen DNS-Namen Ihrer Schnittstellenendpunkte verwenden.

Zugreifen auf Tabellen-Buckets und Tabellen über Endpunkte mit der AWS CLI

Sie können die AWS Command Line Interface (AWS CLI) verwenden, um über die Schnittstellenendpunkte auf Tabellen-Buckets und Tabellen zuzugreifen. Mit der AWS CLI leiten aws s3-Befehle den Datenverkehr durch den Amazon-S3-Endpunkt. Die AWS CLI-Befehle aws s3tables verwenden den Endpunkt Amazon S3 Tables.

Ein Beispiel für einen VPC-Endpunkt des Typs s3tables ist vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com.

Ein VPC-Endpunkt des Typs s3tables enthält keinen Bucket-Namen. Sie können mit den AWS CLI-Befehlen aws s3tables auf den VPC-Endpunkt des Typs s3tables zugreifen.

Ein Beispiel für einen VPC-Endpunkt des Typs s3 ist amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com.

Sie können mit den AWS CLI-Befehlen aws s3 auf den VPC-Endpunkt des Typs s3 zugreifen.

Verwenden Sie die Parameter -region und --endpoint-url, um mit der AWS CLI über Schnittstellenendpunkte auf Tabellen-Buckets und Tabellen zuzugreifen. Verwenden Sie die Endpunkt-URL von S3 Tables, um Aktionen auf Tabellen-Bucket- und Tabellenebene durchzuführen. Verwenden Sie die Endpunkt-URL von Amazon S3, um Aktionen auf Objektebene durchzuführen.

Ersetzen Sie in den folgenden Beispielen die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre eigenen Informationen.

Beispiel 1: Verwenden einer Endpunkt-URL zum Auflisten von Tabellen-Buckets in Ihrem Konto

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

Beispiel 2: Verwenden einer Endpunkt-URL zum Auflisten von Tabellen in Ihrem 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 --region us-east-1

Konfigurieren eines VPC-Netzwerks bei Verwendung von Abfrage-Engines

Führen Sie die folgenden Schritte aus, um ein VPC-Netzwerk zu konfigurieren, wenn Sie Abfrage-Engines verwenden.

  1. Zu Beginn können Sie eine VPC erstellen oder aktualisieren. Weitere Informationen finden Sie unter Erstellen einer VPC.

  2. Erstellen Sie einen neuen Schnittstellenendpunkt für Operationen auf Tabellen- und Tabellen-Bucket-Ebene, die Datenverkehr an S3 Tables leiten. Weitere Informationen finden Sie unter Zugriff auf einen AWS-Service über einen Schnittstellen-VPC-Endpunkt.

  3. Erstellen Sie einen Gateway-Endpunkt oder einen Schnittstellenendpunkt für Operationen auf Objektebene, die Datenverkehr an Amazon S3 leiten. Weitere Informationen zu Gateway-Endpunkten finden Sie unter Gateway-Endpunkte erstellen.

  4. Konfigurieren Sie als Nächstes Ihre Datenressourcen und starten Sie einen Amazon-EMR-Cluster. Weitere Informationen finden Sie unter Erste Schritte mit Amazon EMR.

  5. Sie können dann eine Spark-Anwendung mit einer zusätzlichen Konfiguration übermitteln, indem Sie Ihre DNS-Namen aus dem VPC-Endpunkt auswählen. Zum Beispiel spark.sql.catalog.ice_catalog.s3tables.endpoint und https://interface-endpoint.s3tables.us-east-1.vpce.amazonaws.com. Weitere Informationen finden Sie unter Arbeit an Ihren Amazon-EMR-Cluster übermitteln.

Verwenden der Dual-Stack-Endpunkte für den Zugriff auf Tabellen und Tabellen-Buckets

S3 Tables unterstützt Dual-Stack-Konnektivität für AWS PrivateLink. Dual-Stack-Endpunkte ermöglichen Ihnen, zusätzlich zum IPv4-Protokoll über das Internet Protocol Version 6 (IPv6) auf Buckets von S3 Tables zuzugreifen, je nachdem, was Ihr Netzwerk unterstützt. Über einen Dual-Stack-Endpunkt können Sie auf einen S3-Bucket zugreifen, indem Sie die folgende Namenskonvention verwenden:

s3tables.<region>.api.aws

Im Folgenden finden Sie einige wichtige Informationen, die Sie beachten sollten, bevor Sie versuchen, über IPv6 in Ihrer VPC auf S3-Tabellen und Tabellen-Buckets zuzugreifen:

  • Sowohl für den Client, den Sie für den Zugriff auf Tabellen verwenden, als auch für Ihren S3-Client müssen Dual-Stack aktiviert sein.

  • IPv6-Eingang ist standardmäßig nicht für VPC-Sicherheitsgruppen aktiviert. Um den IPv6-Zugriff zuzulassen, müssen Sie Ihrer Sicherheitsgruppe eine neue Regel hinzufügen, die HTTPS (TCP-Port 443) zulässt. Weitere Informationen finden Sie unter Sicherheitsgruppenregeln konfigurieren im Amazon-EC2-Benutzerhandbuch.

  • Wenn Ihrer VPC keine IPv6 CIDRs zugewiesen sind, müssen Sie Ihrer VPC manuell einen IPv6 CIDR-Block hinzufügen. Weitere Informationen finden Sie unter IPv6-Unterstützung für Ihre VPC hinzufügen im AWS PrivateLink-Benutzerhandbuch.

  • Wenn Sie IAM-Richtlinien zur IP-Adressfilterung verwenden, müssen diese aktualisiert werden, um IPv6-Adressen verarbeiten zu können. Weitere Informationen über die Verwaltung von Zugriffsberechtigungen mit IAM finden Sie unter Identity and Access Management für Amazon S3.

Verwenden Sie den CLI-Beispielbefehl, um einen neuen VPC-Endpunkt zu erstellen, der den Dual-Stack-Endpunkt für S3 Tables verwendet:

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

Weitere Informationen zum Erstellen von VPC-Endpunkten finden Sie unter Erstellen eines Schnittstellenendpunkts im VPC-Benutzerhandbuch.

Wenn Ihr Netzwerk IPv6 unterstützt und Sie Ihre VPC aktualisieren möchten, um IPv6 zu aktivieren, können Sie den folgenden CLI-Befehl verwenden:

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

Beschränken des Zugriffs auf S3 Tables innerhalb des VPC-Netzwerks

Ähnlich wie bei ressourcenbasierten Richtlinien können Sie Ihrem VPC-Endpunkt eine Endpunktrichtlinie zuordnen, die den Zugriff auf Tabellen und Tabellen-Buckets steuert. Im folgenden Beispiel beschränkt die Richtlinie für Schnittstellenendpunkte den Zugriff auf bestimmte Tabellen-Buckets.

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/*" ] } ] }