Verwenden von Amazon S3 S3-Tabellen mit AWS Analysediensten - 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.

Verwenden von Amazon S3 S3-Tabellen mit AWS Analysediensten

Anmerkung

Die Integration mit AWS Analysediensten für Tabellen-Buckets befindet sich in der Vorschauversion und kann sich ändern.

Um die Tabellen in Ihrem Konto für AWS Analysedienste zugänglich zu machen, integrieren Sie Ihre Tabellen-Buckets mit AWS Glue Data Catalog und. AWS Lake Formation Sie können diese Integration verwenden, um mit Ihren S3 Tables in diesen Diensten zu arbeiten:

Anmerkung

Bei dieser Integration werden die AWS Lake Formation Dienste AWS Glue und verwendet und es können AWS Glue Anforderungs- und Speicherkosten anfallen. Weitere Informationen finden Sie unter AWS Glue -Preisgestaltung.

Für die Ausführung von Abfragen in Ihren S3 Tables fallen zusätzliche Preise an. Weitere Informationen finden Sie unter Preisinformationen für die von Ihnen verwendete Abfrage-Engine.

Funktionsweise der Integration

Wenn Sie in der Konsole einen Tabellen-Bucket erstellen, initiiert Amazon S3 die folgenden Aktionen, um Tabellen-Buckets in der Region, die Sie ausgewählt haben, mit AWS Analysediensten zu integrieren:

  1. Erstellt eine neue AWS Identity and Access Management (IAM) -Servicerolle, die Lake Formation Zugriff auf all Ihre Tabellen-Buckets gewährt.

  2. Mithilfe der Servicerolle registriert Lake Formation Tabellen-Buckets in der aktuellen Region. Auf diese Weise kann Lake Formation den Zugriff, die Berechtigungen und die Steuerung für alle aktuellen und zukünftigen Tabellen-Buckets in dieser Region verwalten.

  3. Fügt den s3tables-Katalog zur aktuellen Region hinzu. AWS Glue Data Catalog Dadurch können all Ihre Tabellen-Buckets, Namespaces und Tabellen in den Datenkatalog übertragen werden.

Anmerkung

Diese Aktionen sind über die Amazon-S3-Konsole automatisiert. Wenn Sie eine programmatische Integration wünschen, müssen Sie diese Aktionen manuell ausführen.

Sie integrieren einmal pro Region. AWS Sobald die Integration abgeschlossen ist, werden alle aktuellen und future Tabellen-Buckets, Namespaces und Tabellen zu den AWS Glue Data Catalog in dieser Region hinzugefügt.

Die folgende Abbildung zeigt, wie s3tablescatalog Tabellen-Buckets, Namespaces und Tabellen in der aktuellen Region automatisch als entsprechende Objekte in den Datenkatalog überträgt. Tabellen-Buckets werden als Unterkataloge übertragen. Namespaces innerhalb eines Tabellen-Buckets werden als Datenbanken in ihren jeweiligen Unterkatalogen übertragen. Tabellen werden als Tabellen in ihren jeweiligen Datenbanken übertragen.

Die Art und Weise, wie Tabellenressourcen dargestellt werden AWS Glue Data Catalog

Voraussetzungen für die Integration

Die folgenden Voraussetzungen sind erforderlich, um S3-Tabellen in AWS Analysedienste zu integrieren.

Integrieren von Tabellen-Buckets in AWS Analysedienste

Diese Integration muss einmal pro AWS Region durchgeführt werden.

  1. Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Tabellen-Buckets aus.

  3. Wählen Sie Tabellen-Bucket erstellen aus.

    Anschließend wird die Seite Tabellen-Bucket erstellen geöffnet.

  4. Geben Sie einen Tabellen-Bucket-Namen ein und achten Sie darauf, dass Integration aktivieren ausgewählt ist.

  5. Wählen Sie Tabellen-Bucket erstellen aus. Amazon S3 versucht daraufhin, Ihre Tabellen-Buckets automatisch in diese Region zu integrieren.

