Benutzerdefinierte CAs zum System-Trust-Bundle hinzufügen

Auf dieser Seite wird beschrieben, wie Sie dem System-Trust-Bundle in Google Distributed Cloud (GDC) mit Air Gap benutzerdefinierte Zertifikate von Zertifizierungsstellen (CAs) 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. Durch das Hinzufügen eigener benutzerdefinierter Zertifizierungsstellen können Sie steuern, welchen Zertifikaten Ihre Organisation vertraut, und so sichere Verbindungen zu Ihren internen Ressourcen und anderen vertrauenswürdigen Endpunkten ermöglichen.

Auf dieser Seite wird beschrieben, wie Sie dem Trust Bundle des trust-store-root-ext-Systems 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, sodass Ihre benutzerdefinierten Zertifizierungsstellen in allen Zonen verfügbar sind.

Diese Seite richtet sich an Zielgruppen innerhalb 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 Zielgruppen für die Dokumentation zu GDC mit Air Gap.

Hinweis

Wenn Sie dem System-Trust-Bundle benutzerdefinierte CA-Zertifikate 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, wenden Sie sich an Ihren IAM-Admin der Organisation, um die Rolle Trust Store-Administrator (trust-store-admin) anzufordern.

Umgebung vorbereiten

kubeconfig-Datei generieren

Führen Sie die folgenden Schritte aus, um die kubeconfig-Datei für den Infrastrukturcluster der Organisation zu generieren und sie als Variable KUBECONFIG zur späteren Verwendung festzulegen.

  1. Alle verfügbaren Zonen ansehen:

    gdcloud zones list
    

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

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

    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 Infrastrukturclusters der Organisation 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 Basisverzeichnis entfernt. Wenn Sie eine neue kubeconfig-Datei generieren, wird die vorhandene überschrieben. Wenn Sie die vorhandene Datei nicht überschreiben oder entfernen möchten, sichern Sie sie an einem anderen sicheren Ort.

Benutzerdefinierte Zertifizierungsstellen zum System-Trust-Bundle hinzufügen

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

  1. Legen Sie die Umgebungsvariable für Ihre benutzerdefinierte CA-PEM-Datei fest:

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    Ersetzen Sie CUSTOM_CA_PEM_FILE durch den Pfad zur Datei, die Ihre benutzerdefinierten CA-Zertifikate im PEM-Format enthält.

  2. Codieren Sie die CA-Zertifikate mit Base64:

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

    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:?}
    

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

Prüfen, ob die Zertifizierungsstellen verfügbar sind

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

  1. Laden Sie die neueste Version des trust-store-root-ext-Vertrauenspakets herunter. Folgen Sie dazu der Anleitung unter GDC-Vertrauenspakete 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 jedes benutzerdefinierte CA-Zertifikat, das von CUSTOM_CA_PEM_FILE angegeben wurde, vorhanden ist.

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

    Im Folgenden finden Sie 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-----