Auf dieser Seite erfahren Sie, wie Sie die Steuerungsebene Ihres Google Kubernetes Engine-Clusters (GKE) mit von Ihnen verwalteten Zertifizierungsstellen und Schlüsseln konfigurieren. Diese Anleitung richtet sich an Sicherheitsadministratoren, die bestimmte organisatorische Compliance- oder Richtlinienanforderungen für die Kontrolle der Ausstellung und Signatur von Anmeldedaten haben.
Auf dieser Seite wird ein Teil der optionalen Funktionen der Steuerungsebene in GKE beschrieben, mit denen Sie Aufgaben wie die Überprüfung des Sicherheitsstatus der Steuerungsebene oder die Konfiguration der Verschlüsselung und Anmeldedatensignatur in der Steuerungsebene mit von Ihnen verwalteten Schlüsseln ausführen können. Weitere Informationen finden Sie unter GKE Control Plane Authority.
Standardmäßig werden in Google Cloud verschiedene Sicherheitsmaßnahmen auf die verwaltete Steuerebene angewendet. Auf dieser Seite werden optionale Funktionen beschrieben, mit denen Sie die GKE-Steuerungsebene besser im Blick behalten oder steuern können.
Sie sollten mit den folgenden Konzepten vertraut sein:
- Anfragen zur Zertifikatssignierung (Certificate Signing Requests, CSRs)
- Zertifizierungsstellen (Certificate Authorities, CAs)
- etcd
- GKE-Clusterarchitektur
Anmeldedatenkomponenten der Steuerungsebene
In GKE-Clustern werden bestimmte Zertifizierungsstellen und Schlüssel verwendet, um Anmeldedaten im Cluster auszustellen, z. B. X.509-Zertifikate oder Dienstkonto-Tokens. Sie können Schlüssel im Cloud Key Management Service (Cloud KMS) und Zertifizierungsstellen im Certificate Authority Service (CA-Dienst) erstellen und Ihre Cluster so konfigurieren, dass diese Ressourcen anstelle von von Google Cloudverwalteten Zertifizierungsstellen und Schlüsseln verwendet werden.
Weitere Informationen zu den von Ihnen erstellten Komponenten finden Sie unter Selbstverwaltete Zertifizierungsstellen und Schlüssel.
Verwendung mit anderen Funktionen der GKE-Steuerungsebene
Die GKE Control Plane Authority bietet die folgenden Funktionen für selbst verwaltete Schlüssel:
- Eigene Zertifizierungsstellen (CAs) und Schlüssel verwenden (diese Seite)
- Komponenten der Steuerungsebene verschlüsseln
Lernziele
- Schlüssel in Cloud KMS erstellen
- CAs im CA-Dienst erstellen
- IAM-Rollen (Identity and Access Management) für den GKE-Dienst-Agenten zuweisen
- GKE-Cluster mit eigenen Zertifizierungsstellen und Schlüsseln erstellen
- Prüfen, ob der Cluster Ihre Zertifizierungsstellen und Schlüssel verwendet
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine, Certificate Authority Service, and Cloud Key Management Service APIs:
gcloud services enable container.googleapis.com
privateca.googleapis.com cloudkms.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine, Certificate Authority Service, and Cloud Key Management Service APIs:
gcloud services enable container.googleapis.com
privateca.googleapis.com cloudkms.googleapis.com - Prüfen Sie, ob Ihre Umgebung die Verwendung von GKE Control Plane Authority-Features unterstützt. Wenn Sie diese Funktionen aktivieren möchten, wenden Sie sich an Ihr Google Cloud -Vertriebsteam.
- Damit die Ausstellung und Nutzung von Anmeldedaten zuverlässig erfasst werden kann, müssen die folgenden Audit-Logs zum Datenzugriff aktiviert sein:
- Cloud KMS:
DATA_READ
- CA-Dienst:
ADMIN_READ
undADMIN_WRITE
Informationen zum Aktivieren dieser Logtypen finden Sie unter Audit-Logs zum Datenzugriff aktivieren.
- Cloud KMS:
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen Ihrer eigenen Zertifizierungsstellen und Schlüssel benötigen:
-
Cloud KMS-Schlüssel erstellen:
Cloud KMS-Administrator (
roles/cloudkms.admin
) für Ihr Schlüsselprojekt -
CA-Pools und Stamm-CAs erstellen:
CA Service-Administrator (
roles/privateca.admin
) für Ihr Hauptprojekt -
GKE-Cluster erstellen:
Administrator für Kubernetes Engine-Cluster (
roles/container.clusterAdmin
) für Ihr Clusterprojekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Voraussetzungen
Sie müssen mindestens die GKE-Version 1.31.1-gke.1846000 verwenden.
Beschränkungen
Es gelten folgende Einschränkungen:
- Sie können nur Schlüssel aus Cloud KMS verwenden. Sie können keinen anderen KMS-Anbieter oder einen anderen Verschlüsselungsanbieter verwenden.
- Cloud External Key Manager (Cloud EKM)-Schlüssel werden nicht unterstützt.
- Sie können nur Zertifizierungsstellen aus CA Service verwenden.
Umgebung vorbereiten
In diesem Abschnitt identifizieren Sie Google Cloud -Projekte, die Sie in dieser Anleitung verwenden, und erstellen in Cloud KMS einen Schlüsselbund für Ihre Schlüssel.
Projekte identifizieren
Wir empfehlen, die folgenden separaten Google Cloud -Projekte zu verwenden:
- Schlüsselprojekt: Enthält alle Schlüssel und Zertifizierungsstellen.
- Clusterprojekt: Enthält Ihre GKE-Cluster.
Sie können optional dasselbe Projekt für Ihre Schlüssel, Zertifizierungsstellen und GKE-Cluster verwenden. Wir empfehlen jedoch, separate Projekte zu verwenden, damit die Teams, die kryptografische Vorgänge in Ihrer Organisation verwalten, von den Teams getrennt sind, die Clustervorgänge verwalten.
Schlüsselbund erstellen
Erstellen Sie im Schlüsselprojekt einen Schlüsselbund, der alle Schlüssel für einen bestimmten Cluster enthält. Sie müssen den Schlüsselbund am selben Speicherort wie Ihren GKE-Cluster erstellen.
Führen Sie dazu diesen Befehl aus:
gcloud kms keyrings create KEY_RING_NAME \
--location=us-central1 \
--project=KEY_PROJECT_ID
Ersetzen Sie Folgendes:
KEY_RING_NAME
: ein Name für den Schlüsselbund.KEY_PROJECT_ID
: die Projekt-ID Ihres Schlüsselprojekts.
Schlüssel erstellen
Für jede Anmeldedaten-Authentitätsquelle wie Dienstkontoschlüssel und Zertifizierungsstellen erstellen Sie mit Cloud KMS einen Schlüssel. In diesem Abschnitt erfahren Sie, wie Sie die Schlüssel erstellen, die GKE zum Signieren und Verifizieren von Anmeldedaten im Cluster verwendet.
Je nach den Anforderungen Ihrer Organisation können Sie eigene Eigenschaften für diese Schlüssel angeben. Weitere Informationen findest du auf der Seite Schlüssel erstellen und in der API-Referenz projects.locations.keyRings.cryptoKeys
.
Beachten Sie beim Erstellen dieser Ressourcen in Cloud KMS Folgendes:
- Wenn Sie in Ihrem Schlüsselprojekt bereits einen Schlüsselbund haben, können Sie darin alle Schlüssel speichern, die Sie für die Verwendung mit Ihrem Cluster erstellen.
- Der Schlüsselbund muss sich am selben Google Cloud -Speicherort wie Ihr Cluster befinden, um die Latenz zu minimieren.
- Für Schlüssel muss
asymmetric-signing
als Schlüsselzweck angegeben werden. - Verwenden Sie je nach Schlüsseltyp einen der folgenden Algorithmen:
- Signaturschlüssel für Konten: ein starker RSA-Signatur-PKCS1-Algorithmus wie
rsa-sign-pkcs1-4096-sha256
oderrsa-sign-pkcs1-3072-sha256
. - Schlüssel der Zertifizierungsstelle: Ein sicherer Algorithmus wie
ec-sign-p256-sha256
.
- Signaturschlüssel für Konten: ein starker RSA-Signatur-PKCS1-Algorithmus wie
- Cloud HSM-Hardwareschlüssel werden unterstützt, das Schutzniveau
software
ist jedoch für die meisten Anwendungsfälle ausreichend. Weitere Informationen zu Hardwareschlüsseln finden Sie unter Cloud HSM. - Ändern Sie die Standarddauer für die Schlüsselvernichtung nicht.
- In GKE können Sie Cloud KMS-Schlüssel löschen, die vom Cluster verwendet werden, einschließlich CA-Dienstschlüsseln. Bevor Sie Schlüssel oder Zertifizierungsstellen löschen, müssen Sie sich vergewissern, dass die Ressourcen nicht verwendet werden.
Führen Sie die folgenden Befehle aus, um die Schlüssel zu erstellen:
Erstellen Sie den Signaturschlüssel für das Kubernetes-Dienstkonto, den Sie auch als Bestätigungsschlüssel für das Dienstkonto beim Erstellen des Clusters angeben:
gcloud kms keys create sa-signing-key \ --keyring=KEY_RING_NAME \ --location=us-central1\ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=rsa-sign-pkcs1-4096-sha256 \ --project=KEY_PROJECT_ID
Ersetzen Sie
KEY_PROJECT_ID
durch die Projekt-ID Ihres speziellen Schlüsselprojekts.Erstellen Sie den Schlüssel der Cluster-Stamm-CA:
gcloud kms keys create cluster-ca-key \ --keyring=KEY_RING_NAME \ --location=us-central1\ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Erstellen Sie den etcd-Peer-Stamm-CA-Schlüssel:
gcloud kms keys create etcd-peer-ca-key \ --keyring=KEY_RING_NAME \ --location=us-central1\ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Erstellen Sie den Stamm-CA-Schlüssel der etcd API:
gcloud kms keys create etcd-api-ca-key \ --keyring=KEY_RING_NAME \ --location=us-central1\ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
Erstellen Sie den Schlüssel der Stamm-CA für die Aggregation:
gcloud kms keys create aggregation-ca-key \ --keyring=KEY_RING_NAME \ --location=us-central1\ --purpose="asymmetric-signing" \ --protection-level=hsm \ --default-algorithm=ec-sign-p256-sha256 \ --project=KEY_PROJECT_ID
CAs erstellen
Nachdem Sie die Schlüssel für jede der Steuerungsebenenfunktionen erstellt haben, verwenden Sie jeden Schlüssel, um die CA-Pools und die entsprechenden Stamm-CAs mit dem CA-Dienst zu erstellen:
Erstellen Sie den CA-Pool des Clusters:
gcloud privateca pools create cluster-ca-pool \ --location=us-central1 \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Die Flags
--no-publish-crl
und--no-publish-ca-cert
sind optional. Wenn Sie diese Flags weglassen, werden Zertifikate in einem Cloud Storage-Bucket veröffentlicht. Weitere Informationen finden Sie unter Veröffentlichung von CA-Zertifikaten und CRLs für Zertifizierungsstellen in einem CA-Pool aktivieren.Erstellen Sie die Clusterstamm-CA:
gcloud privateca roots create cluster-root-ca \ --pool=cluster-ca-pool \ --location=us-central1 \ --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/cluster-ca-key/cryptoKeyVersions/1 \ --subject="CN=cluster-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Ersetzen Sie
ORGANIZATION
durch den Namen Ihrer Organisation.Erstellen Sie den etcd-Peer-CA-Pool:
gcloud privateca pools create etcd-peer-ca-pool \ --location=us-central1 \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Erstellen Sie die etcd-Peer-Stamm-CA:
gcloud privateca roots create etcd-peer-root-ca \ --pool=etcd-peer-ca-pool \ --location=us-central1 \ --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/etcd-peer-ca-key/cryptoKeyVersions/1 \ --subject="CN=etcd-peer-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Erstellen Sie den CA-Pool der etcd API:
gcloud privateca pools create etcd-api-ca-pool \ --location=us-central1 \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Erstellen Sie die etcd API-Stamm-CA:
gcloud privateca roots create etcd-api-root-ca \ --pool=etcd-api-ca-pool \ --location=us-central1 \ --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/etcd-api-ca-key/cryptoKeyVersions/1 \ --subject="CN=etcd-api-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
Erstellen Sie den CA-Pool für die Aggregation:
gcloud privateca pools create aggregation-ca-pool \ --location=us-central1 \ --tier=enterprise \ --project=KEY_PROJECT_ID \ --no-publish-crl --no-publish-ca-cert
Erstellen Sie die Stamm-CA für die Aggregation:
gcloud privateca roots create aggregation-root-ca \ --pool=aggregation-ca-pool \ --location=us-central1 \ --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/aggregation-ca-key/cryptoKeyVersions/1 \ --subject="CN=aggregation-ca, O=ORGANIZATION" \ --project=KEY_PROJECT_ID \ --auto-enable
IAM-Rollen dem GKE-Dienst-Agent zuweisen
Der GKE-Dienst-Agent benötigt Zugriff auf die Ressourcen, die Sie in Cloud KMS und im CA-Dienst erstellt haben. Der Dienstagent verwendet diese Ressourcen, um Anmeldedaten im Cluster zu signieren, zu prüfen und auszustellen. Sie können die folgenden vordefinierten IAM-Rollen verwenden:
- Kubernetes Engine KMS Crypto Key User
(
roles/container.cloudKmsKeyUser
) - Zertifikatmanager für CA Service
(
roles/privateca.certificateManager
)
So weisen Sie dem GKE-Dienst-Agent diese Rollen zu:
So finden Sie die Projektnummer Ihres Clusterprojekts:
gcloud projects describe CLUSTER_PROJECT_ID \ --format='value(projectNumber)'
Ersetzen Sie
CLUSTER_PROJECT_ID
durch die Projekt-ID Ihres Clusterprojekts.Weisen Sie dem Dienstkontosignaturschlüssel, den Sie unter Schlüssel erstellen erstellt haben, die Rolle „Kubernetes Engine KMS Crypto Key User“ zu:
gcloud kms keys add-iam-policy-binding sa-signing-key \ --location=us-central1 \ --keyring=KEY_RING_NAME \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/container.cloudKmsKeyUser \ --project=KEY_PROJECT_ID
Ersetzen Sie
CLUSTER_PROJECT_NUMBER
durch die Projektnummer des Clusterprojekts.Weisen Sie den CA-Pools, die Sie unter CAs erstellen erstellt haben, die Rolle „CA Service Certificate Manager“ zu:
gcloud privateca pools add-iam-policy-binding cluster-ca-pool \ --location=us-central1 \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID gcloud privateca pools add-iam-policy-binding etcd-peer-ca-pool \ --location=us-central1 \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID gcloud privateca pools add-iam-policy-binding etcd-api-ca-pool \ --location=us-central1 \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID gcloud privateca pools add-iam-policy-binding aggregation-ca-pool \ --location=us-central1 \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \ --role=roles/privateca.certificateManager \ --project=KEY_PROJECT_ID
Zertifizierungsstellen und Schlüssel in einem neuen Cluster einrichten
Nachdem Sie Schlüssel, Zertifizierungsstellenpools, Stammzertifizierungsstellen erstellt und dem GKE-Dienst-Agent IAM-Rollen zugewiesen haben, erstellen Sie einen neuen Cluster, der diese Ressourcen verwendet.
Für die Flags, die Sie im Befehl zur Clustererstellung angeben, sind die folgenden Ressourcenpfade als Werte erforderlich:
- Pfad zu einer Schlüsselversion in Cloud KMS für den Signaturschlüssel des Dienstkontos, den Sie unter Schlüssel erstellen erstellt haben. Sie geben diesen Pfad für das Flag
service-account-signing-keys
und für das Flagservice-account-verification-keys
an. - Pfad zu jedem der CA-Pools, die Sie unter CAs erstellen erstellt haben.
So konfigurieren Sie einen neuen Cluster für die Verwendung Ihrer Schlüssel und Zertifizierungsstellen:
Suchen Sie den Pfad zur neuesten aktivierten Version des Dienstkontosignaturschlüssels:
gcloud kms keys versions list \ --key=sa-signing-key \ --keyring=KEY_RING_NAME \ --location=us-central1 \ --project=KEY_PROJECT_ID \ --filter="STATE=ENABLED" --sort-by=~ --format="value(name)" | sed 1q
Ersetzen Sie
KEY_PROJECT_ID
durch die Projekt-ID des Schlüsselprojekts.Die Ausgabe sieht in etwa so aus:
projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
Suchen Sie die Pfade zu den von Ihnen erstellten CA-Pools:
gcloud privateca pools list --format="get(name)" \ --project=KEY_PROJECT_ID
Die Ausgabe sieht in etwa so aus:
projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
Die Ausgabe muss alle CA-Pools enthalten, die Sie für GKE erstellt haben.
Cluster erstellen
In diesem Abschnitt erstellen Sie einen Cluster mit verschiedenen Optionen, je nachdem, welche GKE-Steuerungsebenen-Autorisierungsfunktionen Sie konfigurieren möchten. Sie können diese Funktionen nur während der Clustererstellung konfigurieren. Mit den folgenden Befehlen werden Cluster im Autopilot-Modus erstellt. Wenn Sie stattdessen Cluster im Standardmodus erstellen möchten, verwenden Sie dieselben Flags mit dem Befehl gcloud container clusters create
.
Wenn Sie nur die in dieser Anleitung erstellten Zertifizierungsstellen und Schlüssel konfigurieren möchten, führen Sie den folgenden Befehl aus:
gcloud container clusters create-auto example-cluster \ --location=us-central1 \ --project=CLUSTER_PROJECT_ID \ --cluster-version=VERSION \ --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --cluster-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \ --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \ --etcd-api-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \ --aggregation-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
Ersetzen Sie Folgendes:
CLUSTER_PROJECT_ID
: die Projekt-ID des Clusterprojekts.VERSION
: die GKE-Version des Clusters. Es muss 1.31.1-gke.1846000 oder höher sein.
So konfigurieren Sie die Zertifizierungsstellen und Schlüssel sowie die Verschlüsselung des Bootlaufwerks der Steuerungsebene und die etcd-Verschlüsselung:
- Führen Sie alle wichtigen Konfigurationsschritte unter etcd- und Steuerungsebene-Bootlaufwerke verschlüsseln aus.
- Die Pfade zu den einzelnen Schlüsseln finden Sie in der Anleitung unter Verschlüsselungsschlüssel in einem Cluster verwenden.
Erstellen Sie einen Cluster.
gcloud container clusters create-auto example-cluster \ --location=us-central1 \ --project=CLUSTER_PROJECT_ID \ --cluster-version=VERSION \ --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \ --cluster-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \ --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \ --etcd-api-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \ --aggregation-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \ --control-plane-disk-encryption-key=PATH_TO_DISK_KEY \ --gkeops-etcd-backup-encryption-key=PATH_TO_ETCD_BACKUP_KEY
Ersetzen Sie Folgendes:
CLUSTER_PROJECT_ID
: die Projekt-ID des Clusterprojekts.VERSION
: die GKE-Version des Clusters. Es muss 1.31.1-gke.1846000 oder höher sein.PATH_TO_DISK_KEY
: der Pfad zum Laufwerkverschlüsselungsschlüssel.PATH_TO_ETCD_BACKUP_KEY
: Pfad zum internen Verschlüsselungsschlüssel für die etcd-Sicherung.
Sie können diese Flags auch verwenden, wenn Sie einen neuen Cluster im Standardmodus erstellen.
Prüfen, ob der Cluster die angegebenen Schlüssel und Zertifizierungsstellen verwendet
In diesem Abschnitt erfahren Sie, wie Sie die Schlüssel und Zertifizierungsstellen prüfen, die beim Erstellen des Clusters verwendet wurden. Sie können diese Überprüfung mit Cloud Logging oder mit der Google Cloud CLI durchführen.
Schlüssel und Zertifizierungsstellen mithilfe von Logging prüfen
So prüfen Sie die Schlüssel und Zertifizierungsstellen mithilfe von Logging:
Rufen Sie in der Google Cloud -Konsole die Seite Log-Explorer auf:
Geben Sie die folgende Abfrage an:
resource.type="gke_cluster" resource.labels.cluster_name="CLUSTER_NAME" resource.labels.location="CLUSTER_LOCATION" protoPayload.serviceName="container.googleapis.com" protoPayload.methodName=~"google.container.v(1|1alpha1|1beta1).ClusterManager.CreateCluster" protoPayload.request.cluster.userManagedKeysConfig:*
protoPayload.request.cluster.userManagedKeysConfig:*
filtert die Ergebnisse nach Protokollen zur Clustererstellung, die von Ihnen verwaltete Schlüssel und Zertifizierungsstellen enthalten.Klicken Sie auf Abfrage ausführen.
Maximieren Sie in den Ergebnissen das Log zur Clustererstellung. Prüfen Sie, ob die Pfade zu den Schlüsseln und Zertifizierungsstellen mit denen übereinstimmen, die Sie für diesen Cluster erstellt haben, wie im folgenden Beispiel:
# lines omitted for clarity
userManagedKeysConfig: {
aggregationCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool"
clusterCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool"
etcdApiCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool"
etcdPeerCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool"
serviceAccountSigningKeys: [
0: "projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
]
serviceAccountVerificationKeys: [
0: "projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
]
}
Schlüssel und Zertifizierungsstellen mit der gcloud CLI überprüfen
Führen Sie den folgenden Befehl aus, um zu prüfen, ob der Cluster die von Ihnen erstellten Zertifizierungsstellen und Schlüssel verwendet:
gcloud container clusters describe example-cluster \
--location=us-central1 \
--project=CLUSTER_PROJECT_ID
Die Ausgabe sollte das Feld userManagedKeysConfig
enthalten, wie im folgenden Beispiel:
# lines omitted for clarity
userManagedKeysConfig:
sa-signing-key: projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
sa-verification-key: projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
cluster-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool
etcd-peer-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool
etcd-api-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool
aggregation-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekte löschen
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
Löschen Sie den Cluster:
gcloud container clusters delete example-cluster \ --location=us-central1 \ --project=CLUSTER_PROJECT_ID
Deaktivieren Sie die Stamm-CAs:
gcloud privateca roots disable cluster-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \ --project=KEY_PROJECT_ID gcloud privateca roots disable etcd-peer-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \ --project=KEY_PROJECT_ID gcloud privateca roots disable etcd-api-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \ --project=KEY_PROJECT_ID gcloud privateca roots disable aggregation-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \ --project=KEY_PROJECT_ID
Löschen Sie die Stammzertifizierungsstellen:
gcloud privateca roots delete cluster-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \ --project=KEY_PROJECT_ID gcloud privateca roots delete etcd-peer-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \ --project=KEY_PROJECT_ID gcloud privateca roots delete etcd-api-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \ --project=KEY_PROJECT_ID gcloud privateca roots delete aggregation-root-ca \ --location=us-central1 \ --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \ --project=KEY_PROJECT_ID
Löschen Sie die CA-Pools:
gcloud privateca pools delete cluster-ca-pool --location=us-central1 \ --project=KEY_PROJECT_ID gcloud privateca pools delete etcd-peer-ca-pool --location=us-central1 \ --project=KEY_PROJECT_ID gcloud privateca pools delete etcd-api-ca-pool --location=us-central1 \ --project=KEY_PROJECT_ID gcloud privateca pools delete aggregation-ca-pool --location=us-central1 \ --project=KEY_PROJECT_ID
Löschen Sie die Schlüssel:
gcloud kms keys versions destroy 1 \ --location=us-central1 \ --keyring=KEY_RING_NAME \ --key=sa-signing-key \ --project=KEY_PROJECT_ID gcloud kms keys versions destroy 1 \ --location=us-central1 \ --keyring=KEY_RING_NAME \ --key=cluster-ca-key \ --project=KEY_PROJECT_ID gcloud kms keys versions destroy 1 \ --location=us-central1 \ --keyring=KEY_RING_NAME \ --key=etcd-peer-ca-key \ --project=KEY_PROJECT_ID gcloud kms keys versions destroy 1 \ --location=us-central1 \ --keyring=KEY_RING_NAME \ --key=etcd-api-ca-key \ --project=KEY_PROJECT_ID gcloud kms keys versions destroy 1 \ --location=us-central1 \ --keyring=KEY_RING_NAME \ --key=aggregation-ca-key \ --project=KEY_PROJECT_ID
Schlüsselringe können nicht aus Cloud KMS gelöscht werden. Für Schlüsselanhänger fallen jedoch keine zusätzlichen Kosten an.
Nächste Schritte
- Nutzung der Identität ab dem Zeitpunkt der Ausstellung verfolgen
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center