【发布时间】:2018-12-20 05:27:44
【问题描述】:
我正在尝试使用 GCloud IAM 权限在我们的 GCP 基础架构上设置每个实例级别的权限(例如,可以在机器 A 上进行 SSH,但不能在机器 B 上进行 SSH)。
但是,我遇到了一个奇怪的行为。
如果我将一个只有Compute Viewer 权限的用户添加到GCloud 项目,该用户将能够在Compute Engine 部分中的所有 VM 设置上进行SSH。
这毫无意义,因为文档本身指出您不能使用 Compute Viewer 进行 SSH:https://cloud.google.com/compute/docs/access/
此外,当我尝试为每个特定实例设置权限时(通过进入 Compute Engine > VM Instances,选择特定实例并从权限选项卡中添加权限),这些似乎实际上没有任何效果。
不确定我是否错过了什么:
- 为什么
Compute Viewer允许使用 SSH? - 为什么每个实例的权限无效?
【问题讨论】:
-
您甚至不需要 GCP 帐户即可通过 SSH 连接到计算实例。您只需要 SSH 密钥对。您混淆了安全机制。
-
据我了解,IAM 允许控制 SSH 权限,如 cloud.google.com/compute/docs/access 中所述,但具有更高级别的粒度(因此您不仅仅是控制 SSH 权限)。仅使用 ssh 密钥的 SSH 似乎需要我们自己的 SSH 管理,这似乎被 GCP 所不鼓励,正如这里提到的 cloud.google.com/compute/docs/instances/…。我们还遇到了开发人员添加自己的 SSH 密钥并完全破坏其他人的 SSH 能力的问题。
-
我的评论不是关于如何管理 SSH 访问。我的评论是纠正您认为 Google 管理/控制 SSH 访问的无效假设。您可以争论正确的方法,但事实是您可以使用 SSH 密钥访问实例(防火墙允许)。经验丰富的开发人员将 SSH 密钥用于许多不需要 GCP 来管理我们的密钥的任务。拥有多个 SSH 密钥没有问题,良好的安全实践建议为每个访问实例的用户使用不同的 SSH 密钥。有些人有问题的事实只是他们不了解如何实现和使用 SSH 密钥。
-
我很困惑。这些开发人员使用 google 记录的方式
gcloud compute os-login ssh-keys add添加了自己的 ssh 密钥。当他们这样做时,他们能够使用他们的 SSH 密钥进行 ssh,但并没有持续多久。与此同时,所有其他用户都无法正确登录。这与you risk disrupting the ability of your project members to connect to instances.的文档所述一致此外,Google 文档建议使用他们自己的 SSH 密钥管理机制 (cloud.google.com/compute/docs/instances/#manage_access) -
所以,我理解您关于管理与授权的评论,关键是谷歌还处理元数据传播,包括 sshkey 信息,以及手动管理 sshkey,即使通过他们自己的控制台界面,似乎与自动生成的密钥。话虽如此,它对我帖子的两个问题没有帮助
标签: google-cloud-platform google-compute-engine google-iam