Dienstkonten und Schlüssel

Auf dieser Seite werden die Google Cloud-Dienstkonten und -Schlüssel erläutert, die Sie zum Erstellen von Clustern in GKE On-Prem benötigen.

Übersicht über Dienstkonten

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

  • Komponenten-Zugriff-Dienstkonto
  • 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, verknüpfen Sie es mit einem Google Cloud-Projekt. Dieses 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 Rolle der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) zuweisen, wird die Rolle dem Dienstkonto in einem bestimmten Cloud-Projekt zugewiesen. Dies entspricht dem allgemeinen Muster für das Zuweisen einer Rolle zu einer Identität in 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.

Es ist wichtig zu verstehen, dass Sie einem Dienstkonto für ein Cloud-Projekt, das nicht das übergeordnete Projekt des Dienstkontos ist, eine Rolle zuweisen können.

Dienstkonten mit gkeadm automatisch erstellen

Auf dieser Seite wird gezeigt, wie Sie Dienstkonten manuell erstellen und Dienstkonten Rollen zuweisen. 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-Prem verwendet dieses Dienstkonto, um GKE-On-Prem-Komponenten in Ihrem Namen 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.

Ihrem Dienstkonto für den Komponentenzugriff Rollen zuweisen

Die Konfigurationsdateien für die Administrator- und Nutzercluster haben mehrere Felder, die eine Projekt-ID angeben.

In der Konfigurationsdatei für den Administratorcluster:

stackdriver:
  projectID: ""
...
cloudAuditLogging:
  projectid: ""

In der Konfigurationsdatei des Nutzerclusters:

stackdriver:
  projectID: ""
...
gkeConnect:
  projectID: ""
...
usageMetering:
  bigQueryProjectID: ""
...
cloudAuditLogging:
  projectid: ""

Die Projekt-IDs in Ihren Konfigurationsdateien müssen nicht eindeutig sein. Beispiel: gkeConnect.projectID kann mit cloudAuditLogging.projectID identisch sein. Tatsächlich können alle Projekt-IDs in Ihren Konfigurationsdateien identisch sein.

Ihrem Dienstkonto für den Komponentenzugriff müssen die folgenden IAM-Rollen für jedes Cloud-Projekt zugewiesen werden, das in den Konfigurationsdateien für Administrator- und Nutzercluster angegeben ist. Diese Rollen sind erforderlich, damit GKE On-Prem Preflight-Prüfungen ausführen kann:

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

Führen Sie für jedes Cloud-Projekt, das Sie in den Konfigurationsdateien des Clusters angegeben haben, die folgenden Befehle aus, um Ihrem Komponentenzugriffsdienstkonto die erforderlichen Rollen zu gewähren:

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

Dabei gilt:

  • PROJECT_ID: Die ID eines der Cloud-Projekte, das Sie in Ihren Konfigurationsdateien angegeben haben.

  • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos für den Komponentenzugriff.

Connect-Register-Dienstkonto

GKE On-Prem verwendet dieses Dienstkonto, um Ihre GKE On-Prem-Cluster bei Google Cloud 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 Cloud-Projekts, das dem 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.admin für Ihr Verbindungsprojekt zugewiesen sein. Dies ist das Cloud-Projekt, in dem Sie Ihre GKE On-Prem-Cluster ansehen und verwalten möchten.

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

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

Ersetzen Sie PROJECT_ID durch die ID Ihres Verbindungs-Projekts.

Connect-Agent-Dienstkonto

GKE On-Prem verwendet dieses Dienstkonto, um eine Verbindung zwischen GKE On-Prem und Google Cloud aufrechtzuerhalten.

So erstellen Sie ein Connect-Agent-Dienstkonto:

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

Ersetzen Sie PROJECT_ID durch die ID des Cloud-Projekts, das dem Connect-Agent-Dienstkonto übergeordnet sein soll.

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

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

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

Ihrem Connect-Agent-Dienstkonto muss die Rolle gkehub.connect für Ihr Verbindungsprojekt zugewiesen sein. Dies ist das Cloud-Projekt, in dem Sie Ihre GKE On-Prem-Cluster ansehen und verwalten möchten.

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

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

Ersetzen Sie PROJECT_ID durch die ID Ihres Verbindungs-Projekts.

Logging-Monitoring-Dienstkonto

GKE On-Prem verwendet dieses Dienstkonto, um Logs und Messwerte von 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 Cloud-Projekts, das dem 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

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

Ihrem Logging-Monitoring-Dienstkonto müssen für Ihr Logging-Monitoring-Projekt die folgenden Rollen zugewiesen sein. Dies ist das Cloud-Projekt, in dem Sie Logs für Ihre GKE On-Prem-Cluster ansehen möchten.

  • stackdriver.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor

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

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

Ersetzen Sie PROJECT_ID durch die ID Ihres Logging-Monitoring-Projekts.

Optionale Dienstkonten

Dienstkonto zur Nutzungsmessung

GKE On-Prem 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 Cloud-Projekts, das dem Dienstkonto zur Nutzungsmessung als übergeordnetes Element dienen 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 Nutzungsmessungsprojekt zugewiesen werden. Dies ist das Cloud-Projekt, in dem Sie Nutzungsdaten für Ihren GKE On-Prem-Cluster anzeigen möchten.

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

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

Ersetzen Sie PROJECT_ID durch die ID Ihres Nutzungsmessprojekts.

Audit-Logging-Dienstkonto

GKE On-Prem 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 Cloud-Projekts, das dem 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 für Binärautorisierungen

GKE On-Prem 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.