Wenn Sie Tabellen-Buckets zum ersten Mal in eine Region integrieren, erstellt Amazon S3 für Sie eine neue IAM-Servicerolle. Diese Rolle ermöglicht Lake Formation den Zugriff auf alle Tabellen-Buckets in Ihrem Konto und Verbundzugriff auf Ihre Tabellen in AWS Glue Data Catalog.

Um Tabellen-Buckets mit dem zu integrieren AWS CLI

Die folgenden Schritte zeigen, wie Sie die verwenden können, um Tabellen-Buckets AWS CLI zu integrieren. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

  1. Einen Tabellen-Bucket erstellen

    aws s3tables create-table-bucket \ --region us-east-2 \ --name amzn-s3-demo-table-bucket
  2. Erstellen Sie eine IAM-Servicerolle, die Lake Formation Zugriff auf Ihre Tabellenressourcen erteilt.

    1. Erstellen der Rolle

      aws iam create-role \ --role-name S3TablesRoleForLakeFormation \ --assume-role-policy-document file://Role-Trust-Policy.json

      Role-Trust-Policy.json:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPolicy", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }
    2. Fügen Sie der Rolle eine Richtlinie hinzu.

      aws iam put-role-policy \ --role-name S3TablesRoleForLakeFormation \ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json

      GluePolicyLF-.json:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationPermissionsForS3ListTableBucket", "Effect": "Allow", "Action": [ "s3tables:ListTableBuckets" ], "Resource": [ "*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "s3tables:GetTableBucket", "s3tables:CreateNamespace", "s3tables:GetNamespace", "s3tables:ListNamespaces", "s3tables:DeleteNamespace", "s3tables:DeleteTableBucket", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:ListTables", "s3tables:RenameTable", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": [ "arn:aws:s3tables:us-east-1:111122223333:bucket/*" ] } ] }
  3. Erstellen Sie den s3tablescatalog. Dadurch werden Objekte aufgefüllt, die AWS Glue Data Catalog Tabellen-Buckets, Namespaces und Tabellen entsprechen.

    aws glue create-catalog \ --region us-east-1 \ --cli-input-json file://catalog.json

    catalog.json:

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[] } }
  4. Tabellen-Buckets bei Lake Formation registrieren

    aws lakeformation register-resource \ --region us-east-1 \ --cli-input-json file://input.json

    input.json:

    { "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }
  5. Vergewissern Sie sich, dass das hinzugefügt s3tablescatalog wurde, AWS Glue indem Sie den folgenden Befehl verwenden.

    aws glue get-catalog --catalog-id s3tablescatalog

Um auf Ihre Tabellen zugreifen zu können, benötigen einige AWS Analysedienste einen Ressourcenlink, der auf den Namespace Ihrer Tabelle abzielt. Ein Ressourcenlink ist ein Datenkatalogobjekt, das als Alias für oder Zeiger auf eine andere Datenkatalogressource, z. B. eine Datenbank oder Tabelle, fungiert. Der Link wird im Datenkatalog des Kontos oder der Region gespeichert, in dem er erstellt wurde. Weitere Informationen finden Sie unter Funktionsweise von Ressourcenverbindungen im Entwicklerhandbuch zu Lake Formation.

Nach der AWS Integration erstellen Sie Ressourcenlinks, um mit Ihren Tabellen in den folgenden Diensten zu arbeiten:

  • Amazon Redshift

  • Amazon Data Firehose

  • Amazon EMR

Sie erstellen Ressourcenlinks zu Ihren Tabellennamespaces und geben dann den Namen des Links an die AWS Analysedienste an, damit diese mit den verknüpften Tabellen arbeiten können.

Der folgende CLI-Befehl zeigt, wie Sie einen Ressourcenlink erstellen, mit dem Sie Ihre S3-Tabellen mit AWS Analysediensten verbinden können. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

aws glue create-database --region us-east-2 --catalog-id "111122223333" --database-input \ '{ "Name": "resource-link-name", "TargetDatabase": { "CatalogId": "111122223333:s3tablescatalog/amzn-s3-demo-table-bucket", "DatabaseName": "my_namespace" }, "CreateTableDefaultPermissions": [] }'

Lake Formation Berechtigungen für Ihre Tabellenressourcen erteilen

Nach der Integration verwaltet Lake Formation den Zugriff auf Ihre Tabellenressourcen. Lake Formation verwendet ein eigenes Berechtigungsmodell (Lake Formation Formation-Berechtigungen), das eine detaillierte Zugriffskontrolle für Datenkatalogressourcen ermöglicht. Lake Formation erfordert, dass jeder IAM-Prinzipal (Benutzer oder Rolle) autorisiert ist, Aktionen auf von Lake Formation verwalteten Ressourcen durchzuführen. Weitere Informationen finden Sie unter Übersicht über Lake-Formation-Berechtigungen. Bevor Principals auf Tabellen in AWS Analytics-Services zugreifen können, müssen Sie Lake Formation Formation-Berechtigungen für diese Ressourcen gewähren.

Sie müssen Lake Formation Formation-Berechtigungen für Ihre Tabellenressourcen gewähren, um mit ihnen in den folgenden Diensten arbeiten zu können:

  • Amazon Redshift

  • Amazon Data Firehose

  • Amazon QuickSight

  • Amazon Athena

Anmerkung

Für Dienste, die einen Ressourcenlink für den Zugriff auf Ihre Tabellen verwenden, müssen Sie separat Berechtigungen sowohl für den Ressourcenlink als auch für den (verknüpften) Ziel-Namespace gewähren.

Erteilen Sie die Berechtigung für eine Tabelle

Sie können einem Hauptbenutzer die Lake Formation Formation-Berechtigung für eine Tabelle im S3-Tabellen-Bucket entweder über die Lake Formation Formation-Konsole oder erteilen AWS CLI.

Console
  1. Öffnen Sie die AWS Lake Formation Konsole unter https://console.aws.amazon.com/lakeformation/ und melden Sie sich als Data Lake-Administrator an. Weitere Informationen zum Erstellen eines Data-Lake-Administrators finden Sie unter Create a data lake administrator (Data-Lake-Administrator erstellen).

  2. Wählen Sie im Navigationsbereich Data permissions (Datenberechtigungen) und dann Grant (Erteilen) aus.

  3. Führen Sie auf der Seite Grant Permissions unter Principals einen der folgenden Schritte aus:

    • Wählen Sie für Athena oder Amazon Redshift IAM-Benutzer und -Rollen und dann den IAM-Benutzer oder die IAM-Rolle aus, die Abfragen ausführen soll.

    • Wählen Sie für Firehose IAM-Benutzer und -Rollen und dann die Servicerolle aus, die Sie für das Streamen in Tabellen erstellt haben.

    • Wählen Sie für Amazon QuickSight SAML-Benutzer und -Gruppen und geben Sie den ARN Ihres QuickSight Amazon-Administratorbenutzers ein.

  4. Wählen Sie unter LF-Tags or catalog resources (LF-Tags oder Katalogressourcen) die Option Named Data Catalog resources (Benannte Datenkatalogressourcen).

  5. Wählen Sie für Kataloge einen Glue-Datenkatalog aus, den Sie bei der Integration Ihres Tabellen-Buckets erstellt haben. Beispiel, <accoundID>:<s3tablescatalog>/<table-bucket-name>.

  6. Wählen Sie für Databases (Datenbanken) den Bucket-Namespace von S3 Table, den Sie erstellt haben.

  7. Wählen Sie für Tables (Tabellen) die S3 Table, die Sie im S3-Table-Bucket erstellt haben.

  8. Wählen Sie für Table permissions (Tabellenberechtigungen) die Option Super.

  9. Wählen Sie Grant (Erteilen).

CLI
  1. Stellen Sie sicher, dass Sie AWS CLI den Befehl als Data Lake-Administrator ausführen. Weitere Informationen finden Sie unter Einen Data-Lake-Administrator erstellen.

  2. Führen Sie den folgenden Befehl aus, um einem IAM-Prinzipal Lake-Formation-Berechtigungen in der Tabelle im S3-Table-Bucket für den Zugriff auf die Tabelle zu erteilen.

    aws lakeformation grant-permissions \ --region <region e.g. us-east-1> \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "<user or role ARN e.g. arn:aws:iam::<accound-id>:role/ExampleRole>" }, "Resource": { "Table": { "CatalogId": "<account-id>:<s3tablescatalog>/<S3 table bucket name>", "DatabaseName": "<S3 table bucket namespace e.g. test_namespace>", "Name": "<S3 table bucket table name e.g. test_table>" } }, "Permissions": [ "ALL" ] }'

