Récupérer les bundles de confiance GDC

Un bundle d'approbations, également appelé liste d'approbations, est un groupe d'ancres de confiance, telles que des entités, qui sont intrinsèquement fiables et dont la fiabilité n'est pas transférée par une autre entité (tiers de confiance). Ces ancres de confiance sont fournies sous forme de certificats d'autorité de certification (CA). L'algorithme de création du chemin de certification utilise ces certificats d'autorité de certification pour établir une chaîne entre un certificat obtenant la validation et les ancres de confiance.

Google Distributed Cloud (GDC) sous air gap dispose de groupes de confiance dédiés. Ce guide explique comment récupérer le bundle de confiance pour les administrateurs d'organisation.

Types de groupes de confiance

Distributed Cloud propose deux types de groupes de confiance gérés pour les administrateurs de plate-forme :

  • trust-store-root-ext : contient l'autorité de certification racine interne et l'autorité de certification Web-TLS. Le contenu est différent selon son emplacement, par exemple la racine ou l'organisation locataire. Utilisez ce bundle de confiance pour communiquer au-delà des limites de l'organisation ou pour accéder à des services tels que le stockage d'objets au sein de l'organisation.

  • trust-store-global-root-ext : disponible dans l'espace de noms du serveur d'API global et du serveur d'API zonal platform. Lorsque le serveur d'API global est prêt, le bundle remplit toutes les autres données trust-store-root-ext zonales, y compris les données locales.

Récupérer le groupe de confiance

Vous pouvez récupérer des groupes de confiance à partir du point de terminaison du serveur connu ou du cluster à l'aide de kubectl.

Extraire du serveur connu

GDC fournit un moyen sécurisé d'accéder aux groupes de confiance via un point de terminaison de serveur bien connu. Utilisez cette méthode lorsque vous devez récupérer le bundle trust-store-global-root-ext sans interagir directement avec le cluster à l'aide de kubectl.

  1. Exportez les variables d'environnement suivantes :

    export STORAGE=STORAGE
    export ORG_NAME=ORG_NAME
    

    Remplacez les éléments suivants :

    • STORAGE : chemin d'accès au répertoire dans lequel vous souhaitez stocker le fichier du groupe de confiance.
    • ORG_NAME : nom de votre organisation dans GDC.
  2. Définissez la variable d'environnement WELL_KNOWN_URL :

    export WELL_KNOWN_URL=https://console.${ORG_NAME:?}.zone1.google.gdch.test/.well-known/certificate-authority
    
  3. Définissez la variable d'environnement GLOBAL_TRUST_BUNDLE_FILE. Ce fichier stocke le bundle de confiance GDC en local à l'emplacement $STORAGE que vous avez spécifié.

    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  4. Obtenez le bundle de confiance trust-store-global-root-ext à partir du serveur connu et stockez-le dans le fichier créé à l'étape précédente :

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

    Le fichier de groupe de confiance récupéré contient un ou plusieurs certificats d'autorité de certification. Le résultat ressemble à ce qui suit :

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

Récupérer des informations depuis le cluster à l'aide de kubectl

Vous pouvez récupérer les groupes de confiance directement à partir du cluster GDC à l'aide de l'outil de ligne de commande kubectl. Utilisez cette méthode si vous avez un accès direct au cluster et à sa configuration, et que vous devez récupérer les faisceaux de confiance trust-store-root-ext ou trust-store-global-root-ext.

Avant de pouvoir suivre la procédure décrite dans cette section, vous devez obtenir les éléments suivants :

  • Autorisations requises : demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Lecteur du magasin de confiance (trust-store-viewer).
  • Fichier kubeconfig : connectez-vous et générez le fichier kubeconfig pour le serveur de l'API Management si vous n'en avez pas déjà un. Vous aurez besoin du chemin d'accès au fichier kubeconfig pour remplacer MANAGEMENT_API_SERVER_KUBECONFIG lors des étapes suivantes.

Récupérez le groupe de confiance à partir du cluster à l'aide de kubectl :

  1. Exportez les variables d'environnement suivantes :

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

    Remplacez les éléments suivants :

    • MANAGEMENT_API_SERVER_KUBECONFIG : chemin d'accès au fichier kubeconfig du serveur de l'API Management.
    • STORAGE : chemin d'accès au répertoire dans lequel vous souhaitez stocker le fichier du groupe de confiance.
    • ZONE : nom de votre zone GDC.
  2. Définissez la variable d'environnement TRUST_BUNDLE_FILE. Ce fichier stocke le bundle de confiance GDC en local à l'emplacement $STORAGE que vous avez spécifié pour votre $ZONE GDC :

    export TRUST_BUNDLE_FILE="$STORAGE/$ZONE/ca-bundles/trust-bundle"
    export GLOBAL_TRUST_BUNDLE_FILE="$STORAGE/global/ca-bundles/global-trust-bundle"
    
  3. Définissez la variable d'environnement de l'espace de noms NS pour l'espace de noms :

    export NS=platform
    
  4. Obtenez les autorités de certification (CA) et stockez-les dans le fichier créé à l'étape 2 :

    Pour 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}
    

    Pour 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}
    

    Le fichier de groupe de confiance récupéré contient un ou plusieurs certificats d'autorité de certification. Le résultat ressemble à ce qui suit :

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