Lakehouse Iceberg-REST-ACLs verwalten

Lakehouse für Apache Iceberg unterstützt die Zugriffssteuerung auf Katalog-, Namespace- und Tabellenebene für Apache Iceberg-Tabellen in Cloud Storage, die den Lakehouse-Laufzeitkatalog verwenden.

Der Lakehouse-Laufzeitkatalog verwaltet die Metadaten, während IAM-Richtlinien (Identity and Access Management) die Berechtigungen definieren. Sie können diese IAM Richtlinien mit der Google Cloud Console oder der gcloud CLI abrufen und festlegen.

Hinweis

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

  2. Aktivieren Sie die BigLake API.

    Erforderliche Rollen zum Aktivieren von APIs

    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-Kataloge, -Namespaces und -Tabellen benötigen:

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

IAM-Richtlinien definieren, 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.

Umfang von IAM-Rollen

Sie können IAM-Rollen auf verschiedenen Ebenen der Ressourcenhierarchie zuweisen:

  • Projektebene: Gewährt Zugriff auf alle Lakehouse-Ressourcen im Projekt.
  • Katalogebene: Gewährt Zugriff auf Ressourcen, die zum angegebenen Katalog gehören.
  • Namespace-Ebene: Gewährt Zugriff auf Ressourcen, die zum angegebenen Namespace gehören.
  • Tabellenebene: Gewährt nur Zugriff auf die angegebene Tabelle.

Relevante IAM-Rollen

In der folgenden Liste sind einige der häufigsten IAM-Rollen aufgeführt, die Sie auf Lakehouse-Ressourcen anwenden können. Eine vollständige Liste der verfügbaren Rollen und der zugehörigen Berechtigungen finden Sie unter Lakehouse IAM-Rollen.

  • 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, Lakehouse-Ressourcen anzusehen und Tabellendaten zu lesen.

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 nachzuverfolgen.
  • Versionsverwaltung: Speichern Sie Ihre Richtliniendateien in einem Versionsverwaltungssystem.

ACL-Rollen auf Kataloge anwenden

Im folgenden Abschnitt wird beschrieben, wie Sie ACLs auf Kataloge anwenden.

gcloud

IAM-Richtlinie abrufen

Verwenden Sie den gcloud alpha biglake iceberg catalogs get-iam-policy Befehl, um die aktuelle IAM-Richtlinie für einen Lakehouse Iceberg-Katalog aufzurufen.

  1. Führen Sie den folgenden Befehl aus, um die IAM-Richtlinie abzurufen:

    gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \
        --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • CATALOG_NAME: Der Name des Apache Iceberg-REST-Katalogendpunkts.
    • 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 gcloud alpha biglake iceberg catalogs set-iam-policy Befehl, um die IAM-Richtlinie für einen Lakehouse Iceberg Katalog zu aktualisieren. Dieser Befehl verwendet eine lokale JSON- oder YAML-Datei, die die Richtlinie enthält, die Sie anwenden möchten.

  1. Erstellen Sie eine lokale Richtliniendatei im JSON- oder YAML-Format. Die Richtliniendatei muss die Bindungen und ein etag enthalten. Der Wert etag bietet eine optimistische Gleichzeitigkeitssteuerung, 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 alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \
        --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • CATALOG_NAME: Der Name des Apache Iceberg-REST-Katalogendpunkts.
    • POLICY_FILE: Der Pfad zu Ihrer lokalen Richtliniendatei.
    • PROJECT_ID: Ihre Google Cloud Projekt ID.

ACL-Rollen auf Namespaces anwenden

Im folgenden Abschnitt wird beschrieben, wie Sie ACLs auf Namespaces anwenden.

In der Google Cloud Console werden keine vererbten IAM-Richtlinien angezeigt oder verwaltet.

