Benutzerdefinierte CAs zum System-Trust-Bundle hinzufügen

Auf dieser Seite wird erläutert, wie Sie dem System-Trust-Bundle in Google Distributed Cloud (GDC) mit Air Gap benutzerdefinierte Zertifizierungsstellenzertifikate (CA) hinzufügen. Ein Trust-Bundle ist eine Sammlung vertrauenswürdiger Zertifizierungsstellen, die von den Diensten Ihrer Organisation verwendet werden, um die Identität anderer Dienste zu überprüfen. Wenn Sie eigene benutzerdefinierte Zertifizierungsstellen hinzufügen, können Sie steuern, welchen Zertifikaten Ihre Organisation vertraut. So lassen sich sichere Verbindungen zu Ihren internen Ressourcen und anderen vertrauenswürdigen Endpunkten herstellen.

Auf dieser Seite wird beschrieben, wie Sie dem System-Trust-Bundle trust-store-root-ext benutzerdefinierte Zertifizierungsstellen hinzufügen. Wenn Sie das Trust-Bundle trust-store-root-ext ändern, werden die Änderungen automatisch an das Bundle trust-store-global-root-ext weitergegeben. So sind Ihre benutzerdefinierten Zertifizierungsstellen in allen Zonen verfügbar.

Diese Seite richtet sich an Nutzer in der Gruppe der Plattformadministratoren (z. B. IT-Administratoren), die die Ressourcen ihrer Organisation in GDC verwalten und schützen müssen. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap Dokumentation.

Hinweis

Wenn Sie dem System-Trust-Bundle benutzerdefinierte Zertifizierungsstellenzertifikate hinzufügen möchten, müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.

IAM-Rollen anfordern

Wenn Sie Secrets erstellen, lesen, aktualisieren und löschen möchten, bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle Trust Store-Administrator (trust-store-admin) zuzuweisen.

Umgebung vorbereiten

kubeconfig-Datei generieren

Führen Sie die folgenden Schritte aus, um die kubeconfig-Datei für den Cluster der Organisationsinfrastruktur zu generieren und sie als Variable KUBECONFIG festzulegen, damit Sie sie später verwenden können.

  1. Alle verfügbaren Zonen ansehen:

    gdcloud zones list
    

    Notieren Sie sich den Namen der Zone, in der sich Ihre benutzerdefinierte Ressource befindet.

  2. Legen Sie die Umgebungsvariable ZONE auf die Zone fest, in der sich der Cluster der Organisationsinfrastruktur befindet:

    export ZONE="ZONE"
    

    Ersetzen Sie ZONE durch den Zonennamen.

  3. Legen Sie die Umgebungsvariable ORG_INFRA_CLUSTER fest:

    export ORG_INFRA_CLUSTER="ORG_NAME-infra"
    

    Ersetzen Sie ORG_NAME durch den Namen Ihrer Organisation, z. B. org-1.

  4. Generieren Sie die kubeconfig-Datei des Clusters der Organisationsinfrastruktur für die Zielzone und validieren Sie die Anmeldedaten:

    export KUBECONFIG=${HOME}/${ORG_INFRA_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${ORG_INFRA_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${ORG_INFRA_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    Mit dem Befehl rm ${KUBECONFIG:?} wird die vorhandene kubeconfig-Datei im Home-Verzeichnis entfernt. Wenn Sie eine neue kubeconfig-Datei generieren, wird die vorhandene Datei überschrieben. Wenn Sie die vorhandene Datei nicht überschreiben oder entfernen möchten, sichern Sie sie an einem anderen sicheren Ort.

Benutzerdefinierte Zertifizierungsstellen dem System-Trust-Bundle hinzufügen

Wenn Sie dem System-Trust-Bundle trust-store-root-ext benutzerdefinierte Zertifizierungsstellen hinzufügen möchten, müssen Sie die benutzerdefinierte Zertifizierungsstellenressource vorbereiten und sie dann auf den Cluster der Organisationsinfrastruktur anwenden.

  1. Legen Sie die Umgebungsvariable für die PEM-Datei Ihrer benutzerdefinierten Zertifizierungsstelle fest:

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    Ersetzen Sie CUSTOM_CA_PEM_FILE durch den Pfad zu der Datei, die Ihre benutzerdefinierten Zertifizierungsstellenzertifikate im PEM-Format enthält.

  2. Codieren Sie die Zertifizierungsstellenzertifikate mit Base64:

    export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)
    
  3. Erstellen Sie die YAML-Datei des Secrets (custom-ca.yaml), die auf das System-Trust-Bundle trust-store-root-ext ausgerichtet ist:

    cat > custom-ca.yaml <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
      ca.crt: ${ENCODED_CA:?}
    EOF
    

    Hier ein Beispiel für eine custom-ca.yaml-Datei:

    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
       ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSU...LQWZRSUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    
  4. Wenden Sie das Secret mit dem Befehl kubectl auf den Cluster der Organisationsinfrastruktur an:

     kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}
    

    Durch diesen Schritt werden Ihre benutzerdefinierten Zertifizierungsstellen für GDC-Dienste verfügbar, indem die Trust-Bundles trust-store-root-ext und trust-store-global-root-ext automatisch aktualisiert werden.

Verfügbarkeit der Zertifizierungsstellen prüfen

Prüfen Sie, ob Ihre benutzerdefinierten Zertifizierungsstellen dem Trust-Bundle hinzugefügt wurden:

  1. Laden Sie die neueste Version des trust-store-root-ext Trust-Bundles herunter. Folgen Sie dazu der Anleitung unter GDC-Trust-Bundles abrufen.

    Wenn Sie die benutzerdefinierten Zertifizierungsstellen aus einer anderen Zone abrufen möchten, verwenden Sie das Trust-Bundle trust-store-global-root-ext.

  2. Öffnen Sie die heruntergeladene Trust-Bundle-Datei und prüfen Sie, ob alle benutzerdefinierten Zertifizierungsstellenzertifikate vorhanden sind, die in CUSTOM_CA_PEM_FILE angegeben sind.

    Suchen Sie einzeln nach jedem benutzerdefinierten CA-Zertifikat. Die Reihenfolge, in der sie angezeigt werden, kann variieren. Sie werden nicht unbedingt am Ende der Liste angezeigt.

    Hier ein Beispiel für trust-store-root-ext:

    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQPLOPa...
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
       < Imported CA data>
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
    MIIDAzCCAeugAwIBAgIRAIV2...
    -----END CERTIFICATE-----