Wenn Sie einen Ressourcenlink für den Zugriff auf Ihre Tabellen verwenden, müssen Sie separat Berechtigungen sowohl für den Ressourcenlink als auch für den (verknüpften) Ziel-Namespace oder die Zieltabelle erteilen. Sie können einer Lake Formation Formation-Hauptberechtigung für einen Ressourcenlink erteilen, der mit Ihrem Tabellennamespace verknüpft ist, entweder über die Lake Formation Formation-Konsole oder AWS CLI.

Console
  1. Öffnen Sie die AWS Lake Formation Konsole unter https://console.aws.amazon.com/lakeformation/ und melden Sie sich als Data Lake-Administrator an. Weitere Informationen zum Erstellen eines Data-Lake-Administrators finden Sie unter Create a data lake administrator (Data-Lake-Administrator erstellen).

  2. Wählen Sie im Navigationsbereich Data permissions (Datenberechtigungen) und dann Grant (Erteilen) aus.

  3. Führen Sie auf der Seite Grant Permissions unter Principals einen der folgenden Schritte aus:

    • Wählen Sie für Athena oder Amazon Redshift IAM-Benutzer und -Rollen und dann den IAM-Benutzer oder die IAM-Rolle aus, die Abfragen ausführen soll.

    • Wählen Sie für Firehose IAM-Benutzer und -Rollen aus und wählen Sie die Servicerolle aus, die Sie für das Streamen in Tabellen erstellt haben

    • Wählen Sie für Amazon QuickSight SAML-Benutzer und -Gruppen und geben Sie den ARN Ihres QuickSight Amazon-Administratorbenutzers ein.

    • Wählen Sie unter LF-Tags or catalog resources (LF-Tags oder Katalogressourcen) die Option Named Data Catalog resources (Benannte Datenkatalogressourcen).

  4. Wählen Sie für Kataloge Ihre Konto-ID, die der Standardkatalog ist.

  5. Wählen Sie für Datenbanken den Ressourcenlink aus, den Sie für Ihren Tabellennamespace erstellt haben.

  6. Wählen Sie für Ressourcenverknüpfungsberechtigungen die Option Describe aus.

  7. Wählen Sie Grant (Erteilen).

CLI
  1. Stellen Sie sicher, dass Sie AWS CLI den Befehl als Data Lake-Administrator ausführen. Weitere Informationen finden Sie unter Einen Data-Lake-Administrator erstellen.

  2. Führen Sie den folgenden Befehl aus, um einem IAM-Prinzipal Lake-Formation-Berechtigungen in der Tabelle im S3-Table-Bucket für den Zugriff auf die Tabelle zu erteilen.

    aws lakeformation grant-permissions \ --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<role-name> \ --resource ResourceLinkResourceArn=arn:aws:lakeformation:<region>:<account-id>:resource-link/<resource-link-id> \ --permissions DESCRIBE