ACLs für Lakehouse Iceberg-REST-Katalogtabellen verwalten

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

  1. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  2. 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 Berechtigung serviceusage.services.enable enthält. Informationen zum Zuweisen von Rollen.

    API aktivieren

  3. Installieren und initialisieren Sie das Google Cloud SDK.
  4. Prüfen Sie, ob Sie einen vorhandenen Apache Iceberg REST-Katalogendpunkt und -Namespace haben.
  5. 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-policy immer das etag aus einem aktuellen get-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.

  1. 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_ID
    

    Ersetzen 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.
  2. 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.

  1. Erstellen Sie eine lokale Richtliniendatei im JSON- oder YAML-Format. Die Richtliniendatei muss die Bindungen und ein etag enthalten. Der etag-Wert bietet eine optimistische Nebenläufigkeitserkennung, um das Überschreiben von Änderungen zu verhindern. Führen Sie zuerst den Befehl get-iam-policy aus, um das aktuelle etag abzurufen.

    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
    }
    
  2. 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_ID
    

    Ersetzen 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