gRPC-Endpunkte für Dataproc Metastore aufrufen

Auf dieser Seite wird erläutert, 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 die folgenden Konzepte, wenn Sie einem Konto Zugriff auf Ihre Metadaten gewähren:

  • Der Umfang des Zugriffs, der bereitgestellt werden soll. Die Zugriffsebene bestimmt, 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 gewähren.
  • Das Hauptkonto, das Zugriff benötigt. Sie verwenden IAM-Hauptkonten (Identitäten), um Ihre Jobs auszuführen. Sie können Dataproc-Clusterjobs beispielsweise mit Nutzerkonten oder Dienstkonten (normalerweise das Dataproc-VM-Dienstkonto) ausführen.

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

Weisen Sie dem Hauptkonto je nach erforderlichem Kontrollbereich eine der folgenden vordefinierten IAM-Rollen zu:

  • Sie gewähren vollständigen Zugriff auf die Metadatenressourcen. Rolle „Metadateninhaber“ (roles/metastore.metadataOwner)
  • So gewähren Sie Lese- und Schreibzugriff auf Metadaten: Metadaten-Bearbeiter roles/metastore.metadataEditor)
  • So gewähren Sie Lesezugriff auf die Metadaten: 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 Ihres Projekts.

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

    Es gibt jedoch eine Ausnahme. Wenn Ihr Projekt einen VPC-SC-Dienstperimeter verwendet, sind gRPC-Endpunkte nur über eine VPC erreichbar, 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 zu gewähren und dabei das Prinzip der geringsten Berechtigung zu befolgen, um die Berechtigungen zu erhalten, die Sie einem Hauptkonto Zugriff auf Dataproc Metastore-Metadaten gewähren müssen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten die erforderlichen Berechtigungen, um einem Hauptkonto Zugriff auf Dataproc Metastore-Metadaten zu gewähren. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

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

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

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

Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie in der Übersicht über Dataproc Metastore-IAM.

Einem Hauptkonto Zugriff auf Metadaten gewähren

Sie können einem Hauptkonto Zugriff auf Metadaten auf Projektebene, Dienstebene, Datenbankebene oder Tabellenebene gewähren.

Zugriff auf Projektebene gewähren

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

gcloud-CLI

Führen Sie den folgenden gcloud projects add-iam-policy-binding-Befehl aus, um allen Dataproc Metastore-Diensten in einem bestimmten Projekt Metadatenrollen zuzuweisen:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die Google Cloud-Projekt-ID, auf 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
    • Für andere Hauptkontotypen: Identitätskonzepte
  • METASTORE_ROLE: Eine der folgenden Rollen, abhängig vom Zugriffsbereich, den Sie dem Hauptkonto gewähren möchten: roles/metastore.metadataViewer, roles/metastore.metadataEditor oder roles/metastore.metadataOwner.

Zugriff auf Dienstebene gewähren

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

gcloud-CLI

Führen Sie den folgenden gcloud metastore services add-iam-policy-binding-Befehl aus, um Metadatenrollen mit dem Detaillierungsgrad eines einzelnen Dataproc Metastore-Metastore-Metastore-Dienstes zuzuweisen:

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

Ersetzen Sie Folgendes:

  • SERVICE_ID: Die ID oder die voll qualifizierte Kennung für den Dataproc Metastore-Dienst.
  • LOCATION: Region des Dataproc Metastores, auf 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
    • Für andere Hauptkontotypen: Identitätskonzepte
  • METASTORE_ROLE: Eine der folgenden Rollen, abhängig vom Zugriffsbereich,den 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

Führen Sie den folgenden gcloud metastore services databases add-iam-policy-binding-Befehl aus, um Metadatenrollen mit dem Detaillierungsgrad einer bestimmten Datenbank zuzuweisen:

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, auf die Sie Metadatenzugriff gewähren. Sie erhalten diese ID Ihrem Datenbankschema.
  • PROJECT: Die Google Cloud-Projekt-ID, die den Dataproc Metastore-Dienst enthält, dem Sie Metadatenzugriff gewähren.
  • LOCATION: Region des Dataproc Metastore-Dienstes, auf den Sie Zugriff gewähren.
  • SERVICE_ID: Die ID oder die voll qualifizierte Kennung für den 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
    • Für andere Hauptkontotypen: Identitätskonzepte
  • METASTORE_ROLE: Eine der folgenden Rollen, abhängig vom Zugriffsbereich, den 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

Führen Sie den folgenden gcloud metastore services databases tables add-iam-policy-binding-Befehl aus, um Metadatenrollen mit dem Detaillierungsgrad einer Tabelle zuzuweisen:

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. Sie erhalten diese ID Ihrem Datenbankschema.
  • DATABASE_ID: Die ID der Datenbank, die die Tabelle enthält, auf die Sie Metadatenzugriff gewähren. Sie erhalten diese ID Ihrem Datenbankschema.
  • PROJECT: Die Google Cloud-Projekt-ID, die den Dataproc Metastore-Dienst enthält, auf den Sie Metadatenzugriff gewähren.
  • LOCATION: Region des Dataproc Metastore-Dienstes, auf den Sie Metadatenzugriff gewähren.
  • SERVICE_ID: Die ID oder die voll qualifizierte Kennung für den 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, abhängig vom Zugriffsbereich, den 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. Der Cluster verwendet dann den Dataproc Metastore-Dienst als Hive-Metastore.

Nächste Schritte