Auf gRPC-Endpunkte für Dataproc Metastore zugreifen

Auf dieser Seite wird beschrieben, wie Sie einem Google Cloud-Nutzerkonto oder einem Dienstkonto Zugriff auf einen Dataproc Metastore-Dienst gewähren, der das gRPC-Endpunktprotokoll verwendet.

gRPC-Metadatenrollen zuweisen

Berücksichtigen Sie bei der Gewährung des Zugriffs auf Ihre Metadaten Folgendes:

  • Die Zugriffsebene, die gewährt werden soll. Mit der von Ihnen gewährten Zugriffsebene wird festgelegt, auf wie viele Metadaten ein Konto zugreifen kann. Sie können beispielsweise Zugriff auf Metadaten gewähren, die in einer bestimmten Datenbank oder Tabelle gespeichert sind, oder Zugriff auf Ihr gesamtes Projekt.
  • Das Hauptkonto, das Zugriff benötigt Sie verwenden IAM-Principals (Identitäten), um Ihre Jobs auszuführen. Sie können beispielsweise Dataproc-Clusterjobs mit Nutzerkonten oder Dienstkonten ausführen (in der Regel das Dataproc-VM-Dienstkonto).

    Weitere Informationen zu den Konten, die Sie mit Dataproc Metastore verwenden können, finden Sie unter Dataproc-Dienstkonten.

Weisen Sie dem Nutzer je nach erforderlichem Kontrollumfang eine der folgenden vordefinierten IAM-Rollen zu:

  • Vollzugriff auf die Metadatenressourcen gewähren Rolle „Metadateninhaber“ (roles/metastore.metadataOwner)
  • Lese- und Schreibzugriff auf Metadaten gewähren: Rolle „Metadatenbearbeiter“ roles/metastore.metadataEditor
  • Lesezugriff auf die Metadaten gewähren: Rolle „Metadatenbetrachter“ (roles/metastore.metadataViewer)

Hinweise

  • Aktivieren Sie Dataproc Metastore in Ihrem Projekt.
  • Erstellen Sie einen Metastore-Dienst, der das gRPC-Protokoll verwendet.
  • Informieren Sie sich über die Netzwerkanforderungen, die für Ihr Projekt gelten.

    • Anforderungen an gRPC und Virtual Private Cloud (VPC) Wenn Sie gRPC verwenden, müssen Sie keine freigegebene VPC konfigurieren oder zusätzliche Netzwerkkonfigurationen festlegen. Standardmäßig können gRPC-Endpunkte von jedem VPC aus erreicht werden.

    Es gibt jedoch eine Ausnahme. Wenn in Ihrem Projekt ein VPC-SC-Dienstperimeter verwendet wird, können gRPC-Endpunkte nur von einer VPC aus erreicht werden, die zu Projekten im Perimeter gehört. Weitere Informationen finden Sie unter VPC Service Controls mit Dataproc Metastore.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Gewähren des Prinzipalzugriffs auf Dataproc-Metastore-Metadaten benötigen, und dabei das Prinzip der geringsten Berechtigung zu beachten:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Gewähren des Zugriffs für einen Nutzer auf Metadaten des Dataproc-Metastores erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um einem Nutzer Zugriff auf Dataproc Metastore-Metadaten zu gewähren:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und ‑Berechtigungen finden Sie unter Dataproc Metastore-IAM – Übersicht.

Hauptkonto Zugriff auf Metadaten gewähren

Sie können einem Hauptkonto Zugriff auf Metadaten auf Projekt-, Dienst-, Datenbank- oder Tabellenebene gewähren.

Zugriff auf Projektebene gewähren

Wenn Sie auf Projektebene Zugriff auf alle Dataproc Metastore-Metadaten gewähren möchten, müssen Sie Ihrem Hauptkonto eine Metadatenrolle zuweisen.

gcloud-CLI

Wenn Sie allen Dataproc Metastore-Diensten in einem bestimmten Projekt Metadatenrollen zuweisen möchten, führen Sie den folgenden gcloud projects add-iam-policy-binding-Befehl aus:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role=METASTORE_ROLE

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die Google Cloud-Projekt-ID, für die Sie Metadatenzugriff gewähren möchten.
  • PRINCIPAL: Der Typ und die E-Mail-ID (E-Mail-Adresse) des Hauptkontos.
    • Für Nutzerkonten: user:EMAIL_ID
    • Für Dienstkonten: serviceAccount:EMAIL_ID
    • Für Google Groups: group:EMAIL_ID
    • Informationen zu anderen Hauptkontotypen: Identitätskonzepte
  • METASTORE_ROLE: Eine der folgenden Rollen, je nachdem, welchen Zugriff Sie dem Hauptkonto gewähren möchten: roles/metastore.metadataViewer, roles/metastore.metadataEditor oder roles/metastore.metadataOwner.

Zugriff auf Dienstebene gewähren

Wenn Sie auf Dienstebene Zugriff auf alle Dataproc Metastore-Metadaten gewähren möchten, müssen Sie Ihrem Hauptkonto eine Metadatenrolle zuweisen.

gcloud-CLI

Wenn Sie Metadatenrollen mit der Detailebene eines einzelnen Dataproc Metastore-Metastore-Dienstes gewähren möchten, führen Sie den folgenden gcloud metastore services add-iam-policy-binding-Befehl aus:

