6
votes

Tunnel IAP vers VM

J'ai une question concernant Compute VM et ses privilèges associés. J'ai des privilèges de «propriétaire» au niveau du projet. J'ai créé une machine virtuelle mais je n'ai pas pu lui attribuer d'adresse IP externe. En me référant à la documentation Google Cloud, il semble que je pourrai toujours me connecter à cette VM en utilisant VPN ou IAP. En cliquant sur le lien SSH à côté de la VM, je vois qu'elle utilise un tunnel Cloud-IAP mais la connexion échoue.

Voici le message d'erreur L'adresse IP externe n'a pas été trouvée; par défaut à l'utilisation du tunnel IAP.

ERROR: (gcloud.compute.start-iap-tunnel) Error while connecting [4003: u'failed to connect to backend'].
ssh_exchange_identification: Connection closed by remote host
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

Comment puis-je me connecter à cette VM?

J'apprécie votre aide avec ceci


1 commentaires

Modifiez votre question et incluez la règle de pare-feu pour SSH. Si vous n'en avez pas, créez-en un. Cependant, veuillez être plus détaillé sur les messages d'erreur. Si vous avez un propriétaire de projet auquel vous pouvez attribuer une adresse IP externe, sinon vous pourriez utiliser un autre compte qui ne le fait pas.


4 Réponses :


0
votes

En tant que propriétaire du projet inhérent aux rôles «Administrateur de calcul» et «Administrateur de réseau de calcul», vous devriez pouvoir ajouter l'adresse IP externe à votre VM. Cependant, vous pouvez essayer la commande ci-dessous via cloud shell . Et partagez le message d'erreur affiché. Cela ajoutera une adresse IP externe éphémère à votre VM .

$ gcloud compute instances add-access-config [INSTANCE NAME] --zone=[ZONE] --access-config-name "[ACCESS_CONFIG_NAME]"

Aussi pour ssh sans l'adresse IP externe, vous devez activer le Cloud IAP, veuillez consulter le document qui comprend le pare-feu, le rôle «IAP-Secured Tunnel User» et le tunneling.


1 commentaires

emm ... pas besoin d'IP externe, et netops ne permet pas de l'ajouter ..



4
votes
  • https://hodari.be/posts/2019_09_30_access_private_gke_nodes_with_ssh/
  • https://cloud.google.com/iap/docs/using-tcp-forwarding
  • Règles de pare-feu configurées pour autoriser l'accès à partir du réseau de transfert TCP de Cloud IAP, 35.235.240.0/20, sur tous les ports de votre machine. Cela garantit que les connexions sont autorisées depuis les adresses IP de transfert TCP de Cloud IAP vers le port TCP du service d'administration sur votre ressource. Notez que vous n'aurez peut-être pas besoin d'ajuster vos règles de pare-feu si les règles par défaut default-allow-ssh et default-allow-rdp sont appliquées aux ports utilisés pour SSH et RDP.

    Comme vous avez probablement déjà default-allow-ssh au lieu d'essayer:

    gcloud compute ssh stage-es-kibana -- -N -L 5601:localhost:5601
    

    sauter au port via une couche ssh supplémentaire:

    gcloud compute start-iap-tunnel stage-es-kibana 5601 --local-host-port=localhost:5601
    

    ou ouvrez le pare-feu Google entre l'hôte / port stage-es-kibana:5601 et le sous-réseau 35.235.240.0/20 .


4 commentaires

L'élément clé ici consiste à ajouter la règle de pare-feu spécifiée dans cloud.google.com/iap/docs/...


@mafrosis Dans le cas où vous voulez que le tunelling fonctionne réellement comme indiqué par gcloud CLI (comme RDP, etc.). Mais il est toujours possible de passer le port via SSH standard (car vous aurez probablement déjà la règle default-allow-ssh ) sans ajouter d'autres règles de pare-feu, en ne gardant que le port 22 ouvert au sous-réseau 35.235.240.0/20 .


En d'autres termes, tant que vous êtes en mesure de vous connecter SSH, vous pouvez tunneler n'importe quel port via le tunnel SSH (option -L ) en évitant les règles de pare-feu propriétaires! Dans tous les cas, IAP n'est pas pour le transfert en masse et la connexion parallèle est interdite à partir du même système d'exploitation car ils utilisent une base de données SQL Lite partagée sans verrous appropriés, il ne s'agit donc que de connexions shell de secours, pas pour un VPN approprié.


Oui d'accord. Je pense que pour les personnes qui arrivent à cette question via Google, il est utile de mettre en évidence la documentation spécifique du pare-feu pour IAP



0
votes

Il semble que le GCP CE nécessite d'initialiser SSH et d'autres services après son état RUNNING. J'ai utilisé une solution de contournement en ajoutant une commande sleep (60 sec), après le démarrage de la VM et avant SSH en utilisant le tunnel IAP.


0 commentaires

0
votes

C'est un problème d'autorisations. Vous essayez de ssh dans votre vm via le proxy IAP de google. Vous ne disposez pas des autorisations nécessaires pour créer le tunnel de votre ordinateur vers le serveur proxy.

Vous devez avoir le rôle "roles/iap.tunnelResourceAccessor" pour ssh sur votre VM:


0 commentaires