Dienstkonten und Schlüssel

Auf dieser Seite werden die Google Cloud-Dienstkonten und Schlüssel erläutert, die Sie für die Installation von GKE On-Prem benötigen.

Übersicht über Dienstkonten

Für die Installation von GKE On-Prem sind die folgenden Dienstkonten erforderlich:

  • Dienstkonto auf der Zulassungsliste
  • Connect-Register-Dienstkonto
  • Connect-Agent-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, wird es in einem Google Cloud-Projekt angelegt. Das Google Cloud-Projekt, in dem Sie ein Dienstkonto erstellen, wird als übergeordnetes Projekt des Dienstkontos bezeichnet. Das Dienstkonto ist ein Mitglied des übergeordneten Projekts.

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 Identity and Access Management-Rolle (IAM) zuweisen, weisen Sie die Rolle dem Dienstkonto für ein bestimmtes Google Cloud-Projekt zu.Dies entspricht dem allgemeinen Muster der Zuweisung einer Rolle zu einer 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 die Identität und das Google Cloud-Projekt die Ressource.

Beachten Sie, dass Sie einem Dienstkonto für ein Projekt, das nicht das übergeordnete Projekt des Dienstkontos ist, eine Rolle zuweisen können.

Dienstkonto auf der Zulassungsliste

Sie haben bereits ein Dienstkonto auf der Zulassungsliste.

Wenn Sie noch keine JSON-Schlüsseldatei für Ihr Dienstkonto auf der Zulassungsliste erstellt haben, legen Sie jetzt eine an:

gcloud iam service-accounts keys create whitelisted-key.json \
   --iam-account [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]