gcloud metastore services add-iam-policy-binding SERVICE_ID \
  --location=LOCATION \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Ersetzen Sie Folgendes:

  • SERVICE_ID: Die ID oder voll qualifizierte Kennzeichnung für Ihren Dataproc Metastore-Dienst.
  • LOCATION: Die Region des Dataproc Metastores, für die Sie Zugriff gewähren.
  • PRINCIPAL: Typ und E-Mail-ID (E-Mail-Adresse) des Hauptkontos:
    • Für Nutzerkonten: user:EMAIL_ID
    • Für Dienstkonten: serviceAccount:EMAIL_ID
    • Für Google Groups: group:EMAIL_ID
    • Informationen zu anderen Hauptkontotypen: Identitätskonzepte
  • METASTORE_ROLE: Eine der folgenden Rollen, je nachdem,welchen Zugriff Sie dem Hauptkonto gewähren möchten: roles/metastore.metadataViewer, roles/metastore.metadataEditor oder roles/metastore.metadataOwner.

Zugriff auf Datenbankebene gewähren

Wenn Sie Zugriff auf alle Dataproc Metastore-Metadaten in einer bestimmten Datenbank gewähren möchten, müssen Sie Ihrem Hauptkonto eine Metadatenrolle hinzufügen.

gcloud-CLI

Wenn Sie Metadatenrollen auf Ebene einer bestimmten Datenbank gewähren möchten, führen Sie den folgenden gcloud metastore services databases add-iam-policy-binding-Befehl aus:

gcloud metastore services databases add-iam-policy-binding DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Ersetzen Sie Folgendes:

  • DATABASE_ID: Die ID der Datenbank, für die Sie Metadatenzugriff gewähren. Diese ID finden Sie in Ihrem Datenbankschema.
  • PROJECT: Die Google Cloud-Projekt-ID, die den Dataproc Metastore-Dienst enthält, für den Sie Metadatenzugriff gewähren.
  • LOCATION: Die Region des Dataproc Metastore-Dienstes, für den Sie den Zugriff gewähren.
  • SERVICE_ID: Die ID oder voll qualifizierte Kennzeichnung für Ihren Dataproc Metastore-Dienst.
  • PRINCIPAL: Typ und E-Mail-ID (E-Mail-Adresse) des Hauptkontos:
    • Für Nutzerkonten: user:EMAIL_ID
    • Für Dienstkonten: serviceAccount:EMAIL_ID
    • Für Google Groups: group:EMAIL_ID
    • Informationen zu anderen Hauptkontotypen: Identitätskonzepte
  • METASTORE_ROLE: Eine der folgenden Rollen, je nachdem, welchen Zugriff Sie dem Hauptkonto gewähren möchten: roles/metastore.metadataViewer, roles/metastore.metadataEditor oder roles/metastore.metadataOwner.

Zugriff auf Tabellenebene gewähren

Wenn Sie Zugriff auf alle Dataproc Metastore-Metadaten in einer bestimmten Tabelle gewähren möchten, müssen Sie Ihrem Hauptkonto eine Metadatenrolle zuweisen.

gcloud-CLI

Wenn Sie Metadatenrollen auf Tabellenebene gewähren möchten, führen Sie den folgenden gcloud metastore services databases tables add-iam-policy-binding-Befehl aus:

gcloud metastore services databases tables add-iam-policy-binding TABLE_ID \
  --database=DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Ersetzen Sie Folgendes:

  • TABLE_ID: Die ID der Tabelle, auf die Sie Zugriff gewähren. Diese ID finden Sie in Ihrem Datenbankschema.
  • DATABASE_ID: Die ID der Datenbank, die die Tabelle enthält, für die Sie Metadatenzugriff gewähren. Diese ID finden Sie in Ihrem Datenbankschema.
  • PROJECT: Die Google Cloud-Projekt-ID, die den Dataproc Metastore-Dienst enthält, für den Sie Metadatenzugriff gewähren.
  • LOCATION: Die Region des Dataproc Metastore-Dienstes, für den Sie Metadatenzugriff gewähren.
  • SERVICE_ID: Die ID oder voll qualifizierte Kennzeichnung für Ihren Dataproc Metastore-Dienst.
  • PRINCIPAL: Typ und E-Mail-ID (E-Mail-Adresse) des Hauptkontos:
    • Für Nutzerkonten: user:EMAIL_ID
    • Für Dienstkonten: serviceAccount:EMAIL_ID
    • Für Google Groups: group:EMAIL_ID
  • METASTORE_ROLE: Eine der folgenden Rollen, je nachdem, welchen Zugriff Sie dem Hauptkonto gewähren möchten: roles/metastore.metadataViewer, roles/metastore.metadataEditor oder roles/metastore.metadataOwner.

Nachdem Sie Zugriff auf Ihre Metadaten gewährt haben

Nachdem Sie Ihren Dienstkonten die erforderlichen Rollen zugewiesen haben, können Sie Ihren Dataproc Metastore mit einem Dataproc-Cluster verbinden. Ihr Cluster verwendet dann den Dataproc Metastore-Dienst als Hive-Metastore.

Nächste Schritte