Certificate Authority Service für Managed Cloud Service Mesh konfigurieren

In diesem Leitfaden wird beschrieben, wie Sie Certificate Authority Service für das verwaltete Cloud Service Mesh konfigurieren. Informationen zum Cloud Service Mesh im Cluster finden Sie unter Standardfunktionen und den Certificate Authority (CA) Service installieren

Zusätzlich zur Cloud Service Mesh-Zertifizierungsstelle können Sie Cloud Service Mesh so konfigurieren, Certificate Authority Service. Dieser Leitfaden bietet eine Möglichkeit zur Integration in CA Service, die für die folgenden Anwendungsfälle empfohlen wird:

  • Wenn Sie unterschiedliche CAs benötigen, um Arbeitslastzertifikate auf unterschiedlichen Clustern zu signieren.
  • Wenn Sie Ihre Signaturschlüssel in einem verwalteten HSM sichern müssen.
  • Wenn Sie in einer stark regulierten Branche tätig sind und der Compliance unterliegen.
  • Wenn Sie Ihre Cloud Service Mesh-Zertifizierungsstelle mit einem benutzerdefinierten Stammverzeichnis Ihres Unternehmens verketten möchten Zertifikat zum Signieren von Arbeitslastzertifikaten.

Die Kosten für die Cloud Service Mesh-Zertifizierungsstelle sind in der Cloud Service Mesh-Preise. Die CA Service ist nicht im Cloud Service Mesh-Basispreis enthalten und ist separat abgerechnet. Außerdem CA Service umfasst eine explizites SLA, die Cloud Service Mesh-Zertifizierungsstelle jedoch nicht.

CA Service konfigurieren

  1. Achten Sie darauf, dass sich der CA-Pool in der Stufe DevOps und 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.
  2. 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 zum Signieren Cloud Service Mesh-Arbeitslastzertifikate Notieren Sie sich den CA-Pool, der der untergeordneten Zertifizierungsstelle entspricht.
  3. Wenn nur Zertifikate für Cloud Service Mesh-Arbeitslasten verarbeitet werden sollen, legen Sie Folgendes fest: die folgende Ausstellungsrichtlinie für den Zertifizierungsstellenpool aus:

    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/") )
    
  4. 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.

  5. 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.

Für die Verwendung des CA-Dienstes erforderliche Rollen

Für diese Einbindung ist für alle Arbeitslasten in Cloud Service Mesh Folgendes erforderlich: IAM-Rollen:

    WORKLOAD_IDENTITY="PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/"

    gcloud privateca pools add-iam-policy-binding CA_POOL \
      --project PROJECT_ID \
      --location ca_region \
      --member "group:${WORKLOAD_IDENTITY}" \
      --role "roles/privateca.workloadCertificateRequester"

    gcloud privateca pools add-iam-policy-binding CA_POOL \
      --project 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 und wählen Sie die Zertifizierungsstelle 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 von CA Service konfigurieren

  1. Prüfen Sie, ob der Namespace istio-system vorhanden ist, oder erstellen Sie ihn gegebenenfalls Fehlt:

      kubectl create ns istio-system
    
  2. Prüfen Sie, ob die asm-options-configmap im Namespace istio-system vorhanden ist:

      kubectl get configmap/asm-options -n istio-system
    
  3. Erstellen Sie die configmap, falls sie noch nicht vorhanden ist:

      kubectl create configmap -n istio-system asm-options
    
  4. Patchen Sie die configmap, um eine CAS-Konfiguration hinzuzufügen:

      kubectl patch configmap/asm-options -n istio-system --type merge \
      -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/PROJECT_ID/locations/ca_region/caPools/CA_POOL"}}'
    

    Wenn eine Zertifikatsvorlage benötigt wird, hängen Sie die Vorlagen-ID an den CA-Pool an Adresse mit : als Trennzeichen:

      kubectl patch configmap/asm-options -n istio-system --type merge \
      -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID"}}'
    

Fahren Sie nach Abschluss der Konfigurationsschritte mit der Installation des verwalteten Cloud Service Mesh fort, indem Sie die automatische Verwaltung aktivieren.