GCP 只对云开放防火墙 shell
GCP open firewall only to cloud shell
GCP 中是否有明确允许仅来自云的防火墙规则的方法 shell。所有 GCP 演示和视频都添加了规则 allow 22 to 0.0.0.0/0 to ssh to the instance from cloud shell.
然而,有没有一种方法可以限制仅来自云 shell 的访问 - 使用云 shell 的 IP 范围或服务帐户?
Google 不发布云 Shell 的 public IP 地址范围。
VPC 防火墙规则允许指定源和目标的服务帐户。但是,Cloud Shell 不使用服务帐户。 Cloud Shell 使用登录到 Google Cloud Console 的人的身份。这意味着 OAuth 2 用户凭证。 VPC 防火墙规则不支持用户凭据。
我的建议是通过 IAP(身份识别代理)使用 TCP 转发和隧道 SSH。 Google 在 Cloud SDK CLI 中让这一切变得简单。
在 Google 云控制台中打开云 Shell。然后 运行 这个命令:
gcloud compute ssh NAME_OF_VM_INSTANCE --tunnel-through-iap
这也适用于没有 public IP 地址的 VM 实例。
Identity Aware Proxy CIDR netblock 是 35.235.240.0/20
。创建允许来自此块的 SSH 流量的 VPC 防火墙规则。此规则将阻止 public SSH 流量并仅允许授权流量通过身份识别代理。
Google 已在本文中发布详细信息 - Configuring secure remote access for Compute Engine VMs
在管理控制台中,单击安全,然后单击 select Identity-Aware 代理。
如果您以前没有使用过 Cloud IAP,则需要配置 oAuth 屏幕:
将同意屏幕配置为仅允许您域中的内部用户,然后单击“保存”。
接下来,您需要定义允许使用Cloud IAP 远程连接的用户。将用户添加到您要连接到的资源上的“IAP-secured 隧道用户”角色。
然后,通过 web UI 或 gcloud 中的 ssh 按钮连接到机器。
使用网络 UI 时,请注意 URL 参数 useAdminProxy=true。
提示:如果你本地没有安装gcloud,也可以使用Cloud Shell:
gcloud beta compute ssh {VM-NAME} --tunnel-through-iap
您现在应该已连接!您可以通过尝试 ping out 来验证您没有互联网连接。 8.8.8.8(Google 的 Honest DNS)是一个很好的尝试地址。
GCP 中是否有明确允许仅来自云的防火墙规则的方法 shell。所有 GCP 演示和视频都添加了规则 allow 22 to 0.0.0.0/0 to ssh to the instance from cloud shell.
然而,有没有一种方法可以限制仅来自云 shell 的访问 - 使用云 shell 的 IP 范围或服务帐户?
Google 不发布云 Shell 的 public IP 地址范围。
VPC 防火墙规则允许指定源和目标的服务帐户。但是,Cloud Shell 不使用服务帐户。 Cloud Shell 使用登录到 Google Cloud Console 的人的身份。这意味着 OAuth 2 用户凭证。 VPC 防火墙规则不支持用户凭据。
我的建议是通过 IAP(身份识别代理)使用 TCP 转发和隧道 SSH。 Google 在 Cloud SDK CLI 中让这一切变得简单。
在 Google 云控制台中打开云 Shell。然后 运行 这个命令:
gcloud compute ssh NAME_OF_VM_INSTANCE --tunnel-through-iap
这也适用于没有 public IP 地址的 VM 实例。
Identity Aware Proxy CIDR netblock 是 35.235.240.0/20
。创建允许来自此块的 SSH 流量的 VPC 防火墙规则。此规则将阻止 public SSH 流量并仅允许授权流量通过身份识别代理。
Google 已在本文中发布详细信息 - Configuring secure remote access for Compute Engine VMs
在管理控制台中,单击安全,然后单击 select Identity-Aware 代理。
如果您以前没有使用过 Cloud IAP,则需要配置 oAuth 屏幕:
将同意屏幕配置为仅允许您域中的内部用户,然后单击“保存”。
接下来,您需要定义允许使用Cloud IAP 远程连接的用户。将用户添加到您要连接到的资源上的“IAP-secured 隧道用户”角色。
然后,通过 web UI 或 gcloud 中的 ssh 按钮连接到机器。
使用网络 UI 时,请注意 URL 参数 useAdminProxy=true。
提示:如果你本地没有安装gcloud,也可以使用Cloud Shell:
gcloud beta compute ssh {VM-NAME} --tunnel-through-iap
您现在应该已连接!您可以通过尝试 ping out 来验证您没有互联网连接。 8.8.8.8(Google 的 Honest DNS)是一个很好的尝试地址。