Console

  1. Öffnen Sie in der Google Cloud Console die Lakehouse Seite.

    Zu Lakehouse

  2. Wählen Sie einen vorhandenen Katalog aus oder erstellen Sie einen, falls Sie noch keinen haben.

  3. Wählen Sie in der Tabelle Namespace-Details einen Namespace aus und maximieren Sie die Menüoptionen ().

  4. Klicken Sie auf Berechtigungen verwalten.

    Das Dialogfeld Berechtigungen freigeben wird angezeigt.

  5. Klicken Sie auf Hauptkonto hinzufügen.

  6. Geben Sie im Feld Neue Hauptkonten das Hauptkonto ein, dem Sie Rollen zuweisen möchten.

  7. Wählen Sie unter Rolle auswählen eine Rolle aus, die dem Hauptkonto zugewiesen werden soll.

  8. Klicken Sie auf Speichern.

  9. Klicken Sie auf Schließen.

gcloud

IAM-Richtlinie abrufen

Verwenden Sie den gcloud alpha biglake iceberg namespaces get-iam-policy Befehl, um die aktuelle IAM-Richtlinie für einen Lakehouse Iceberg-Namespace aufzurufen.

  1. Führen Sie den folgenden Befehl aus, um die IAM-Richtlinie abzurufen:

    gcloud alpha biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • NAMESPACE_NAME: Der Name des Ziel-Namespace im Katalog.
    • CATALOG_NAME: Der Name des Apache Iceberg-REST-Katalogendpunkts.
    • 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 alpha biglake iceberg namespaces set-iam-policy, um die IAM-Richtlinie für einen Lakehouse Iceberg-Namespace zu aktualisieren. Dieser Befehl verwendet eine lokale JSON- oder YAML-Datei, die die Richtlinie enthält, die Sie anwenden möchten.

  1. Erstellen Sie eine lokale Richtliniendatei im JSON- oder YAML-Format. Die Richtliniendatei muss die Bindungen und ein etag enthalten. Der Wert etag bietet eine optimistische Gleichzeitigkeitssteuerung, 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 alpha biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • NAMESPACE_NAME: Der Name des Ziel-Namespace im Katalog.
    • POLICY_FILE: Der Pfad zu Ihrer lokalen Richtliniendatei.
    • CATALOG_NAME: Der Name des Apache Iceberg-REST-Katalogendpunkts.
    • PROJECT_ID: Ihre Google Cloud Projekt ID.

ACL-Rollen auf Tabellen anwenden

Im folgenden Abschnitt wird beschrieben, wie Sie ACLs auf Tabellen anwenden.

In der Google Cloud Console werden keine vererbten IAM-Richtlinien angezeigt oder verwaltet.

Console

  1. Öffnen Sie in der Google Cloud Console die Lakehouse Seite.

    Zu Lakehouse

  2. Wählen Sie einen vorhandenen Katalog aus oder erstellen Sie einen, falls Sie noch keinen haben.

  3. Klicken Sie in der Tabelle Namespace-Details auf den Namen des Namespace, der Ihre Tabelle enthält.

  4. Wählen Sie auf der Seite Tabellendetails eine Tabelle aus und maximieren Sie die Menüoptionen ().

  5. Klicken Sie auf Berechtigungen verwalten.

    Das Dialogfeld Berechtigungen freigeben wird angezeigt.

  6. Klicken Sie auf Hauptkonto hinzufügen.

  7. Geben Sie im Feld Neue Hauptkonten das Hauptkonto ein, dem Sie Rollen zuweisen möchten.

  8. Wählen Sie unter Rolle auswählen eine Rolle aus, die dem Hauptkonto zugewiesen werden soll.

  9. Klicken Sie auf Speichern.

  10. Klicken Sie auf Schließen.

gcloud

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 Lakehouse Iceberg-Zieltabelle.
    • 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 Richtlinie enthält, die Sie anwenden möchten.

  1. Erstellen Sie eine lokale Richtliniendatei im JSON- oder YAML-Format. Die Richtliniendatei muss die Bindungen und ein etag enthalten. Der Wert etag bietet eine optimistische Gleichzeitigkeitssteuerung, 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 Lakehouse Iceberg-Zieltabelle.
    • 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