如何保护Google Compute Engine VM数据?OS Login是否适用于该场景?
GCP敏感数据VM访问控制方案
问题1:是否有办法阻止其他用户访问该VM实例的数据?
有多种可行方案,核心从VM访问权限和数据本身权限两层做控制:
- 限制VM的IAM权限:利用你的Editor角色,修改目标VM的IAM绑定,仅添加你个人账号(或指定授权账号),赋予
roles/compute.instanceUser.v1(普通登录权限)或roles/compute.instanceAdmin.v1(带sudo权限),移除组织内其他默认成员的权限绑定。这样其他人连VM的访问权限都没有,无法发起SSH连接。 - 禁用项目级SSH密钥继承:在VM实例详情的元数据设置中,添加
block-project-ssh-keys元数据项,值设为true,同时删除ssh-keys元数据。这会阻止其他人通过项目级添加SSH密钥的方式登录VM。 - 加固VM内部文件权限:登录VM后,将敏感数据所在目录/文件的权限设置为仅自身可读可写,执行命令:
chmod 700 /path/to/sensitive-folder,即使有人意外获得登录权限,也无法读取敏感数据。
问题2:OS Login是否适用于上述需求?
OS Login完全适配你的需求,它是GCP官方推荐的细粒度OS级访问控制方案:
- 通过OS Login,你可以精准授权:仅给你个人账号分配
roles/compute.osLogin(普通登录)或roles/compute.osAdminLogin(sudo权限),未被授权的组织成员无法在VM上创建用户或登录。 - 还可配合IAM条件,进一步限制登录的IP范围、时间窗口等,提升安全性。
更简单常用的方法推荐
如果追求操作简便,优先采用IAM权限限制+禁用项目SSH密钥的组合方案:
- 进入目标VM的IAM页面,清理无关成员,仅保留你自己的账号并赋予对应登录权限。
- 编辑VM元数据,添加
block-project-ssh-keys=true,删除原有ssh-keys项。 - 登录VM后设置敏感数据目录权限为
700。
内容的提问来源于stack exchange,提问作者yoshiki
相关产品推荐
相关产品推荐

