Wie kann ich Lake-Formation-Berechtigungsfehler in AWS Glue beheben?

Lesedauer: 6 Minute
0

Mein AWS-Glue-Crawler- oder ETL-Auftrag schlägt mit einem Fehler im Zusammenhang mit AWS Lake Formation fehl. Aber ich habe die erforderlichen AWS-Identity-and-Access-Management-Berechtigungen (IAM) konfiguriert.

Kurzbeschreibung

Für den Zugriff auf Ressourcen wie den AWS Glue Data Catalog und Amazon Simple Storage Service (Amazon S3) benötigen Sie die richtigen IAM-Richtlinien und Lake-Formation-Berechtigungen. Wenn eine IAM-Rolle, die Ihrem Amazon-S3-Crawler- oder ETL-Auftrag zugeordnet ist, nicht über ausreichende Lake-Formation-Berechtigungen verfügt, erhalten Sie eine Fehlermeldung. Sie benötigen die richtigen Lake-Formation-Berechtigungen, um in und aus den folgenden Ressourcen lesen und schreiben zu können:

  • Datenbank und Tabelle im Datenkatalog
  • Zugrunde liegende Daten in Amazon S3

Lösung

Zugriffsprobleme beim Erstellen einer Datenkatalogdatenbank

Wenn Probleme bei der Datenkatalog-Datenbankerstellung den Fehler verursachen, wird eine Fehlermeldung ähnlich der folgenden angezeigt:

Insufficient Lake Formation permission(s): Required Create Database on Catalog

Um diesen Fehler zu beheben, verwenden Sie die Data-Lake-Administratorrolle, um auf die Lake-Formation-Konsole zuzugreifen. Erteilen Sie dann der entsprechenden IAM-Rolle die Berechtigung Datenbank erstellen.

  1. Öffnen Sie die AWS-Lake-Formation-Konsole.
  2. Wählen Sie im Navigationsbereich unter Berechtigungen die Option Administrative Rollen und Aufgaben aus.
  3. Wählen Sie unter Datenbankersteller die Option Gewähren aus.
  4. Wählen Sie für IAM-Benutzer und -Rollen aus der Dropdown-Liste die IAM-Rolle aus, auf die Sie großen Zugriff haben möchten.
  5. Wählen Sie unter Katalogberechtigungen die Option Datenbank erstellen aus.
  6. Wenn Sie möchten, dass die IAM-Rolle anderen Rollen in Ihrem Konto Berechtigungen erteilt, dann wählen Sie unter Erteilbare Berechtigungen die Option Datenbank erstellen.
  7. Wählen Sie Gewähren aus.

Zugriffsprobleme mit der Datenkatalog-Datenbank

Wenn Datenkatalog-Datenbankprobleme den Fehler verursachen, erhalten Sie eine Fehlermeldung, die einer der folgenden ähnelt:

Insufficient Lake Formation permission(s) on example_database: Required Create Table
Insufficient Lake Formation permission(s) on example_database: (Database name: example_database)
Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)

Um den ersten und dritten Fehler zu beheben, erteilen Sie der IAM-Rolle, die mit dem Crawler- oder ETL-Auftrag verknüpft ist, die Berechtigung Tabelle erstellen für example_database.

Um den zweiten Fehler zu beheben, erteilen Sie der IAM-Rolle, die mit dem Crawler- oder ETL-Auftrag verknüpft ist, die Berechtigung Beschreiben für example_database.

  1. Öffnen Sie die Lake-Formation-Konsole.
  2. Wählen Sie im Navigationsbereich unter Berechtigungendie Option Data-Lake-Berechtigungen aus.
  3. Wählen Sie Gewähren aus.
  4. Wählen Sie unter Prinzipale die Option IAM-Benutzer und -Rollen aus.
  5. Wählen Sie für IAM-Benutzer und -Rollen die IAM-Rolle aus, die dem Crawler zugeordnet ist.
  6. Wählen Sie unter LF-Tags oder Katalogressourcen die Option Benannte Datenkatalog-Ressourcen aus.
  7. Wählen Sie für Datenbanken die Datenbank aus, in die Ihr Crawler schreibt.
  8. Wählen Sie unter Datenbankberechtigungen je nach Anwendungsfall die Option Tabelle erstellen oder Beschreiben aus. Hinweis: Die Crawler-Rolle muss sowohl über die Berechtigungen Beschreiben als auch Tabelle erstellen für die Datenbank verfügen, in die sie schreibt. Für AWS Glue ETL sind diese Berechtigungen ebenfalls ausreichend, es sei denn, Sie führen einen UpdateDatabase- oder **DeleteDatabase-**API-Aufruf vom Auftragb selbst aus. Erteilen Sie in diesen Fällen die Berechtigungen Ändern oder Löschen.
  9. Wenn Sie möchten, dass die IAM-Rolle anderen Rollen in Ihrem Konto Berechtigungen erteilt, dann legen Sie die Berechtigungen unter Gewährbare Berechtigungen fest.
  10. Wählen Sie Gewähren aus.

Zugriffsprobleme bei der Datenkatalogtabelle

Wenn Probleme mit der Datenkatalogtabelle den Fehler verursachen, erhalten Sie eine Fehlermeldung, die einer der folgenden ähnelt:

Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)
Insufficient Lake Formation permission(s): Required Alter on example_table

Wenn Sie diesen Fehler erhalten, greift der AWS-Glue-Crawler oder der ETL-Auftrag auf die Tabelle zu. Erteilen Sie für den Crawler der IAM-Rolle, die dem Crawler zugeordnet ist, die Berechtigungen Beschreiben und Ändern für example_table.

