Utiliser Google Cloud IAP pour créer des connexions sans-agent

Ce guide décrit la création d’une connexion sans-agent vers une VM Linux de Google Cloud à travers Identity-Aware Proxy (IAP). Cyberwatch s’y connecte en SSH par un tunnel IAP, sans que la VM ait besoin d’une adresse IP publique.

Prérequis

Cette documentation suppose :

  • une VM Linux sur Google Compute Engine
  • un compte de service Google Cloud
  • les droits suffisants pour modifier les rôles IAM, les règles de pare-feu et les métadonnées du projet

Configuration côté Google Cloud

Activer OS Login sur la VM

Cyberwatch s’authentifie sur la VM avec OS Login. Ajouter la métadonnée enable-oslogin avec la valeur TRUE, sur la VM ou sur l’ensemble du projet.

Si la VM est associée à un compte de service, ajouter le rôle roles/iam.serviceAccountUser au compte de service de la VM pour autoriser le compte de service utilisé par Cyberwatch à se connecter sur la machine.

Configurer les permissions du compte de service

Attribuer au compte de service utilisé par Cyberwatch un rôle avec les deux autorisations suivantes :

compute.instances.osAdminLogin
iap.tunnelInstances.accessViaIAP

Actions à effectuer dans Cyberwatch

Enregistrer les identifiants

Enregistrer la clé JSON du compte de service depuis le menu Identifiants enregistrés de la barre latérale, en cliquant sur Ajouter et en sélectionnant le type Google Cloud Platform.

Ajouter la connexion sans-agent

  1. Cliquer sur Gestion des actifs > Connexions sans-agent > Ajouter
  2. Sélectionner le protocole d’accès Google Cloud IAP
  3. Renseigner le Projet, la Zone et le Nom de la VM
  4. Sélectionner le jeu d’identifiants Google Cloud Platform
  5. Cliquer sur Sauvegarder

Ce type de connexion sans-agent doit être autorisé dans le menu Administration > Gestion des connecteurs en cochant la case Google Cloud IAP.

Précisions :

  • Seuls les actifs Linux sont supportés
  • Le proxy HTTP des identifiants est utilisé pour les appels d’API Google, mais pas pour le tunnel IAP : le scanner doit pouvoir joindre directement tunnel.cloudproxy.app en TCP 443
  • La connexion SSH passe toujours par le port 22 de la première interface réseau (nic0) de la VM