Dienstkonten und Schlüssel

In diesem Dokument werden die Google Cloud-Dienstkonten und -Schlüssel erläutert, die Sie zum Erstellen von Clustern in Ihrer GKE on VMware-Implementierung benötigen.

Diese Anleitung ist vollständig. Eine kürzere Einführung in die Verwendung eines Dienstkontos finden Sie unter Minimale Infrastruktur einrichten.

Hinweise

Google Cloud-Projekte erstellen.

Übersicht über Dienstkonten

Bevor Sie Ihre Administrator- und Nutzercluster erstellen, benötigen Sie folgende Dienstkonten:

  • Komponenten-Zugriff-Dienstkonto
  • Connect-Register-Dienstkonto
  • Logging-Monitoring-Dienstkonto

Je nachdem welche Features Sie aktivieren möchten, benötigen Sie möglicherweise auch einige optionale Dienstkonten.

Informationen zu Dienstkonten und Google Cloud-Projekten

Wenn Sie ein Dienstkonto erstellen, verknüpfen Sie es mit einem Google Cloud-Projekt. Dieses Google Cloud-Projekt wird als übergeordnetes Projekt des Dienstkontos bezeichnet.

Sie können das übergeordnete Projekt eines Dienstkontos anhand der E-Mail-Adresse des Dienstkontos ermitteln. Im Folgenden ist beispielsweise die E-Mail-Adresse eines Dienstkontos mit dem Namen logger dargestellt. Das übergeordnete Projekt ist alice-123.

logger@alice-123.iam.gserviceaccount.com

Wenn Sie einem Dienstkonto eine IAM-Rolle (Identity and Access Management) zuweisen, weisen Sie die Rolle dem Dienstkonto in einem bestimmten Google Cloud-Projekt zu. Dies entspricht dem allgemeinen Muster zum Zuweisen einer Rolle zu einem Prinzip für eine Ressource.

Beispielsweise können Sie dem Dienstkonto logger@alice-123.iam.gserviceaccount.com im Projekt bob-456 die Rolle bigquery.dataEditor zuweisen. In diesem Fall ist das Dienstkonto das Prinzip und das Google Cloud-Projekt die Ressource.

Beachten Sie, dass Sie einem Dienstkonto in einem Google Cloud-Projekt, das nicht das übergeordnete Projekt des Dienstkontos ist, eine Rolle zuweisen können.

Berechtigungen zum Zuweisen von Rollen für Dienstkonten

Jedem Ihrer Dienstkonten müssen bestimmte Rollen im entsprechenden Google Cloud-Projekt gewährt werden. Beispielsweise muss Ihrem Connect-Register-Dienstkonto die Rolle gkehub.editor im Flotten-Hostprojekt zugewiesen sein.

Wenn Sie Rollen für ein Google Cloud-Projekt zuweisen möchten, benötigen Sie bestimmte Berechtigungen für das Projekt. Weitere Informationen finden Sie unter roles/resourcemanager.projectIamAdmin Informationen zu Rollen.

Wenn Sie die erforderlichen Berechtigungen haben, können Sie die Rollen selbst zuweisen. Andernfalls muss eine andere Person in Ihrer Organisation die Rollen für Sie zuweisen.

Dienstkonten mit gkeadm automatisch erstellen

Auf dieser Seite wird gezeigt, wie Sie Dienstkonten manuell erstellen und Rollen zuweisen können. Als Alternative zur manuellen Ausführung dieser Schritte können Sie gkeadm einige der Dienstkonten erstellen und Rollen zuweisen lassen, wenn Sie eine Administrator-Workstation erstellen. Weitere Informationen finden Sie unter Administrator-Workstation erstellen.

Komponenten-Zugriff-Dienstkonto

GKE on VMware verwendet dieses Dienstkonto, um in Ihrem Namen Clusterkomponenten aus Container Registry herunterzuladen.

So erstellen Sie ein Dienstkonto für den Komponentenzugriff:

gcloud iam service-accounts create component-access-sa \
    --display-name "Component Access Service Account" \
    --project PROJECT_ID

Ersetzen Sie PROJECT_ID durch die ID des Google Cloud-Projekts, das das übergeordnete Projekt Ihres Dienstkontos sein soll.

So erstellen Sie einen JSON-Schlüssel für das Dienstkonto für den Komponentenzugriff:

gcloud iam service-accounts keys create component-access-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse des Dienstkontos für den Komponentenzugriff.

Dienstkonto für den Komponentenzugriff Rollen zuweisen

Ihrem Dienstkonto für den Komponentenzugriff müssen die folgenden IAM-Rollen in Ihrem Flotten-Hostprojekt gewährt werden. Diese Rollen sind erforderlich, damit GKE on VMware Preflight-Prüfungen ausführen kann:

  • serviceusage.serviceUsageViewer
  • iam.roleViewer
  • iam.serviceAccountViewer
  • compute.viewer

So weisen Sie die Rollen zu:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/compute.viewer"

