我尝试访问没有外部 IP 的 VM 实例,并且出于安全目的,我不想打开端口或允许 SSH 策略。
AWS 中有类似‘会话管理器’的解决方案,Google Cloud Platform 中有类似的东西吗?
答案1
Google 提供了 Cloud Identity-Aware Proxy (IAP),允许您连接到没有外部 IP 的 VM 实例:
和TCP 转发,IAP 可以保护对托管在 Google Cloud 上的虚拟机的 SSH 和 RDP 访问。您的虚拟机实例甚至不需要公共 IP 地址。
看看这篇文章Cloud IAP 支持通过 SSH 和 RDP 对虚拟机进行上下文感知访问,无需堡垒主机首先。您可以在文档中找到更多详细信息为 Compute Engine 启用 IAP和使用 IAP 进行 TCP 转发。
我已尝试遵循我的测试项目的文档,您可以在下面找到我的步骤:
创建没有外部 IP 的虚拟机实例:
gcloud compute instances create instance-1 --zone=us-central1-a --machine-type=e2-medium --subnet=default --no-address --maintenance-policy=MIGRATE --image=ubuntu-1804-bionic-v20200610 --image-project=ubuntu-os-cloud
转到安全->身份感知代理并启用身份感知代理 API。
配置 GCP 防火墙以启用来自 Cloud IAP 的入站流量:
gcloud compute firewall-rules create allow-ssh-ingress-from-iap --direction=INGRESS --action=allow --rules=tcp:22 --source-ranges=35.235.240.0/20
通过 IAP 隧道连接到 VM 实例:
$ gcloud compute ssh instance-1 --tunnel-through-iap --zone=us-central1-a Warning: Permanently added 'compute.3924477895872840881' (ECDSA) to the list of known hosts. Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.0-1026-gcp x86_64) ... instance-1:~$
此外,看看第三方视频教程。