禁用 GCP 上生产虚拟机的 SSH 访问

禁用 GCP 上生产虚拟机的 SSH 访问

根据标题,例如,如果我禁用 GCP 上对 VM 的 SSH 访问,但有人想要远程管理 VMS、构建 docker 容器或管理云存储对象,他们该怎么做?

  1. 授予人们使用 Google Cloudshell 的权限
  2. 配置与 GCP 的 VPN 连接以允许 SSH 访问云虚拟机。

我的想法是:

  1. 如果有人要求像 SSH 一样远程访问虚拟机,并且机器仍然具有外部 IP,他们可以使用 Cloud shell 访问 SSH
  2. 如果他们提到删除外部 IP,则选项 2 是可行的,但事实似乎并非如此。

答案1

如果您想要 GCP 上的容器,请考虑Kubernetes 引擎. GKE 使用kubectl作为其集群的接口,按照 IAM 中的用户角色允许. 没有人需要通过 ssh 进入集群节点。


SSH 是在 GCP Linux 实例上获取 shell 的唯一好方法。访问以两种方式控制:

  1. 谁拥有与项目和实例中的公钥相关联的私钥 SSH 密钥。
  2. 通过 GCP 实例标签或源范围控制入口 ssh 流量的防火墙规则。

仅向操作提供生产 ssh 密钥。开发人员和其他用户不会获得 shell,他们使用您的部署脚本和远程监控。

请注意,如果您使用 Cloud Shell,则需要从 Cloud Shell 到 VPC 的路由。该路由可能通过您的 Internet 访问,如果您删除公共 IP,这将带来挑战。

最后,GCP 实例可以有一个串行控制台,但其身份验证是 SSH 密钥,并且没有 IP 限制。您需要此功能来修复没有 SSH 的实例,但作为用户访问控制,它严格来说更糟糕。

相关内容