根据标题,例如,如果我禁用 GCP 上对 VM 的 SSH 访问,但有人想要远程管理 VMS、构建 docker 容器或管理云存储对象,他们该怎么做?
- 授予人们使用 Google Cloudshell 的权限
- 配置与 GCP 的 VPN 连接以允许 SSH 访问云虚拟机。
我的想法是:
- 如果有人要求像 SSH 一样远程访问虚拟机,并且机器仍然具有外部 IP,他们可以使用 Cloud shell 访问 SSH
- 如果他们提到删除外部 IP,则选项 2 是可行的,但事实似乎并非如此。
答案1
如果您想要 GCP 上的容器,请考虑Kubernetes 引擎. GKE 使用kubectl
作为其集群的接口,按照 IAM 中的用户角色允许. 没有人需要通过 ssh 进入集群节点。
SSH 是在 GCP Linux 实例上获取 shell 的唯一好方法。访问以两种方式控制:
- 谁拥有与项目和实例中的公钥相关联的私钥 SSH 密钥。
- 通过 GCP 实例标签或源范围控制入口 ssh 流量的防火墙规则。
仅向操作提供生产 ssh 密钥。开发人员和其他用户不会获得 shell,他们使用您的部署脚本和远程监控。
请注意,如果您使用 Cloud Shell,则需要从 Cloud Shell 到 VPC 的路由。该路由可能通过您的 Internet 访问,如果您删除公共 IP,这将带来挑战。
最后,GCP 实例可以有一个串行控制台,但其身份验证是 SSH 密钥,并且没有 IP 限制。您需要此功能来修复没有 SSH 的实例,但作为用户访问控制,它严格来说更糟糕。