Certificate Authority Service für Managed Cloud Service Mesh konfigurieren
Wenn Sie Certificate Authority Service in verwaltetes Cloud Service Mesh einbinden, können Sie Arbeitslastzertifikate mit privaten Zertifizierungsstellen anstelle der standardmäßigen Cloud Service Mesh-Zertifizierungsstelle ausstellen. Mit dieser Einrichtung können Sie Signaturschlüssel in Cloud HSM sichern, Zertifikate mit einem benutzerdefinierten Unternehmensstamm verknüpfen und die Anforderungen zur Einhaltung regulatorischer Anforderungen in mehreren Clustern erfüllen.
Im Gegensatz zur Standard-Mesh-Zertifizierungsstelle gilt für CA Service ein explizites SLA und es wird separat in Rechnung gestellt. Da CA Service bei der Clustererstellung nicht in der Flotten-Standardkonfiguration unterstützt wird, müssen Sie Cloud Service Mesh pro Cluster konfigurieren. Informationen zu clusterinternen Steuerungsebenen finden Sie unter Standardfeatures und Certificate Authority (CA) Service installieren.
Vorbereitung
Sie sollten Folgendes bereits haben:
- Ein Cloud-Projekt
- Ein Cloud-Rechnungskonto
- Erforderliche Berechtigungen zum Bereitstellen von Cloud Service Mesh
- Workload Identity-Föderation für GKE in Ihren Clustern und Knotenpools aktiviert.
-
Ein oder mehrere Cluster mit einer unterstützten Version von GKE in einer der unterstützten Regionen. Informationen zum Erstellen eines Google Kubernetes Engine-Clusters mit aktiviertem Cloud Service Mesh finden Sie in der Konfiguration pro Cluster im Dokument Verwaltete Cloud Service Mesh-Steuerungsebene in der Google Kubernetes Engine bereitstellen. Wenn Sie verwaltetes Cloud Service Mesh als Standardkonfiguration für Ihre Flotte aktivieren und Cluster während der Clustererstellung bei der Flotte registrieren, wird nur Mesh CA unterstützt. Sie müssen Cloud Service Mesh pro Cluster konfigurieren und CA Service explizit für jeden Cluster aktivieren.
Voraussetzungen
Aktivieren Sie die erforderliche API in dem Projekt, in dem der CA-Pool konfiguriert wird.
gcloud services enable privateca.googleapis.com \
--project=CA_PROJECT_ID
CA Service konfigurieren
- Achten Sie darauf, dass sich der CA-Pool in der Stufe
DevOpsund in derselben Region wie der Cluster befindet, den er bedient, um übermäßige Latenzprobleme oder potenzielle regionenübergreifende Ausfälle zu vermeiden. Weitere Informationen finden Sie unter Arbeitslastoptimierte Stufen. - Erstellen Sie den CA-Pool, um mindestens eine aktive Zertifizierungsstelle in diesem CA-Pool zu erhalten, die sich im selben Projekt wie der GKE-Cluster befindet. Verwenden Sie untergeordnete Zertifizierungsstellen, um Cloud Service Mesh-Arbeitslastzertifikate zu signieren. Notieren Sie sich den CA-Pool, der der untergeordneten Zertifizierungsstelle entspricht.
Wenn nur Zertifikate für Cloud Service Mesh-Arbeitslasten signiert werden sollen, richten Sie die folgende Ausstellungsrichtlinie für den CA-Pool ein:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )Mit dem folgenden Befehl können Sie die Ausstellungsrichtlinie des CA-Pools aktualisieren:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Informationen zum Festlegen einer Richtlinie für einen Pool finden Sie unter Zertifikatsausstellungsrichtlinie verwenden.
Wenn Sie eine Zertifikatsvorlage verwenden, konfigurieren Sie diese jetzt. Weitere Informationen finden Sie im CA Service-Leitfaden für Workload Identity-Zertifikate. Die Zertifikatvorlage muss in derselben Region wie der CA-Pool erstellt werden. Wenn es mehrere Regionen für CA-Pools gibt, erstellen Sie eine Zertifikatvorlage pro Region.
Erforderliche Rollen für die Verwendung des CA Service
Für diese Einbindung benötigen alle Arbeitslasten in Cloud Service Mesh die folgenden IAM-Rollen. Diese Rollenbindungen müssen explizit für Cloud Service Mesh-Arbeitslasten angewendet werden:
WORKLOAD_IDENTITY="FLEET_PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/"
gcloud privateca pools add-iam-policy-binding CA_POOL \
--project FLEET_PROJECT_ID \
--location ca_region \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.workloadCertificateRequester"
gcloud privateca pools add-iam-policy-binding CA_POOL \
--project FLEET_PROJECT_ID \
--location ca_region \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.auditor"
Wenn Sie Zertifikatsvorlagen verwenden:
gcloud privateca templates add-iam-policy-binding CERT_TEMPLATE_ID \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.templateUser"
Beschränkungen
- Konfigurieren Sie die Zertifizierungsstelle und wählen Sie sie aus, bevor Sie die Cloud Service Mesh-Steuerungsebene bereitstellen. Das Ändern der Zertifizierungsstelle wird nicht unterstützt.
Verwaltetes Cloud Service Mesh für die Verwendung des CA Service konfigurieren
Prüfen Sie, ob der Namespace
istio-systemvorhanden ist, oder erstellen Sie ihn, falls er fehlt:kubectl create ns istio-systemPrüfen Sie, ob die ConfigMap
asm-optionsim Namespaceistio-systemvorhanden ist:kubectl get configmap/asm-options -n istio-systemErstellen Sie die ConfigMap, falls sie noch nicht vorhanden ist:
kubectl create configmap -n istio-system asm-optionsPatchen Sie die ConfigMap, um die CAS-Konfiguration hinzuzufügen:
kubectl patch configmap/asm-options -n istio-system --type merge \ -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL"}}'Wenn eine Zertifikatsvorlage erforderlich ist, hängen Sie die Vorlagen-ID an die CA-Pool-Adresse an. Verwenden Sie dabei
:als Trennzeichen:kubectl patch configmap/asm-options -n istio-system --type merge \ -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID"}}'
Nachdem Sie die Konfigurationsschritte abgeschlossen haben, fahren Sie mit der Installation des verwalteten Cloud Service Mesh fort, indem Sie die automatische Verwaltung aktivieren.