Ersetzen Sie Folgendes:

  • FLEET_HOST_PROJECT_ID: die ID Ihres Flotten-Hostprojekts.

  • SERVICE_ACCOUNT_EMAIL ist die E-Mail-Adresse Ihres Dienstkontos für den Komponentenzugriff.

Connect-Register-Dienstkonto

GKE on VMware verwendet dieses Dienstkonto, um Ihre Cluster bei einer Flotte zu registrieren.

So erstellen Sie ein Connect-Register-Dienstkonto:

gcloud iam service-accounts create connect-register-sa \
    --project PROJECT_ID

Ersetzen Sie PROJECT_ID durch die ID des Google Cloud-Projekts, das Ihrem Connect-Register-Dienstkonto übergeordnet sein soll.

So erstellen Sie einen JSON-Schlüssel für Ihr Connect-Register-Dienstkonto:

gcloud iam service-accounts keys create connect-register-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse Ihres Connect-Register-Dienstkontos.

Ihrem Connect-Register-Dienstkonto muss die Rolle gkehub.editor im Flotten-Hostprojekt zugewiesen sein.

So weisen Sie Ihrem Connect-Register-Dienstkonto die Rolle gkehub.editor zu:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/gkehub.editor"

Logging-Monitoring-Dienstkonto

GKE on VMware verwendet dieses Dienstkonto, um Logs und Messwerte aus Clustern nach Cloud Logging und Cloud Monitoring zu exportieren.

So erstellen Sie ein Logging-Monitoring-Dienstkonto:

gcloud iam service-accounts create logging-monitoring-sa \
    --project=PROJECT_ID

Ersetzen Sie PROJECT_ID durch die ID des Google Cloud-Projekts, das Ihrem Logging-Monitoring-Dienstkonto übergeordnet sein soll.

So erstellen Sie einen JSON-Schlüssel für Ihr Logging-Monitoring-Dienstkonto:

gcloud iam service-accounts keys create logging-monitoring-key.json \
    --iam-account SERVICE_ACCOUNT_EMAIL

Ihrem Logging-Monitoring-Dienstkonto müssen die folgenden Rollen in Ihrem Flotten-Hostprojekt gewährt werden:

  • opsconfigmonitoring.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor
  • kubernetesmetadata.publisher

So weisen Sie Ihrem Logging-Monitoring-Dienstkonto die erforderlichen Rollen zu:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.dashboardEditor"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/kubernetesmetadata.publisher"

Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse Ihres Logging-Monitoring-Dienstkontos.

Optionale Dienstkonten

Audit-Logging-Dienstkonto

GKE on VMware verwendet dieses Dienstkonto, um Kubernetes-Audit-Logs von Ihrem Cluster an Cloud-Audit-Logs zu senden.

So erstellen Sie ein Audit-Logging-Dienstkonto:

gcloud iam service-accounts create audit-logging-sa \
    --project PROJECT_ID

Ersetzen Sie PROJECT_ID durch die ID des Google Cloud-Projekts, das Ihrem Audit-Logging-Dienstkonto übergeordnet sein soll.

So erstellen Sie einen JSON-Schlüssel für Ihr Audit-Logging-Dienstkonto:

gcloud iam service-accounts keys create audit-logging-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse Ihres Audit-Logging-Dienstkontos.

Sie müssen Ihrem Audit-Logging-Dienstkonto keine Rollen zuweisen.

Dienstkonto zur Nutzungsmessung

GKE on VMware verwendet dieses Dienstkonto, um Nutzungsdaten in einem BigQuery-Dataset zu speichern.

So erstellen Sie ein Dienstkonto zur Nutzungsmessung:

gcloud iam service-accounts create usage-metering-sa \
    --project PROJECT_ID

Ersetzen Sie PROJECT_ID durch die ID des Google Cloud-Projekts, das Ihrem Dienstkonto zur Nutzungsmessung übergeordnet sein soll.

So erstellen Sie einen JSON-Schlüssel für Ihr Dienstkonto zur Nutzungsmessung:

gcloud iam service-accounts keys create usage-metering-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse Ihres Dienstkontos zur Nutzungsmessung.

Ihrem Dienstkonto zur Nutzungsmessung muss die Rolle bigquery.dataEditor für Ihr Projekt zur Nutzungsmessung gewährt worden sein. Dies ist das Google Cloud-Projekt, in dem Sie Nutzungsdaten für Ihren Nutzercluster ansehen möchten.

So weisen Sie Ihrem Dienstkonto zur Nutzungsmessung die Rolle bigquery.dataEditor zu:

gcloud projects add-iam-policy-binding USAGE_METERING_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/bigquery.dataEditor"

Ersetzen Sie USAGE_METERING_PROJECT_ID durch die ID Ihres Nutzungsmessprojekts.

Dienstkonto für Binärautorisierungen

GKE on VMware verwendet dieses Dienstkonto, um die Binary Authorization API aufzurufen.

Weitere Informationen zum Erstellen eines Dienstkontos für die Binärautorisierung finden Sie unter Binärautorisierung in GKE On-Prem.

Nächste Schritte

Erstellen Sie eine Administrator-Workstation.