用IAM条件硬化Google Cloud访问管理

Google Cloud 官方博客介绍了如何利用 IAM 条件(Conditions)来硬化访问管理,实现比传统预定义角色和拒绝策略更精细的权限控制。文章以两个具体用例展开。

用例一:约束管理员权限。以 IAM Admin 角色(可自授权任何角色)为例,先用 Project IAM Admin 角色缩小范围,再通过 IAM 条件限制只能授予特定角色(如 BigQuery 和 Agent Platform API 相关角色),使用 Common Expression Language (CEL) 语法编写条件表达式,在 gcloud 或 Terraform 中实现。

用例二:控制 MCP 服务器访问。MCP Tool User 角色默认授予访问所有 MCP 服务器的权限。通过 IAM 条件,可将访问范围限制到特定 MCP 服务器(如 BigQuery MCP),甚至进一步细化到具体 MCP 工具。条件中使用 resource.service 属性匹配服务端点,或使用 API 属性匹配工具名称。

此外,IAM 条件还支持基于请求时间(如工作日白天)或身份属性进行控制,但作者提示基于身份的条件可能成为反模式,推荐通过策略主体列表而非条件来控制身份。文章最后提及 IAM Deny 策略可作为更深度的防御补充,并附上了相关资源链接。

Generosity Under Conditions: Hardening Google Cloud Access Management

查看原文