Dabei ist [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Dienstkontos auf der Zulassungsliste.

Ihrem Dienstkonto auf der Zulassungsliste Rollen zuweisen

Die GKE On-Prem-Konfigurationsdatei enthält mehrere Felder, die eine Google Cloud-Projekt-ID festlegen.

usercluster:
  usagemetering:
    bigqueryprojectid: ""
...
gkeconnect:
  projectid: ""
...
stackdriver:
  projectid: ""
...
cloudauditlogging:
  projectid: ""

Die Projekt-IDs in Ihrer GKE On-Prem-Konfigurationsdatei müssen nicht eindeutig sein. Beispiel: gkeconnect.projectid kann mit stackdriver.projectid identisch sein. Tatsächlich können alle Projekt-IDs in Ihrer Konfigurationsdatei identisch sein.

Ihrem Dienstkonto auf der Zulassungsliste müssen die folgenden IAM-Rollen für jedes Projekt zugewiesen werden, das in Ihrer GKE On-Prem-Konfigurationsdatei angegeben ist:

  • serviceusage.serviceUsageViewer
  • iam.serviceAccountCreator
  • iam.roleViewer

Wenn Sie gkeadm zum Erstellen Ihrer Administrator-Workstation verwendet haben, gkeadm setzen Sie die folgenden Felder in Ihrer GKE On-Prem-Konfigurationsdatei auf die ID des übergeordneten Projekts Ihres Dienstkontos auf der Zulassungsliste.

  • gkeconnect.projectid
  • stackdriver.projectid

Außerdem hat gkeadm Ihrem Dienstkonto auf der Zulassungsliste die erforderlichen Rollen für das übergeordnete Projekt Ihres Dienstkontos auf der Zulassungsliste zugewiesen.

Wenn Sie gkeadm nicht zum Erstellen Ihrer Administrator-Workstation verwendet haben, müssen Sie die Rollen selbst zuweisen.

Weisen Sie Ihrem Dienstkonto auf der Zulassungsliste für jedes in der GKE On-Prem-Konfigurationsdatei angegebene Projekt die erforderlichen Rollen zu:

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/iam.serviceAccountCreator"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/iam.roleViewer"

Dabei ist [PROJECT_ID] die ID eines der Projekte, die Sie in Ihrer GKE On-Prem-Konfigurationsdatei angegeben haben.

Andere erforderliche Dienstkonten

Beachten Sie, dass Sie zusätzlich zu Ihrem Dienstkonto auf der Zulassungsliste folgende Dienstkonten benötigen:

  • Connect-Register-Dienstkonto
  • Connect-Agent-Dienstkonto
  • Logging-Monitoring-Dienstkonto

Je nachdem, wie Sie Ihre Administrator-Workstation erstellt haben, sind diese Dienstkonten möglicherweise bereits vorhanden.

Fall 1: gkeadm hat Dienstkonten für Sie erstellt.

Wenn Sie gkeadm zum Erstellen Ihrer Administrator-Workstation verwendet und das Flag --auto-create-service-accounts übergeben haben, hat gkeadm Folgendes für Sie ausgeführt:

  • Es wurde ein Connect-Register-Dienstkonto erstellt. Dem Connect-Register-Dienstkonto wurden die entsprechenden Cloud IAM-Rollen zugewiesen. Eine JSON-Schlüsseldatei für das Connect-Register-Dienstkonto wurde erstellt. Die JSON-Schlüsseldatei wurde auf Ihre Administrator-Workstation kopiert.

  • Ein Connect-Agent-Dienstkonto wurde erstellt. Dem Connect-Agent-Dienstkonto wurden die entsprechenden IAM-Rollen zugewiesen. Eine JSON-Schlüsseldatei für das Connect-Agent-Dienstkonto wurde erstellt. Die JSON-Schlüsseldatei wurde auf Ihre Administrator-Workstation kopiert.

  • Es wurde ein Logging-Monitoring-Dienstkonto erstellt. Dem Logging-Monitoring-Dienstkonto wurden die entsprechenden IAM-Rollen zugewiesen. Eine JSON-Schlüsseldatei für das Logging-Monitoring-Dienstkonto wurde erstellt. Die JSON-Schlüsseldatei wurde auf Ihre Administrator-Workstation kopiert.

Wenn gkeadm Dienstkonten für Sie erstellt, werden die Konten im Google Cloud-Projekt erstellt, das dem Dienstkonto auf der Zulassungsliste übergeordnet ist. Außerdem weist gkeadm den Dienstkonten Rollen im selben Projekt zu. Informationen zur Verwendung mehrerer Google Cloud-Projekte finden Sie unter Mehrere Google Cloud-Projekte verwenden.

Fall 2: gkeadm hat keine Dienstkonten für Sie erstellt.

Wenn Sie zum Erstellen Ihrer Administrator-Workstation nicht gkeadm mit dem Flag --auto-create-service-accounts verwendet haben, müssen Sie Ihre eigenen Dienstkonten erstellen. Außerdem müssen Sie für jedes Dienstkonto eine JSON-Schlüsseldatei anlegen und die entsprechenden IAM-Rollen zuweisen.

Eigene Dienstkonten erstellen

Wenn bereits Dienstkonten für Sie vorhanden sind, wie in Fall 1 beschrieben, können Sie diesen Abschnitt überspringen.

In diesem Abschnitt wird gezeigt, wie Sie die Dienstkonten erstellen, die Sie für die Installation und die Nutzung von GKE On-Prem benötigen. Außerdem erfahren Sie, wie Sie JSON-Schlüsseldateien für Ihre Dienstkonten anlegen und den Dienstkonten die entsprechenden IAM-Rollen zuweisen.

Connect-Register-Dienstkonto

Connect verwendet dieses Dienstkonto, um Ihre GKE On-Prem-Cluster bei Google Cloud zu registrieren.

Erstellen Sie Ihr Connect-Register-Dienstkonto:

gcloud iam service-accounts create connect-register-svc-account --project [PARENT_PROJECT_ID]

Dabei ist [PARENT_PROJECT_ID] die ID des Projekts, das Ihrem Connect-Register-Dienstkonto übergeordnet sein soll.

Erstellen Sie einen Schlüssel für Ihr Connect-Register-Dienstkonto:

gcloud iam service-accounts keys create connect-register-key.json \
   --iam-account [CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL]

Dabei ist [CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Connect-Register-Dienstkontos.

Weisen Sie Ihrem Connect-Register-Dienstkonto die Rolle gkehub.admin zu:

gcloud projects add-iam-policy-binding [CONNECT_PROJECT_ID] \
--member "serviceAccount:[CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/gkehub.admin"

Dabei ist [CONNECT_PROJECT_ID] die ID Ihres Connect-Projekts. Dies ist das Projekt, in dem Sie eine Verbindung zu Ihren GKE On-Prem-Clustern registrieren und herstellen möchten.

Connect-Agent-Dienstkonto

Connect nutzt dieses Dienstkonto, um eine dauerhafte Verbindung zwischen GKE On-Prem und Google Cloud herzustellen.

Erstellen Sie Ihr Connect-Agent-Dienstkonto:

gcloud iam service-accounts create connect-agent-svc-account  --project [PARENT_PROJECT_ID]

Dabei ist [PARENT_PROJECT_ID] die ID des Projekts, das Ihrem Connect-Agent-Dienstkonto übergeordnet sein soll.

Erstellen Sie einen Schlüssel für Ihr Connect-Agent-Dienstkonto:

gcloud iam service-accounts keys create connect-agent-key.json \
   --iam-account [CONNECT_AGENT_SERVICE_ACCOUNT_EMAIL]

Dabei ist [CONNECT_AGENT_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Connect-Agent-Dienstkontos.

Weisen Sie Ihrem Connect-Agent-Dienstkonto die Rolle gkehub.connect zu:

gcloud projects add-iam-policy-binding [CONNECT_PROJECT_ID] \
--member "serviceAccount:[CONNECT_AGENT_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/gkehub.connect"

Dabei ist [CONNECT_PROJECT_ID] die ID Ihres Connect-Projekts. Dies ist das Projekt, in dem Sie eine Verbindung zu Ihren GKE On-Prem-Clustern registrieren und herstellen möchten.

Logging-Monitoring-Dienstkonto

Connect verwendet dieses Dienstkonto, um Logs von Clustern nach Cloud Logging zu exportieren.

Erstellen Sie Ihr Logging-Monitoring-Dienstkonto:

gcloud iam service-accounts create logging-monitoring-svc-account --project [PARENT_PROJECT_ID]

Dabei ist [PARENT_PROJECT_ID] die ID des Projekts, das Ihrem Logging-Monitoring-Dienstkonto übergeordnet sein soll.

Erstellen Sie einen Schlüssel für Ihr Logging-Monitoring-Dienstkonto:

gcloud iam service-accounts keys create logging-monitoring-key.json \
   --iam-account [LOG_MON_SERVICE_ACCOUNT_EMAIL]

Dabei ist [LOG_MON_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Logging-Monitoring-Dienstkontos.

Weisen Sie Ihrem Logging-Monitoring-Dienstkonto die Rollen stackdriver.resourceMetadata.writer, logging.logWriter und monitoring.metricWriter zu:

gcloud projects add-iam-policy-binding [LOG_MON_PROJECT_ID] \
--member "serviceAccount:[LOG_MOM_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding [LOG_MON_PROJECT_ID] \
--member "serviceAccount:[LOG_MOM_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding [LOG_MON_PROJECT_ID] \
--member "serviceAccount:[LOG_MON_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/monitoring.metricWriter"

Dabei ist [LOG_MON_PROJECT_ID] die ID Ihres Logging-Monitoring-Projekts. Dies ist das Projekt, in dem Sie Logs für Ihre GKE On-Prem-Cluster abrufen möchten.

Optionale Dienstkonten

Dienstkonto zur Nutzungsmessung

Die GKE-Nutzungsmessung verwendet dieses Dienstkonto, um Nutzungsdaten in einem BigQuery-Dataset zu speichern.

Wenn Sie die GKE-Nutzungsmessung für einen Cluster aktivieren möchten, benötigen Sie ein Dienstkonto zur Nutzungsmessung. Dieses Dienstkonto wird nicht automatisch mit dem Tool gkeadm erstellt. Sie müssen es daher selbst anlegen.

Erstellen Sie Ihr Dienstkonto zur Nutzungsmessung:

gcloud iam service-accounts create usage-metering-svc-account --project [PARENT_PROJECT_ID]

Dabei ist [PARENT_PROJECT_ID] die ID des Projekts, das Ihrem Dienstkonto zur Nutzungsmessung übergeordnet sein soll.

Erstellen Sie einen Schlüssel für Ihr Dienstkonto zur Nutzungsmessung:

gcloud iam service-accounts keys create usage-metering-key.json \
   --iam-account [USAGE_METERING_SERVICE_ACCOUNT_EMAIL]

Dabei ist [USAGE_METERING_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Dienstkontos zur Nutzungsmessung.

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

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

Dabei ist [USAGE_METERING_PROJECT_ID] die ID Ihres Nutzungsmessungsprojekts. Dies ist das Projekt, in dem Sie Nutzungsdaten für Ihren GKE On Prem-Cluster aufrufen möchten.

Audit-Logging-Dienstkonto

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

Wenn Sie Cloud-Audit-Logs für Ihre GKE On-Prem-Installation aktivieren möchten, benötigen Sie ein Audit-Logging-Dienstkonto. Dieses Dienstkonto wird nicht automatisch mit dem Tool gkeadm erstellt. Sie müssen es daher selbst anlegen.

Erstellen Sie Ihr Audit-Logging-Dienstkonto:

gcloud iam service-accounts create audit-logging-svc-account --project [PARENT_PROJECT_ID]

Dabei ist [PARENT_PROJECT_ID] die ID des Google Cloud-Projekts, das Ihrem Audit-Logging-Dienstkonto übergeordnet sein soll.

Erstellen Sie einen Schlüssel für Ihr Audit Logging-Dienstkonto:

gcloud iam service-accounts keys create audit-logging-key.json \
   --iam-account [AUDIT_LOGGINGSERVICE_ACCOUNT_EMAIL]

Dabei ist [AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL] die E-Mail-Adresse Ihres Audit-Logging-Dienstkontos.

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