Ajouter des autorités de certification personnalisées au groupe d'approbation du système

Cette page explique comment ajouter des certificats d'autorité de certification (CA) personnalisés au bundle de confiance du système dans Google Distributed Cloud (GDC) sous air gap. Un bundle de confiance est un ensemble d'autorités de certification de confiance que les services de votre organisation utilisent pour vérifier l'identité d'autres services. En ajoutant vos propres CA personnalisées, vous pouvez contrôler les certificats auxquels votre organisation fait confiance, ce qui permet d'établir des connexions sécurisées à vos ressources internes et à d'autres points de terminaison de confiance.

Cette page explique comment ajouter des autorités de certification personnalisées au bundle de confiance du système trust-store-root-ext. Lorsque vous modifiez le bundle de confiance trust-store-root-ext, les modifications sont automatiquement propagées au bundle trust-store-global-root-ext, ce qui rend vos CA personnalisées disponibles dans toutes les zones.

Cette page s'adresse aux audiences du groupe d'administrateurs de plate-forme (comme les administrateurs informatiques) qui doivent gérer et sécuriser les ressources de leur organisation dans GDC. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

Avant de commencer

Pour ajouter des certificats CA personnalisés au groupe d'approbations du système, vous devez demander les autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM

Pour créer, lire, mettre à jour et supprimer des secrets, contactez votre administrateur d'organisation IAM pour demander le rôle Administrateur du magasin de confiance (trust-store-admin).

Préparer votre environnement

Générer un fichier kubeconfig

Procédez comme suit pour générer votre fichier kubeconfig pour le cluster d'infrastructure de l'organisation et le définir comme variable KUBECONFIG à utiliser ultérieurement.

  1. Affichez toutes les zones disponibles :

    gdcloud zones list
    

    Notez le nom de la zone qui héberge votre ressource personnalisée.

  2. Définissez la variable d'environnement ZONE sur la zone qui héberge le cluster d'infrastructure de l'organisation :

    export ZONE="ZONE"
    

    Remplacez ZONE par le nom de la zone.

  3. Définissez la variable d'environnement ORG_INFRA_CLUSTER :

    export ORG_INFRA_CLUSTER="ORG_NAME-infra"
    

    Remplacez ORG_NAME par le nom de votre organisation, par exemple org-1.

  4. Générez le fichier kubeconfig du cluster d'infrastructure de l'organisation pour la zone ciblée, puis validez les identifiants :

    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"
    

    La commande rm ${KUBECONFIG:?} supprime le fichier kubeconfig existant dans le répertoire d'accueil. Lorsque vous générez un nouveau fichier kubeconfig, il écrase le fichier existant. Si vous ne souhaitez pas écraser ou supprimer le fichier existant, sauvegardez-le dans un autre emplacement sécurisé.

Ajouter des autorités de certification personnalisées au bundle de confiance du système

Pour ajouter des autorités de certification personnalisées au groupe d'autorités de certification de confiance du système trust-store-root-ext, vous devez préparer votre ressource d'autorité de certification personnalisée, puis l'appliquer au cluster d'infrastructure de l'organisation.

  1. Définissez la variable d'environnement pour votre fichier PEM d'autorité de certification personnalisé :

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    Remplacez CUSTOM_CA_PEM_FILE par le chemin d'accès au fichier contenant vos certificats CA personnalisés, encodés au format PEM.

  2. Encodez les certificats CA en base64 :

    export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)
    
  3. Créez le fichier YAML du secret (custom-ca.yaml) qui cible le bundle de confiance du système trust-store-root-ext :

    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
    

    Voici un exemple de fichier custom-ca.yaml :

    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. Appliquez le secret au cluster d'infrastructure de l'organisation à l'aide de la commande kubectl :

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

    Cette étape permet de mettre vos CA personnalisées à la disposition des services GDC en mettant automatiquement à jour les bundles de confiance trust-store-root-ext et trust-store-global-root-ext.

Vérifier que les CA sont disponibles

Vérifiez que vos autorités de certification personnalisées ont été ajoutées au bundle de confiance :

  1. Téléchargez la dernière version du bundle de confiance trust-store-root-ext en suivant les étapes de la section Récupérer les bundles de confiance GDC.

    Si vous souhaitez récupérer les autorités de certification personnalisées d'une autre zone, utilisez le bundle de confiance trust-store-global-root-ext.

  2. Ouvrez le fichier de bundle de confiance téléchargé et vérifiez que chaque certificat d'autorité de certification personnalisé spécifié par CUSTOM_CA_PEM_FILE est présent.

    Recherchez chaque certificat CA personnalisé individuellement. L'ordre dans lequel ils apparaissent peut varier. Il n'est pas garanti qu'ils apparaissent à la fin de la liste.

    Voici un exemple de 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-----