删除默认Compute Engine服务账号后需哪些IAM权限创建等同权限服务账号
如何创建与默认Compute Engine服务账号权限等效的自定义服务账号
默认Compute Engine服务账号的权限由「IAM角色绑定」+「实例默认访问范围」两部分共同控制,你之前配置的Compute相关权限仅覆盖了实例操作的部分场景,需要补充以下配置:
- IAM角色配置
- 优先绑定
roles/editor角色:默认Compute Engine服务账号的默认权限就是项目级Editor角色,大部分云市场方案会直接依赖该角色包含的全量权限(包含Compute、存储、日志、监控等多服务权限),仅零散配置Compute类权限无法覆盖第三方镜像的全部调用需求 - 如果不愿绑定全量Editor角色,可以组合绑定以下最小权限角色,覆盖绝大多数云市场镜像的权限要求:
roles/compute.admin(你已配置)roles/compute.imageUser(你已配置)roles/compute.instanceAdmin(你已配置)roles/logging.logWriter(实例写云日志权限)roles/monitoring.metricWriter(实例上报监控指标权限)roles/storage.objectViewer(实例拉取公共镜像、启动脚本的存储访问权限)
- 优先绑定
- 实例访问范围(Access Scopes)配置
启动云市场VM时,需要将自定义服务账号的访问范围调整为与默认GCE服务账号的默认配置一致,你可以直接选择允许默认访问权限,也可以手动勾选以下必要范围:- Compute Engine:读写权限
- 云存储:只读权限
- 云日志:写入权限
- 云监控:写入权限
- 服务控制:访问权限
- 服务管理:只读权限
为什么官方建议禁用默认GCE服务账号,云市场方案仍要求使用
这是GCP安全规范与第三方厂商适配逻辑的差异导致的:
GCP官方建议移除/禁用默认GCE服务账号,是基于最小权限的安全原则,避免服务账号泄露后因Editor的过大权限引发安全风险。但绝大多数云市场的第三方镜像在开发适配阶段,默认是基于默认GCE服务账号的全量Editor权限和默认访问范围做的兼容性测试,没有针对自定义权限场景做适配,部分老旧镜像甚至会硬校验服务账号的格式是否为[项目号]-compute@developer.gserviceaccount.com,才会正常启动流程。
如果后续有安全合规要求,你可以在云市场VM启动并正常运行后,再逐步缩减服务账号的权限到业务所需的最小集合即可。
内容的提问来源于stack exchange,提问作者FlyingPenguin
相关产品推荐
相关产品推荐

