Lakehouse for Apache Iceberg unterstützt die Zugriffssteuerung auf Tabellenebene für Apache Iceberg-Tabellen in Cloud Storage, die den Lakehouse-Laufzeitkatalog verwenden.
Der Lakehouse-Laufzeitkatalog verwaltet die Tabellenmetadaten, während in IAM-Richtlinien (Identity and Access Management) die Berechtigungen definiert werden. Die gcloud CLI bietet die Befehle, die zum Abrufen und Festlegen dieser IAM-Richtlinien erforderlich sind.
Hinweis
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Aktivieren Sie die BigLake API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Informationen zum Zuweisen von Rollen. - Installieren und initialisieren Sie das Google Cloud SDK.
- Prüfen Sie, ob Sie einen vorhandenen Apache Iceberg REST-Katalogendpunkt und -Namespace haben.
- Prüfen Sie, ob Sie eine vorhandene Lakehouse Iceberg-Tabelle im angegebenen Katalog und Namespace haben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Zugriffssteuerungslisten (Access Control Lists, ACLs) für Iceberg-Tabellen benötigen:
- Alle: BigLake-Administrator (roles/biglake.admin) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Funktionsweise
In IAM-Richtlinien wird definiert, welche Hauptkonten bestimmte Rollen und Berechtigungen für eine Ressource haben. Sie können den Zugriff auf Ihre Ressourcen verwalten, indem Sie diese Richtlinien abrufen und festlegen.
Relevante IAM-Rollen
Sie können die folgenden allgemeinen IAM-Rollen auf Lakehouse-Ressourcen anwenden:
roles/biglake.admin: bietet vollständige Kontrolle über Lakehouse-Ressourcen.roles/biglake.user: ermöglicht Hauptkonten die Verwendung von Lakehouse-Ressourcen, einschließlich des Lesens und Schreibens von Tabellendaten.roles/biglake.viewer: ermöglicht Hauptkonten das Aufrufen von Lakehouse-Ressourcen und das Lesen von Tabellendaten.
Best Practices
- Prinzip der geringsten Berechtigung: Gewähren Sie Nutzern und Dienstkonten nur die erforderlichen Berechtigungen.
- Etags verwenden: Fügen Sie beim Verwenden von
set-iam-policyimmer dasetagaus einem aktuellenget-iam-policy-Aufruf in Ihre Richtliniendatei ein, um unbeabsichtigte Überschreibungen zu vermeiden. - Audit-Logging: Achten Sie darauf, dass Cloud-Audit-Logs aktiviert sind, um Änderungen an IAM-Richtlinien zu verfolgen.
- Versionsverwaltung: Speichern Sie Ihre Richtliniendateien in einem Versionsverwaltungssystem.
ACL-Rollen auf Tabellen anwenden
Im folgenden Abschnitt wird beschrieben, wie Sie ACLs auf Tabellen anwenden.
IAM-Richtlinie abrufen
Verwenden Sie den gcloud biglake iceberg tables
get-iam-policy
Befehl, um die aktuelle IAM-Richtlinie für eine Lakehouse
Iceberg-Tabelle aufzurufen.
Führen Sie den folgenden Befehl aus, um die IAM-Richtlinie abzurufen:
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDErsetzen Sie Folgendes:
TABLE_NAME: der Name der Ziel-Lakehouse Iceberg-Tabelle.CATALOG_NAME: der Name des Apache Iceberg REST-Katalogendpunkts.NAMESPACE_NAME: der Name des Namespace im Katalog.PROJECT_ID: Ihre Google Cloud Projekt-ID.
Der Befehl gibt die IAM-Richtlinie im YAML-Format aus, die die aktuellen Rollenbindungen und Mitglieder enthält.
IAM-Richtlinie festlegen
Verwenden Sie den Befehl gcloud biglake iceberg tables set-iam-policy, um die IAM-Richtlinie für eine Lakehouse Iceberg-Tabelle zu aktualisieren.
Dieser Befehl verwendet eine lokale JSON- oder YAML-Datei, die die anzuwendende Richtlinie enthält.
Erstellen Sie eine lokale Richtliniendatei im JSON- oder YAML-Format. Die Richtliniendatei muss die Bindungen und ein
etagenthalten. Deretag-Wert bietet eine optimistische Nebenläufigkeitserkennung, um das Überschreiben von Änderungen zu verhindern. Führen Sie zuerst den Befehlget-iam-policyaus, um das aktuelleetagabzurufen.Das folgende Beispiel zeigt eine Richtliniendatei mit dem Namen
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Führen Sie den folgenden Befehl aus, um die IAM-Richtlinie festzulegen:
gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDErsetzen Sie Folgendes:
TABLE_NAME: der Name der Ziel-Lakehouse Iceberg-Tabelle.POLICY_FILE: der Pfad zu Ihrer lokalen Richtliniendatei.CATALOG_NAME: der Name des Apache Iceberg REST-Katalogendpunkts.NAMESPACE_NAME: der Name des Namespace im Katalog.PROJECT_ID: Ihre Google Cloud Projekt ID.
Nächste Schritte
- Mehr über IAM erfahren
- Vollständige Liste der Lakehouse-IAM-Rollen und -Berechtigungen ansehen
- Informationen zu Lakehouse Konzepten.