In diesem Dokument wird beschrieben, wie Sie Rollen für Dienstkonten für Identity and Access Management ansehen und verwalten. Eine Serverless for Apache Spark-Batcharbeitslast oder interaktive Sitzung wird als Compute Engine-Standarddienstkonto ausgeführt, sofern Sie beim Senden einer Batcharbeitslast, Erstellen einer Sitzung oder Erstellen einer Sitzungslaufzeitvorlage kein benutzerdefiniertes Dienstkonto angeben.
Erforderliche Dataproc-Worker-Rolle
Das Dienstkonto für Serverless for Apache Spark-Arbeitslasten muss Identity and Access Management-Rolle Dataproc-Worker haben. Das Compute Engine-Standarddienstkonto (project_number-compute@developer.gserviceaccount.com
), das von Serverless for Apache Spark verwendet wird, hat diese Rolle standardmäßig. Wenn Sie ein eigenes Dienstkonto für Ihre Batcharbeitslast, Sitzung oder Sitzungsvorlage angeben, müssen Sie Ihrem Dienstkonto die Rolle „Dataproc Worker“ zuweisen.
Für andere Vorgänge, z. B. zum Lesen und Schreiben von Daten in BigQuery, sind möglicherweise zusätzliche Rollen erforderlich.
IAM-Dienstkontorollen ansehen und verwalten
So rufen Sie die Rollen auf, die dem Dienstkonto für Serverless for Apache Spark-Arbeitslasten zugewiesen sind, und verwalten sie:
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf Von Google bereitgestellte Rollenzuweisungen einschließen.
Rufen Sie die Rollen auf, die für das Dienstkonto der Arbeitslast aufgeführt sind. Das folgende Bild zeigt die erforderliche Rolle Dataproc-Worker für das Compute Engine-Standarddienstkonto (
project_number-compute@developer.gserviceaccount.com
), das standardmäßig von Serverless für Apache Spark als Dienstkonto für Arbeitslasten verwendet wird.Sie können auf das Stiftsymbol in der Dienstkontozeile klicken, um Dienstkontorollen zuzuweisen oder zu entfernen.
Projektübergreifendes Dienstkonto
Sie können eine Serverless for Apache Spark-Batcharbeitslast senden, die ein Dienstkonto aus einem anderen Projekt als dem Batcharbeitslastprojekt (dem Projekt, in dem der Batch gesendet wird) verwendet. In diesem Abschnitt wird das Projekt, in dem sich das Dienstkonto befindet, als service account project
bezeichnet und das Projekt, in dem der Batch gesendet wird, als batch project
.
Warum ein projektübergreifendes Dienstkonto zum Ausführen einer Batch-Arbeitslast verwenden? Ein möglicher Grund ist, dass dem Dienstkonto im anderen Projekt IAM-Rollen zugewiesen wurden, die einen detaillierten Zugriff auf die Ressourcen in diesem Projekt ermöglichen.
Einrichtungsschritte
Im Dienstkonto-Projekt:
Ermöglichen, dass Dienstkonten projektübergreifend angehängt werden können
Enable the Dataproc API.
Weisen Sie Ihrem E-Mail-Konto (dem Nutzer, der den Cluster erstellt) die Rolle Dienstkontonutzer entweder für das Dienstkontoprojekt oder, für eine detailliertere Steuerung, für das Dienstkonto im Dienstkontoprojekt zu.
Weitere Informationen zum Zuweisen von Rollen auf Projektebene finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten. Informationen zum Zuweisen von Rollen auf Dienstkontoebene finden Sie unter Zugriff auf Dienstkonten verwalten.
Beispiele für die gcloud CLI:
Mit dem folgenden Beispielbefehl wird dem Nutzer die Rolle „Dienstkontonutzer“ auf Projektebene zugewiesen:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=USER_EMAIL \ --role="roles/iam.serviceAccountUser"
Hinweise:
USER_EMAIL
: Geben Sie die E-Mail-Adresse Ihres Nutzerkontos im Formatuser:user-name@example.com
an.
Mit dem folgenden Beispielbefehl wird dem Nutzer die Rolle „Dienstkontonutzer“ auf Dienstkontoebene zugewiesen:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=USER_EMAIL \ --role="roles/iam.serviceAccountUser"
Hinweise:
USER_EMAIL
: Geben Sie die E-Mail-Adresse Ihres Nutzerkontos im folgenden Format an:user:user-name@example.com
.
Weisen Sie dem Dienstkonto im Batchprojekt die Rolle Dataproc Worker zu.
Beispiel für die gcloud CLI:
gcloud projects add-iam-policy-binding BATCH_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \ --role="roles/dataproc.worker"
Im Batchprojekt:
Weisen Sie dem Dienstkonto des Dataproc-Dienst-Agents die Rollen Dienstkontonutzer und Ersteller von Dienstkonto-Tokens entweder im Dienstkontoprojekt oder, für eine detailliertere Steuerung, dem Dienstkonto im Dienstkontoprojekt zu. Dadurch erlauben Sie dem Dataproc-Dienst-Agent-Dienstkonto im Batchprojekt, Tokens für das Dienstkonto im Dienstkonto-Projekt zu erstellen.
Weitere Informationen zum Zuweisen von Rollen auf Projektebene finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten. Informationen zum Zuweisen von Rollen auf Dienstkontoebene finden Sie unter Zugriff auf Dienstkonten verwalten.
Beispiele für die gcloud CLI:
Mit den folgenden Befehlen werden dem Dienstkonto des Dataproc-Dienst-Agents im Batchprojekt die Rollen „Dienstkontonutzer“ und „Ersteller von Dienstkonto-Tokens“ auf Projektebene zugewiesen:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Mit den folgenden Beispielbefehlen werden dem Dataproc-Dienst-Agent-Dienstkonto im Batchprojekt die Rollen „Dienstkontonutzer“ und „Ersteller von Dienstkonto-Tokens“ auf Dienstkontoebene zugewiesen:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountUser"
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Weisen Sie dem Compute Engine-Dienst-Agent-Dienstkonto im Batchprojekt die Rolle Ersteller von Dienstkonto-Tokens entweder für das Dienstkonto-Projekt oder, für eine detailliertere Steuerung, für das Dienstkonto im Dienstkonto-Projekt zu. Dadurch gewähren Sie dem Dienstkonto des Compute Agent Service Agent im Batchprojekt die Möglichkeit, Tokens für das Dienstkonto im Dienstkontoprojekt zu erstellen.
Weitere Informationen zum Zuweisen von Rollen auf Projektebene finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten. Informationen zum Zuweisen von Rollen auf Dienstkontoebene finden Sie unter Zugriff auf Dienstkonten verwalten.
Beispiele für die gcloud CLI:
Mit dem folgenden Beispielbefehl wird dem Compute Engine-Dienst-Agent-Dienstkonto im Batchprojekt die Rolle „Ersteller von Dienstkonto-Tokens“ auf Projektebene zugewiesen:
gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Mit dem folgenden Beispielbefehl wird dem Dienstkonto des Compute Engine-Dienst-Agents im Clusterprojekt die Rolle „Ersteller von Dienstkonto-Tokens“ auf Dienstkontoebene zugewiesen:
gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \ --member=serviceAccount:service-BATCH_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role="roles/iam.serviceAccountTokenCreator"
Batcharbeitslast senden
Nachdem Sie die Einrichtungsschritte abgeschlossen haben, können Sie eine Batch-Arbeitslast einreichen. Geben Sie das Dienstkonto im Dienstkontoprojekt als das Dienstkonto an, das für den Batch-Arbeitslast verwendet werden soll.