Zugreifen auf Amazon S3 S3-Tabellen über den AWS GlueIceberg REST Endpunkt - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugreifen auf Amazon S3 S3-Tabellen über den AWS GlueIceberg REST Endpunkt

Sobald Ihre S3-Tabellen-Buckets in den integriert sind, können AWS Glue Data Catalog Sie den AWS GlueIceberg REST Endpunkt verwenden, um von Apache Iceberg -kompatiblen Clients aus eine Verbindung zu Ihren S3-Tabellen herzustellen, z. B. PyIceberg oder. Spark Der AWS Glue Iceberg REST Endpunkt implementiert die Iceberg RESTCatalog Open API-Spezifikation, die eine standardisierte Schnittstelle für die Interaktion mit Iceberg Tabellen bietet. Um über den Endpunkt auf S3-Tabellen zuzugreifen, müssen Sie Berechtigungen mithilfe einer Kombination aus IAM-Richtlinien und AWS Lake Formation Zuschüssen konfigurieren. In den folgenden Abschnitten wird erklärt, wie Sie den Zugriff einrichten, einschließlich der Erstellung der erforderlichen IAM-Rolle, der Definition der erforderlichen Richtlinien und der Einrichtung von Lake Formation Formation-Berechtigungen für den Zugriff auf Datenbank- und Tabellenebene.

Eine Komplettlösung zur Verwendung PyIceberg finden Sie unter Zugreifen auf Daten in Amazon S3-Tabellen PyIceberg mithilfe des AWS GlueIceberg REST Endpunkts.

Erstellen Sie eine IAM-Rolle für Ihren Kunden

Um über AWS Glue Endpoints auf Tabellen zuzugreifen, müssen Sie eine IAM-Rolle mit Berechtigungen für AWS Glue und Lake Formation Formation-Aktionen erstellen. In diesem Verfahren wird erklärt, wie Sie diese Rolle erstellen und ihre Berechtigungen konfigurieren.

  1. Öffnen Sie unter https://console.aws.amazon.com/iam/ die IAM-Konsole.

  2. Wählen Sie im linken Navigationsbereich Richtlinien aus.

  3. Wählen Sie im Richtlinien-Editor Richtlinie erstellen und JSON aus.

  4. Fügen Sie die folgende Inline-Richtlinie hinzu, die Zugriffsberechtigungen AWS Glue und Lake Formation Formation-Aktionen gewährt:

    JSON
  5. Nachdem Sie die Richtlinie erstellt haben, erstellen Sie eine IAM-Rolle und wählen Sie Benutzerdefinierte Vertrauensrichtlinie als Vertrauenswürdigen Entitätstyp aus.

  6. Geben Sie Folgendes für die benutzerdefinierte Vertrauensrichtlinie ein.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/<Admin_role>" }, "Action": "sts:AssumeRole", "Condition": {} } ] }

Definieren Sie den Zugriff in Lake Formation

Lake Formation bietet eine detaillierte Zugriffskontrolle für Ihre Data-Lake-Tabellen. Als Sie Ihren S3-Bucket in den integriert haben AWS Glue Data Catalog, wurden Ihre Tabellen automatisch als Ressourcen in Lake Formation registriert. Um auf diese Tabellen zugreifen zu können, müssen Sie Ihrer IAM-Identität zusätzlich zu den IAM-Richtlinienberechtigungen bestimmte Lake Formation Formation-Berechtigungen gewähren.

In den folgenden Schritten wird erklärt, wie Sie Lake Formation Formation-Zugriffskontrollen anwenden, damit Ihr Iceberg Client eine Verbindung zu Ihren Tabellen herstellen kann. Sie müssen sich als Data Lake-Administrator anmelden, um diese Berechtigungen anwenden zu können.

Erlauben Sie externen Engines den Zugriff auf Tabellendaten

In Lake Formation müssen Sie den vollständigen Tabellenzugriff für externe Engines aktivieren, um auf Daten zugreifen zu können. Dadurch können Drittanbieteranwendungen temporäre Anmeldeinformationen von Lake Formation abrufen, wenn sie eine IAM-Rolle verwenden, die über volle Berechtigungen für die angeforderte Tabelle verfügt.

Öffnen Sie die Lake Formation Formation-Konsole unter https://console.aws.amazon.com/lakeformation/.

  1. Öffnen Sie die Lake Formation Formation-Konsole unter https://console.aws.amazon.com/lakeformation/und melden Sie sich als Data Lake-Administrator an.

  2. Wählen Sie im Navigationsbereich unter Administration die Option Anwendungsintegrationseinstellungen aus.

  3. Wählen Sie Erlauben Sie externen Engines den Zugriff auf Daten an Amazon S3 S3-Standorten mit vollständigem Tabellenzugriff. Wählen Sie dann Speichern.

Lake Formation Berechtigungen für Ihre Tabellenressourcen erteilen

Als Nächstes gewähren Sie Lake Formation Formation-Berechtigungen für die IAM-Rolle, die Sie für Ihren IceBerg-kompatiblen Client erstellt haben. Diese Berechtigungen ermöglichen es der Rolle, Tabellen in Ihrem Namespace zu erstellen und zu verwalten. Sie müssen sowohl Berechtigungen auf Datenbank- als auch auf Tabellenebene bereitstellen. Weitere Informationen finden Sie unter Erteilen der Lake Formation Formation-Berechtigung für eine Tabelle oder Datenbank.

Richten Sie Ihre Umgebung für die Verwendung des Endpunkts ein

Nachdem Sie die IAM-Rolle mit den für den Tabellenzugriff erforderlichen Berechtigungen eingerichtet haben, können Sie sie verwenden, um Iceberg Clients von Ihrem lokalen Computer aus auszuführen, indem Sie sie AWS CLI mit dem folgenden Befehl mit Ihrer Rolle konfigurieren:

aws sts assume-role --role-arn "arn:aws:iam::<accountid>:role/<glue-irc-role>" --role-session-name <glue-irc-role>

Um über den AWS Glue REST Endpunkt auf Tabellen zuzugreifen, müssen Sie einen Katalog in Ihrem Iceberg -kompatiblen Client initialisieren. Diese Initialisierung erfordert die Angabe benutzerdefinierter Eigenschaften, einschließlich Sigv4-Eigenschaften, der Endpunkt-URI und des Warehouse-Standorts. Geben Sie diese Eigenschaften wie folgt an:

  • Sigv4-Eigenschaften — Sigv4 muss aktiviert sein, der Signaturname lautet glue

  • Lagerort — Dies ist Ihr Tabellen-Bucket, angegeben in diesem Format: <accountid>:s3tablescatalog/<table-bucket-name>

  • Endpunkt-URI — Informationen zum AWS Glue regionsspezifischen Endpunkt finden Sie im Referenzhandbuch für Service-Endpunkte

Das folgende Beispiel zeigt, wie ein Katalog initialisiert wird. pyIceberg

rest_catalog = load_catalog( s3tablescatalog, **{ "type": "rest", "warehouse": "<accountid>:s3tablescatalog/<table-bucket-name>", "uri": "https://glue.<region>.amazonaws.com/iceberg", "rest.sigv4-enabled": "true", "rest.signing-name": "glue", "rest.signing-region": region } )

Weitere Informationen zur AWS GlueIceberg REST Endpunktimplementierung finden Sie unter Herstellen einer Verbindung zum Datenkatalog mithilfe des AWS GlueIceberg REST Endpunkts im AWS Glue Benutzerhandbuch.