ACLs für Apache Iceberg REST-Katalogendpunkte verwalten

Borderless Lakehouse 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 die Berechtigungen durch IAM-Richtlinien (Identity and Access Management) definiert werden. Sie können dieGoogle Cloud Console oder die gcloud-Befehlszeile verwenden, um diese IAM-Richtlinien abzurufen und festzulegen.

Hinweis

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

  2. Aktivieren Sie die BigLake API, falls sie noch nicht aktiviert ist.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

  3. Installieren und initialisieren Sie die Google Cloud CLI.
  4. Prüfen Sie, ob Sie einen vorhandenen Apache Iceberg REST-Katalogendpunkt und -Namespace haben.
  5. Prüfen Sie, ob im angegebenen Katalog und Namespace eine vorhandene Apache Iceberg-Tabelle vorhanden ist, die von Lakehouse verwaltet wird.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von 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.

Bereich 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 gängigen 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ändigen Zugriff auf alle Lakehouse-Ressourcen.
  • roles/biglake.editor: bietet Lese- und Schreibzugriff auf alle Lakehouse-Ressourcen.
  • roles/biglake.viewer: bietet Lesezugriff auf alle Lakehouse-Ressourcen.
  • roles/biglake.metadataViewer: bietet Lesezugriff auf Metadaten für alle Lakehouse-Ressourcen.

Best Practices

  • Geringste Berechtigung: Gewähren Sie Nutzern und Dienstkonten nur die erforderlichen Berechtigungen.
  • ETags verwenden: Fügen Sie immer das etag aus einem aktuellen get-iam-policy-Aufruf in Ihre Richtliniendatei ein, wenn Sie set-iam-policy verwenden, um unbeabsichtigtes Überschreiben 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 Kataloge anwenden

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

gcloud

IAM-Richtlinie abrufen

Verwenden Sie den Befehl gcloud biglake iceberg catalogs get-iam-policy, 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 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. Die Befehlsausgabe ist die IAM-Richtlinie im YAML-Format, in dem die aktuellen Rollenbindungen und Mitglieder angezeigt werden.

IAM-Richtlinie festlegen

Verwenden Sie den Befehl gcloud biglake iceberg catalogs set-iam-policy, 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 Nebenläufigkeitserkennung, um das Überschreiben von Änderungen zu verhindern. Führen Sie zuerst den Befehl get-iam-policy aus, um die 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.editor",
          "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 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 Projekt-ID in Google Cloud .

ACL-Rollen auf Namespaces anwenden

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

In der Google Cloud Console werden übernommene IAM-Richtlinien weder angezeigt noch verwaltet.

Console

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

    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 Freigabeberechtigungen 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 Sie dem Hauptkonto zuweisen möchten.

  8. Klicken Sie auf Speichern.

  9. Klicken Sie auf Schließen.

gcloud

IAM-Richtlinie abrufen

Verwenden Sie den Befehl gcloud biglake iceberg namespaces get-iam-policy, 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 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. Die Befehlsausgabe ist die IAM-Richtlinie im YAML-Format, in dem die aktuellen Rollenbindungen und Mitglieder angezeigt werden.

IAM-Richtlinie festlegen

Verwenden Sie den Befehl gcloud 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 Nebenläufigkeitserkennung, um das Überschreiben von Änderungen zu verhindern. Führen Sie zuerst den Befehl get-iam-policy aus, um die 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.editor",
          "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 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 Projekt-ID in Google Cloud .

ACL-Rollen auf Tabellen anwenden

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

In der Google Cloud Console werden übernommene IAM-Richtlinien weder angezeigt noch verwaltet.

Console

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

    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 Freigabeberechtigungen 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 Sie dem Hauptkonto zuweisen möchten.

  9. Klicken Sie auf Speichern.

  10. Klicken Sie auf Schließen.

gcloud

IAM-Richtlinie abrufen

Verwenden Sie den Befehl gcloud biglake iceberg tables get-iam-policy, 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 Apache 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. Die Befehlsausgabe ist die IAM-Richtlinie im YAML-Format, in dem die aktuellen Rollenbindungen und Mitglieder angezeigt werden.

IAM-Richtlinie festlegen

Verwenden Sie den Befehl gcloud biglake iceberg tables set-iam-policy, um die IAM-Richtlinie für eine von Lakehouse verwaltete Apache 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 Nebenläufigkeitserkennung, um das Überschreiben von Änderungen zu verhindern. Führen Sie zuerst den Befehl get-iam-policy aus, um die 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.editor",
          "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 Apache 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 Projekt-ID in Google Cloud .

Nächste Schritte