Erteilen Sie für ETL-Aufträge, die example_table lesen, der IAM-Rolle, die dem Auftrag zugeordnet ist, die Berechtigungen Beschreiben und Auswählen für example_table. Wenn der ETL-Auftrag example_table aktualisiert, gewähren Sie der IAM-Rolle, die dem Auftrag zugeordnet ist, Ändern-Berechtigungen für example_table.

  1. Öffnen Sie die Lake-Formation-Konsole.
  2. Wählen Sie im Navigationsbereich unter Berechtigungendie Option Data-Lake-Berechtigungen aus.
  3. Wählen Sie Gewähren aus.
  4. Wählen Sie unter Prinzipale die Option IAM-Benutzer und -Rollen aus.
  5. Wählen Sie unter IAM-Benutzer und -Rollen die IAM-Rolle aus.
  6. Wählen Sie unter LF-Tags oder Katalogressourcen die Option Benannte Datenkatalog-Ressourcen aus.
  7. Wählen Sie für Datenbanken die Datenbank aus, in die Ihr Crawler schreibt.
  8. Wählen Sie für Tabellen optional die Tabelle aus, auf die Ihr Crawler zugreift.
  9. Wählen Sie unter Tabellenberechtigungen je nach Anwendungsfall die Optionen Auswählen ,Beschreiben oder Ändern aus.
  10. Wenn Sie möchten, dass die IAM-Rolle anderen Rollen in Ihrem Konto Berechtigungen erteilt, dann legen Sie die Berechtigungen unter Gewährbare Berechtigungen fest.
  11. Wählen Sie Gewähren aus.

Zugriffsprobleme mit Lake-Formation-IAM-Berechtigungen

Wenn Probleme mit den IAM-Berechtigungen für Lake Formation den Fehler verursachen, erhalten Sie eine Fehlermeldung, die einer der folgenden ähnelt:

com.amazonaws.services.lakeformation.model.AccessDeniedException: Service Principal: glue.amazonaws.com is not authorized to perform: lakeformation:GetDataAccess
on resource: s3://sample-bucket/sample-prefix/ because no identity-based policy allows the lakeformation:GetDataAccess action

Sie erhalten diesen Fehler, wenn die AWS-Glue-Auftragsrolle oder die AWS-Glue-Crawler-Rolle nicht über ausreichende IAM-Berechtigungen verfügt. Der Auftrag oder die Rolle muss über die Berechtigung verfügen, zu überprüfen, ob Lake Formation temporäre Anmeldeinformationen an die Rolle und den Amazon-S3-Standort senden kann.

  1. Öffnen Sie die IAM-Konsole.
  2. Erstellen Sie eine IAM-Richtlinie für Ihre AWS-Glue-Crawler- oder AWS Glue-Auftragsrolle.
  3. Fügen Sie die Berechtigung LakeFormation:GetDataAccess als Aktion für die Ressource in der Richtlinie hinzu. Hinweis: Die API LakeFormation:GetDataAccess muss den Platzhalter als Ressource verwenden.
  4. Hängen Sie die Richtlinie an Ihre AWS-Glue-Crawler- oder AWS Glue-Auftragsrolle an.

Zugriffsprobleme beim Amazon-S3-Pfad

Wenn Amazon-S3-Pfadprobleme die Ursache für den Fehler sind, sieht die Fehlermeldung ähnlich wie die folgende aus. Der Fehler beinhaltet den Amazon-S3-Pfad:

Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/ (Database name: example-database, Table Name: example-table)<br>
Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/

Dieser Fehler tritt auf, wenn die IAM-Rolle, die mit dem Crawler oder ETL-Auftrag verbunden ist, nicht über die erforderliche Berechtigung für den Zugriff auf den Amazon-S3-Pfad verfügt.

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die Lake-Formation-Konsole.
  2. Wählen Sie im Navigationsbereich unter Registrieren und aufnehmen die Option Data-Lake-Speicherorte aus.
  3. Stellen Sie sicher, dass der Amazon-S3-Pfad oder das Präfix des Pfads von der Fehlermeldung ein registrierter Speicherort in der Liste Data-Lake-Speicherorte ist.
  4. Wenn der Amazon-S3-Pfad oder das S3-Präfix in der Fehlermeldung nicht in der Liste Data-Lake-Speicherorte aufgeführt ist, wählen Sie Speicherort registrieren.
  5. Wählen Sie für den Amazon-S3-Pfad die Option Durchsuchen und dann den richtigen Amazon-S3-Pfad aus.
  6. Behalten Sie für die IAM-Rolle die Standardauswahl AWSServiceRoleForLakeFormationDataAccess bei. Wenn Sie eine benutzerdefinierte IAM-Rolle verwenden, stellen Sie sicher, dass die entsprechenden Anforderungen erfüllt sind. Wichtig: Bei der Registrierung eines Amazon-S3-Standorts übernimmt Lake Formation die vorherige IAM-Rolle. Dadurch werden temporäre Anmeldeinformationen für integrierte AWS-Services gewährt, die auf Daten an diesem Standort zugreifen. Stellen Sie sicher, dass die IAM-Rolle, die dem registrierten Amazon-S3-Standort zugeordnet ist, über die erforderlichen Lese- und Schreibberechtigungen für den S3-Bucket verfügt. Dadurch wird der AccessDenied-Fehler verhindert.
  7. Wählen Sie im Navigationsbereich unter Berechtigungen die Option Datenspeicherorte aus.
  8. Wählen Sie Gewähren aus.
  9. Wählen Sie unter Berechtigungen gewähren die Option Mein Konto aus.
  10. Wählen Sie unter IAM-Benutzer und -Rollen die IAM-Rolle aus, für die Sie Zugriff gewähren möchten.
  11. Wählen Sie Gewähren aus.

Ähnliche Informationen

Verwalten von Lake-Formation-Berechtigungen

Registrieren eines Amazon-S3-Speicherorts

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr