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
Wenn Sie einem Konto Zugriff auf Ihre Metadaten gewähren, sollten Sie die folgenden Konzepte berücksichtigen:
- Die zu gewährende Zugriffsebene Mit der Zugriffsebene, die Sie gewähren, wird gesteuert, 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 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 (in der Regel dem 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 Ihrem Prinzipal je nach erforderlichem Umfang der Steuerung eine der folgenden vordefinierten IAM-Rollen zu:
- Vollzugriff auf die Metadatenressourcen gewähren Rolle „Metadateninhaber“ (
roles/metastore.metadataOwner
) - So gewähren Sie Lese- und Schreibzugriff auf Metadaten: Rolle „Metadatenbearbeiter“
roles/metastore.metadataEditor
) - Lesezugriff auf die Metadaten gewähren: Rolle „Metadatenbetrachter“ (
roles/metastore.metadataViewer
)
Hinweise
- Aktivieren Sie Dataproc Metastore in Ihrem Projekt.
- Metastore-Dienst erstellen, der das gRPC-Protokoll verwendet.
Netzwerkanforderungen für Ihr Projekt
- gRPC- und Virtual Private Cloud-Anforderungen (VPC) Wenn Sie gRPC verwenden, müssen Sie keine freigegebene VPC konfigurieren oder zusätzliche Netzwerkkonfigurationen festlegen. Standardmäßig sind gRPC-Endpunkte von jeder VPC aus erreichbar.
Es gibt jedoch eine Ausnahme. Wenn in Ihrem Projekt ein VPC-SC-Dienstperimeter verwendet wird, können gRPC-Endpunkte nur über eine VPC 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 benötigen, um einem Prinzipal Zugriff auf Dataproc Metastore-Metadaten zu gewähren. Dabei sollte das Prinzip der geringsten Berechtigung beachtet werden:
-
Vollständige Kontrolle über Dataproc Metastore-Ressourcen gewähren (
roles/metastore.editor
) -
Vollständige Kontrolle über Dataproc Metastore-Ressourcen gewähren, einschließlich der Aktualisierung von IAM-Berechtigungen (
roles/metastore.admin
)
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 auf Dataproc Metastore-Metadaten für ein Prinzipal erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um einem Prinzipal 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 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 angegebenen 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, für die Sie den 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: Hauptkonto-IDs
METASTORE_ROLE
: Eine der folgenden Rollen, je nach Umfang des Zugriffs, den Sie dem Hauptkonto gewähren möchten:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oderroles/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 auf der Granularität eines einzelnen Dataproc 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 der voll qualifizierte Bezeichner für Ihren Dataproc Metastore-Dienst.LOCATION
: Die Region des Dataproc Metastore, für den Sie Zugriff gewähren.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: Hauptkonto-IDs
METASTORE_ROLE
: Eine der folgenden Rollen, je nach dem Umfang des Zugriffs,den Sie dem Hauptkonto gewähren möchten:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oderroles/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 auf der Granularität 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, für die Sie den Metadatenzugriff gewähren. Sie erhalten diese ID aus Ihrem Datenbankschema.PROJECT
: Die Google Cloud Projekt-ID, die den Dataproc Metastore-Dienst enthält, für den Sie den Metadatenzugriff gewähren.LOCATION
: Die Region des Dataproc Metastore-Dienstes, für den Sie Zugriff gewähren.SERVICE_ID
: Die ID oder der voll qualifizierte Bezeichner für Ihren Dataproc Metastore-Dienst.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: Hauptkonto-IDs
METASTORE_ROLE
: Eine der folgenden Rollen, je nach Umfang des Zugriffs, den Sie dem Hauptkonto gewähren möchten:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oderroles/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 auf Tabellenebene 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 aus Ihrem Datenbankschema.DATABASE_ID
: Die ID der Datenbank, die die Tabelle enthält, für die Sie den Metadatenzugriff gewähren. Sie erhalten diese ID aus Ihrem Datenbankschema.PROJECT
: Die Google Cloud Projekt-ID, die den Dataproc Metastore-Dienst enthält, für den Sie den Metadatenzugriff gewähren.LOCATION
: Die Region des Dataproc Metastore-Dienstes, für den Sie den Metadatenzugriff gewähren.SERVICE_ID
: Die ID oder der voll qualifizierte Bezeichner für Ihren Dataproc Metastore-Dienst.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
METASTORE_ROLE
: Eine der folgenden Rollen, je nachdem, welchen Zugriff Sie dem Hauptkonto gewähren möchten:roles/metastore.metadataViewer
,roles/metastore.metadataEditor
oderroles/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
- Dataproc-Cluster anhängen
- Dataproc Metastore aktualisieren und löschen
- Metadaten in Dataproc Metastore importieren