Auf dieser Seite werden Dienstkonten und VM-Zugriffsbereiche beschrieben und wie sie mit Dataproc verwendet werden.
Was sind Dienstkonten?
Ein Dienstkonto ist ein spezielles Konto, das von Diensten und Anwendungen, die auf einer VM-Instanz (Compute Engine VM) ausgeführt werden, für die Interaktion mit anderen Google Cloud APIs verwendet werden kann. Anwendungen können Dienstkonto-Anmeldedaten nutzen, um sich für verschiedene APIs zu autorisieren und im Rahmen der dem Dienstkonto gewährten Berechtigungen Aktionen auf der VM auszuführen.
Dataproc-Dienstkonten
Die folgenden Dienstkonten erhalten Berechtigungen, die zum Ausführen von Dataproc-Aktionen in dem Projekt erforderlich sind, in dem sich Ihr Cluster befindet.
Dataproc-VM-Dienstkonto: VMs in einem Dataproc-Cluster verwenden dieses Dienstkonto für Dataproc-Datenebenenvorgänge, z. B. das Lesen und Schreiben von Daten aus und in Cloud Storage und BigQuery (siehe Dataproc-VM-Dienstkonto (Identität der Datenebene)). Das Compute Engine-Standarddienstkonto ,
[project-number]-compute@developer.gserviceaccount.com
wird als Dataproc-VM-Dienstkonto verwendet, sofern Sie kein vom Nutzer verwaltetes VM-Dienstkonto festlegen, wenn Sie einen Cluster erstellen.Die Rolle Dataproc-Worker bietet dem VM-Dienstkonto die Mindestberechtigungen, die zur Anwendung von Cloud Dataproc erforderlich sind. Zusätzliche Rollen sind erforderlich, um Lese- und Schreibzugriff auf Daten in Google Cloud-Ressourcen wie BigQuery zu gewähren.
Dataproc-Dienst-Agent-Dienstkonto: Dataproc erstellt dieses Dienstkonto mit der Rolle Dataproc-Dienst-Agent in einem Google Cloud-Projekt des Dataproc-Nutzers. Dieses Dienstkonto kann beim Erstellen eines Clusters nicht durch ein benutzerdefiniertes Dienstkonto ersetzt werden. Dieses Dienst-Agent-Konto wird verwendet, um Vorgänge auf der Dataproc-Steuerungsebene auszuführen, z. B. das Erstellen, Aktualisieren und Löschen von Cluster-VMs (sieheDataproc-Dienst-Agent (Identität der Steuerungsebene)).
Standardmäßig verwendet Dataproc die
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
als Dienst-Agent-Konto. Wenn dieses Dienstkonto nicht vorhanden ist, verwendet Dataproc das Google APIs-Dienst-Agent-Konto[project-number]@cloudservices.gserviceaccount.com
für Steuerungsebenenvorgänge.
Freigegebene VPC-Netzwerke: Wenn der Cluster das freigegebene VPC-Netzwerk verwendet, muss ein Administrator für freigegebene VPCs den beiden oben genannten Dienstkonten die Rolle des Netzwerknutzers für das Hostprojekt der freigegebenen VPC zuweisen. Weitere Informationen finden Sie unter:
- Cluster erstellen, der ein VPC-Netzwerk in einem anderen Projekt verwendet
- Dokumentation zu freigegebenen VPCs: Dienstkonten als Dienstprojektadministratoren konfigurieren
Zugriffsbereiche für Dataproc-VM
Mithilfe von VM-Zugriffsbereichen wird VM-Instanzen Zugriff auf APIs gewährt oder beschränkt. Sie ermitteln zusammen mit dem VM-Dienstkonto den API-Zugriff.
Wenn beispielsweise Cluster-VMs nur den Bereich https://www.googleapis.com/auth/storage-full
gewährt werden, können Anwendungen, die auf Cluster-VMs ausgeführt werden, Cloud Storage APIs aufrufen. Sie können jedoch keine Anfragen an BigQuery senden, auch wenn dem VM-Dienstkonto, in dem sie ausgeführt werden, eine BigQuery-Rolle mit umfassenden Berechtigungen zugewiesen wird.
Standardmäßige Dataproc-VM-Bereiche. Wenn bei der Erstellung eines Clusters keine Bereiche angegeben werden (siehe gcloud dataproc cluster create --scopes), haben Dataproc-VMs die folgenden Standardbereiche:
https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/bigtable.admin.table https://www.googleapis.com/auth/bigtable.data https://www.googleapis.com/auth/cloud.useraccounts.readonly https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/devstorage.read_write https://www.googleapis.com/auth/logging.write
Wenn Sie beim Erstellen eines Clusters Bereiche angeben, haben Cluster-VMs die von Ihnen angegebenen Bereiche und die nachfolgende Mindestmenge an erforderlichen Bereichen (auch wenn Sie sie nicht angeben):
https://www.googleapis.com/auth/cloud.useraccounts.readonly https://www.googleapis.com/auth/devstorage.read_write https://www.googleapis.com/auth/logging.write
Cluster mit einem nutzerverwalteten VM-Dienstkonto erstellen
Sie können beim Erstellen eines Clusters ein VM-Dienstkonto angeben. Cloud Dataproc unterstützt das Angeben oder Ändern des VM-Dienstkontos nicht, nachdem der Cluster erstellt wurde.
Warum ein nutzerverwaltetes VM-Dienstkonto angeben? Dienstkonten sind mit IAM-Rollen verknüpft. Wenn Sie beim Erstellen eines Dataproc-Clusters ein nutzerverwaltetes VM-Dienstkonto angeben, können Sie dieses dazu verwenden, um Cluster mit detaillierten Zugriffs- und Kontrolloptionen für Projektressourcen zu erstellen. Wenn Sie verschiedene nutzerverwaltete VM-Dienstkonten mit unterschiedlichen Dataproc-Clustern verwenden, können Sie Cluster mit unterschiedlichem Zugriff auf Cloud-Ressourcen einrichten.
Bevor Sie den Cluster erstellen, erstellen Sie das Dienstkonto in dem Projekt, in dem der Cluster erstellt wird. Gewähren Sie dem Dienstkonto die Rolle Dataproc-Worker und alle zusätzlichen Rollen, die von Ihren Jobs benötigt werden, um beispielsweise das Lesen und Schreiben von Daten aus und in Google Cloud-Ressourcen zu ermöglichen, z. B. als BigQuery.
gcloud-Befehl
Verwenden Sie den Befehl gcloud clusters create, um einen neuen Cluster mit einem vom Nutzer angegebenen VM-Dienstkonto und VM-Zugriffsbereichen zu erstellen.
gcloud dataproc clusters create cluster-name \ --region=region \ --service-account=service-account-name@project-id.iam.gserviceaccount.com \ --scopes=scope[, ...]
REST API
Legen Sie serviceAccount
und serviceAccountScopes
im GceClusterConfig-Objekt als Teil der clusters.create-API-Anfrage fest.
Console
Derzeit wird das Festlegen eines vom Nutzer verwalteten Dataproc-VM-Dienstkontos in der Google Cloud Console nicht unterstützt. Sie können den Bereich „cloud-platform“ für die VMs in Ihrem Cluster festlegen. Klicken Sie dazu im Bereich Projektzugriff des Steuerfelds Sicherheit verwalten auf der Dataproc-Seite Cluster erstellen in der Google Cloud Console auf „API-Zugriff auf alle Google Cloud-Dienste zulassen“.
Weitere Informationen
- Dienstkonten
- Dataproc-Berechtigungen und IAM-Rollen
- Dataproc-Principals und -Rollen
- Dataproc-Dienstkonto – sichere Mehrmandantenfähigkeit
- Persönliche Cluster Dataproc-Authentifizierung
- Dataproc Granular IAM