In diesem Dokument werden die Google Cloud-Dienstkonten und -Schlüssel erläutert, die Sie zum Erstellen von Clustern in Ihrer Anthos-Cluster auf VMware-Implementierung (GKE On-Prem) benötigen.
Diese Anleitung ist vollständig. Eine kürzere Einführung in die Verwendung eines Dienstkontos finden Sie unter Dienstkonto (Kurzanleitung).
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 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.
Es ist wichtig zu verstehen, 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
Dem jeweiligen Dienstkonto müssen bestimmte Rollen für das entsprechende Google Cloud-Projekt gewährt werden. Beispielsweise muss Ihrem Connect-Register-Dienstkonto die Rolle gkehub.admin
in Ihrem Verbindungsprojekt zugewiesen werden.
Wenn Sie einem Google Cloud-Projekt Rollen 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
Anthos-Cluster auf VMware verwenden 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
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 den Konfigurationsdateien müssen nicht eindeutig sein. Beispiel: gkeConnect.projectID
kann mit cloudAuditLogging.projectID
identisch sein. Tatsächlich können alle Projekt-IDs in Ihrer Konfigurationsdatei identisch sein.
Ihrem Dienstkonto für den Komponentenzugriff müssen die folgenden IAM-Rollen für jedes Google Cloud-Projekt gewährt werden, das in den Administrator- und Nutzercluster-Konfigurationsdateien angegeben ist. Diese Rollen sind erforderlich, damit Anthos-Cluster auf VMware Preflight-Prüfungen ausführen kann:
serviceusage.serviceUsageViewer
iam.roleViewer
iam.serviceAccountViewer
Führen Sie für jedes Google Cloud-Projekt, das Sie in den Clusterkonfigurationsdateien angegeben haben, die folgenden Befehle aus, um Ihrem Komponentenzugriffsdienstkonto die erforderlichen Rollen zuzuweisen:
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.roleViewer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer"
Ersetzen Sie Folgendes:
PROJECT_ID: die ID eines der Google Cloud-Projekte, die Sie in Ihren Konfigurationsdateien angegeben haben
SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos für den Komponentenzugriff.
Connect-Register-Dienstkonto
Anthos-Cluster auf VMware verwenden dieses Dienstkonto, um Ihre Nutzercluster 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 Google Cloud-Projekts, das das übergeordnete Element Ihres Connect-Registrierungsdienstkontos 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 Google Cloud-Projekt, in dem Sie Ihre 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.
Logging-Monitoring-Dienstkonto
Anthos-Cluster auf VMware verwenden 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 Google 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 in Ihrem Logging-Monitoring-Projekt die folgenden Rollen zugewiesen sein. Dies ist das Google Cloud-Projekt, in dem Sie Logs für Ihre Cluster aufrufen möchten.
stackdriver.resourceMetadata.writer
opsconfigmonitoring.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/opsconfigmonitoring.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
Anthos-Cluster auf VMware verwenden 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 Nutzungsmessungsprojekt zugewiesen werden.
Dies ist das Google Cloud-Projekt, in dem Sie Nutzungsdaten für Ihren Nutzercluster abrufen 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
Anthos-Cluster auf VMware verwenden dieses Dienstkonto, um Kubernetes-Audit-Logs von Ihrem Cluster an Cloud-Audit-Logging 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 für Binärautorisierungen
Anthos-Cluster auf VMware verwenden dieses Dienstkonto, um die API zur Binärautorisierung 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.