GDC-Trust-Bundles abrufen

Ein Vertrauens-Bundle, auch als Vertrauensliste bezeichnet, ist eine Gruppe von Vertrauensankern, z. B. Entitäten, die von Natur aus vertrauenswürdig sind und deren Vertrauen nicht von einer anderen Entität (vertrauenswürdigen Dritten) übertragen wird. Diese Trust-Anchors werden als Zertifikate der Zertifizierungsstelle (CA) bereitgestellt. Der Algorithmus zum Erstellen von Zertifizierungspfaden verwendet diese CA-Zertifikate, um eine Kette zwischen einer Zertifikatsvalidierung und den Vertrauensankern herzustellen.

Google Distributed Cloud (GDC) mit Air Gap hat dedizierte Trust-Bundles. In diesem Leitfaden wird beschrieben, wie Organisationsadministratoren das Trust-Bundle abrufen können.

Typen von Vertrauenswürdigkeits-Bundles

Distributed Cloud bietet zwei Arten von verwalteten Trust-Bundles für Plattformadministratoren:

  • trust-store-root-ext: Enthält die interne Stammzertifizierungsstelle und die Web-TLS-Zertifizierungsstelle. Die Inhalte variieren je nach Speicherort, z. B. im Stammverzeichnis oder in der Mandantenorganisation. Mit diesem Trust-Bundle können Sie organisationsübergreifend kommunizieren oder auf Dienste wie den Objektspeicher innerhalb der Organisation zugreifen.

  • trust-store-global-root-ext: verfügbar im globalen API-Server und im zonalen API-Server-Namespace platform. Wenn der globale API-Server bereit ist, werden mit dem Bundle alle anderen zonalen trust-store-root-ext-Daten, einschließlich lokaler Daten, ausgefüllt.

Vertrauens-Bundle abrufen

Sie können Trust-Bundles vom bekannten Serverendpunkt oder vom Cluster mit kubectl abrufen.

Vom bekannten Server abrufen

GDC bietet eine sichere Möglichkeit, über einen bekannten Serverendpunkt auf Trust Bundles zuzugreifen. Verwenden Sie diese Methode, wenn Sie das trust-store-global-root-ext-Bundle abrufen müssen, ohne direkt mit dem Cluster über kubectl zu interagieren.

  1. Exportieren Sie die folgenden Umgebungsvariablen:

    export STORAGE=STORAGE
    export ORG_NAME=ORG_NAME
    

    Ersetzen Sie Folgendes:

    • STORAGE: Der Verzeichnispfad, in dem Sie die Trust-Bundle-Datei speichern möchten.
    • ORG_NAME: der Name Ihrer Organisation in GDC.
  2. Legen Sie die Umgebungsvariable WELL_KNOWN_URL fest:

    export WELL_KNOWN_URL=https://console.${ORG_NAME:?}.zone1.google.gdch.test/.well-known/certificate-authority
    
  3. Legen Sie die Umgebungsvariable GLOBAL_TRUST_BUNDLE_FILE fest. In dieser Datei wird das GDC-Vertrauensbündel lokal am angegebenen $STORAGE-Speicherort gespeichert.

    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  4. Rufen Sie das trust-store-global-root-ext-Vertrauensbündel vom bekannten Server ab und speichern Sie es in der Datei, die im vorherigen Schritt erstellt wurde:

    echo -n | curl ${WELL_KNOWN_URL:?} > ${GLOBAL_TRUST_BUNDLE_FILE:?}
    

    Die abgerufene Trust-Bundle-Datei enthält ein oder mehrere Zertifikate von Zertifizierungsstellen. Die entsprechende Ausgabe sieht etwa so aus:

    -----BEGIN CERTIFICATE-----
    MIIC8TCCAdmgAwIBAgIRAODQ/dOB39RBs8ZpN0RujIswDQYJKoZIhvcNAQELBQAw
    EjEQMA4GA1UEAxMHcm9vdC1jYTAeFw0yNTAxMDYwNzM3MzVaFw00ODEyMzEwNzM3
    MzVaMBIxEDAOBgNVBAMTB3Jvb3QtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
    ggEKAoIBAQC41U4+3M1EAHggUBw5ki97533zTvwHukmZyORwbQ3tlQ4GQDscoCEh
    nn+KCaG767VCaGDcQhq99hl6qa/nBoc1X6WQ3a/uhv5E2ztRD40PB5NFNdSulxTH
    gsitukSmv+DAx15UJnVkJtPP/FzxEWPu0piIiFZakTxT83VUSs54QRmTahxP80FI
    R0xZ0ohsu9jzA2CAyxTccJU0/xE2kDwN8c8kiYYuG+czMdNVdnT4Jm2ToSkzIDux
    Yi9MzNmarVGG/rtW5SlqnUMYzSsxtUYSmMRlCsFDVxkSzfmICmTRw2zmNkFA/3nz
    XneVSIsUHOA2NzvMN4eoLTVRgSFcHlZRAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
    hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEeB0EQwhc5p++GhwNymsBfN93
    WjANBgkqhkiG9w0BAQsFAAOCAQEAKBqn4AXjUWmhIUOrWQ5cetsmI76Wl+RBeSzU
    HxbqMBH8Dk1oJbGHtmQbu7EmWz1pKYge650s9N83hMgjFZD24t9GiQZ7YY+i+317
    D6HzJ8VIKPnxVtnUIQzCpkRTQoglDlb1f/7+fi2SYJoHdhnRI/3OaVQTnObjbW5T
    mBhsMxFKc0zGa3HIEm9SUH608V60xUPanl23YZ6X7W8nWAJfnzKvH+3q3Fz58u/S
    VR5t/FkbOktVtnU8AfcMKLof6KG2KhE2L7FAC+fp0ZsjV9vE2uqlZ+8mIQHyc3tM
    cbWxOx+SO/XUCenY9C1yrublln9aOEn4/s3aSURPguiSZOfDyQ==
    -----END CERTIFICATE-----
    

