Configurer Docker pour qu'il fasse confiance à l'autorité de certification racine Harbor

Les instances Harbor utilisent des certificats TLS (Transport Layer Security) émis par l'autorité de certification (CA) racine de confiance de votre organisation. Cela chiffre la connexion entre votre client Docker et le registre Harbor pour sécuriser les images contre tout accès non autorisé.

Avant de commencer

Vous devez effectuer les étapes suivantes avant de gérer vos images de conteneur :

  1. Installez Docker si ce n'est pas déjà fait en suivant les instructions à l'adresse https://docs.docker.com/engine/install/ubuntu/. Docker est inclus dans Cloud Shell.
  2. Docker nécessite un accès privilégié pour interagir avec les registres. Sous Linux ou Windows, ajoutez l'utilisateur que vous permet d'exécuter des commandes Docker dans le groupe de sécurité Docker. Cette étape n'est pas requise sous macOS, car Docker Desktop s'exécute sur une machine virtuelle en tant qu'utilisateur racine.

    1. Pour Linux, ajoutez l'utilisateur :

        sudo usermod -a -G docker USER
      
    2. Pour Windows :

        net localgroup docker-users DOMAIN\USER /add
      

      Remplacez USER par le nom d'utilisateur que vous souhaitez ajouter.

Configurer Docker pour qu'il fasse confiance à l'autorité de certification racine Harbor

Vous devez configurer votre client Docker local pour qu'il fasse confiance à l'autorité de certification racine de votre organisation lorsque vous utilisez le client Docker pour communiquer avec l'instance Harbor.

Pour configurer le client Docker afin qu'il fasse confiance à l'autorité de certification racine, demandez le fichier .crt de l'autorité de certification racine à l'administrateur de votre organisation, puis copiez l'autorité de certification racine de l'organisation dans :

/etc/docker/certs.d/HARBOR_INSTANCE_URL/ca.crt

Remplacez HARBOR_INSTANCE_URL par l'URL de votre instance Harbor. Exemple : harbor-1.org-1.zone1.google.gdc.test.

Cette commande permet à votre client Docker d'établir une connexion HTTPS avec l'instance Harbor.

Vous pouvez également utiliser la CLI gdcloud pour vous connecter à n'importe quel cluster d'utilisateur de l'organisation et copier l'autorité de certification Web enregistrée dans le cluster :

  export REGISTRY=HARBOR_INSTANCE_URL
  mkdir -p /etc/docker/certs.d/${REGISTRY} && \echo $(kubectl get secret org-web-ca -n istio-system -o
  jsonpath='{.data.ca\.crt}') | openssl base64 -A -d >
  /etc/docker/certs.d/${REGISTRY}/ca.crt

Remplacez HARBOR_INSTANCE_URL par l'URL de votre instance Harbor. Exemple : harbor-1.org-1.zone1.google.gdc.test.

Si la configuration échoue, le message d'erreur suivant s'affiche :

Error response from daemon: Get "https://<HARBOR_INSTANCE_URL>": x509: certificate signed by unknown authority

Répétez les étapes pour résoudre ce problème et escaladez-le à l'équipe d'ingénieurs GDC si nécessaire.