Dataproc-Dienstkonten

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-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:

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