Mit kubectl aus dem Cluster abrufen

Sie können Trust-Bundles direkt aus dem GDC-Cluster mit dem kubectl-Befehlszeilentool abrufen. Verwenden Sie diese Methode, wenn Sie direkten Zugriff auf den Cluster und seine Konfiguration haben und entweder die trust-store-root-ext- oder die trust-store-global-root-ext-Vertrauenswürdigkeitsbündel abrufen müssen.

Bevor Sie die Schritte in diesem Abschnitt ausführen können, benötigen Sie Folgendes:

  • Erforderliche Berechtigungen: Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Trust Store Viewer“ (trust-store-viewer) zuzuweisen.
  • kubeconfig-Datei: Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben. Sie benötigen den Pfad zur kubeconfig-Datei, um MANAGEMENT_API_SERVER_KUBECONFIG in den folgenden Schritten zu ersetzen.

Rufen Sie das Trust-Bundle mit kubectl aus dem Cluster ab:

  1. Exportieren Sie die folgenden Umgebungsvariablen:

    export KUBECONFIG=MANAGEMENT_API_SERVER_KUBECONFIG
    export STORAGE=STORAGE
    export ZONE=ZONE
    

    Ersetzen Sie Folgendes:

    • MANAGEMENT_API_SERVER_KUBECONFIG: Der Pfad zur kubeconfig des Management API-Servers.
    • STORAGE: Der Verzeichnispfad, in dem Sie die Trust-Bundle-Datei speichern möchten.
    • ZONE: Ihr GDC-Zonenname.
  2. Legen Sie die Umgebungsvariable TRUST_BUNDLE_FILE fest. In dieser Datei wird das GDC-Vertrauensbündel lokal am angegebenen $STORAGE-Speicherort für Ihr GDC-$ZONE gespeichert:

    export TRUST_BUNDLE_FILE="$STORAGE/$ZONE/ca-bundles/trust-bundle"
    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  3. Legen Sie die Umgebungsvariable NS für den Namespace fest:

    export NS=platform
    
  4. Rufen Sie die Zertifizierungsstellen ab und speichern Sie sie in der Datei, die Sie in Schritt 2 erstellt haben:

    Für trust-store-root-ext:

    kubectl --kubeconfig ${KUBECONFIG} get secret trust-store-root-ext -n ${NS} -o go-template='{{ index .data "ca.crt" }}' | base64 -d | sed '$a\' > ${TRUST_BUNDLE_FILE}
    

    Für trust-store-global-root-ext:

    kubectl --kubeconfig ${KUBECONFIG} get secret trust-store-global-root-ext -n ${NS} -o go-template='{{ index .data "ca.crt" }}' | base64 -d | sed '$a\' > ${GLOBAL_TRUST_BUNDLE_FILE}
    

    Die abgerufene Trust-Bundle-Datei enthält ein oder mehrere Zertifikate von Zertifizierungsstellen. Die entsprechende Ausgabe sieht etwa so aus:

    -----BEGIN CERTIFICATE-----
    MIIC8TCCAdmgAwIBAgIRAODQ/dOB39RBs8ZpN0RujIswDQYJKoZIhvcNAQELBQAw
    EjEQMA4GA1UEAxMHcm9vdC1jYTAeFw0yNTAxMDYwNzM3MzVaFw00ODEyMzEwNzM3
    MzVaMBIxEDAOBgNVBAMTB3Jvb3QtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
    ggEKAoIBAQC41U4+3M1EAHggUBw5ki97533zTvwHukmZyORwbQ3tlQ4GQDscoCEh
    nn+KCaG767VCaGDcQhq99hl6qa/nBoc1X6WQ3a/uhv5E2ztRD40PB5NFNdSulxTH
    gsitukSmv+DAx15UJnVkJtPP/FzxEWPu0piIiFZakTxT83VUSs54QRmTahxP80FI
    R0xZ0ohsu9jzA2CAyxTccJU0/xE2kDwN8c8kiYYuG+czMdNVdnT4Jm2ToSkzIDux
    Yi9MzNmarVGG/rtW5SlqnUMYzSsxtUYSmMRlCsFDVxkSzfmICmTRw2zmNkFA/3nz
    XneVSIsUHOA2NzvMN4eoLTVRgSFcHlZRAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
    hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTEeB0EQwhc5p++GhwNymsBfN93
    WjANBgkqhkiG9w0BAQsFAAOCAQEAKBqn4AXjUWmhIUOrWQ5cetsmI76Wl+RBeSzU
    HxbqMBH8Dk1oJbGHtmQbu7EmWz1pKYge650s9N83hMgjFZD24t9GiQZ7YY+i+317
    D6HzJ8VIKPnxVtnUIQzCpkRTQoglDlb1f/7+fi2SYJoHdhnRI/3OaVQTnObjbW5T
    mBhsMxFKc0zGa3HIEm9SUH608V60xUPanl23YZ6X7W8nWAJfnzKvH+3q3Fz58u/S
    VR5t/FkbOktVtnU8AfcMKLof6KG2KhE2L7FAC+fp0ZsjV9vE2uqlZ+8mIQHyc3tM
    cbWxOx+SO/XUCenY9C1yrublln9aOEn4/s3aSURPguiSZOfDyQ==
    -----END CERTIFICATE-----