拥有GCP组织层级权限的用户如何限制其访问FireStore等特定服务?
GCP 不支持VPC SC场景下的Firestore访问限制方案
以下针对组织级IAM权限继承场景下,限制指定用户访问特定项目Firestore的需求,提供可落地的替代方案:
方案1:IAM Deny Policy阻断(最优选择)
IAM Deny Policy优先级高于所有允许类IAM权限配置,可直接覆盖组织层级继承的授权,无需修改现有组织级权限配置:
- 在你需要管控的指定目标项目层级创建Deny Policy
- 策略主体选择需要限制访问的用户/用户组
- 禁止操作范围选择所有Firestore相关权限,可直接使用通配
datastore.*,也可按需指定datastore.entities.get、datastore.entities.list等细粒度操作 - 策略生效范围限定为当前项目即可,不会影响用户在其他项目的权限
方案2:资源级IAM权限收拢
如果仅需限制小范围用户,同时要保留其余用户的Firestore访问权限,可搭配资源级IAM配置:
- 先通过上述Deny Policy默认阻断所有非授权用户对目标项目Firestore的访问
- 再在目标项目的Firestore实例层级,单独给需要保留权限的用户/用户组绑定Firestore相关角色(如
roles/datastore.user、roles/datastore.owner)
方案3:访问代理层管控
如果需要额外的管控能力(如IP来源限制、请求内容审计、自定义权限逻辑),可自行部署访问代理层:
- 配置目标项目Firestore的IAM权限,仅允许代理服务的专用服务账号拥有访问权限,阻断所有普通用户的直接访问
- 所有用户对该Firestore实例的访问必须经过代理层,代理层提前完成身份校验、权限校验、合规校验后,再转发请求到Firestore
注意:如果你的管控规则仅需要阻断部分用户的访问,无需额外的自定义逻辑,优先选择方案1即可,配置门槛低,生效速度快,不会对现有业务访问逻辑产生影响。
内容的提问来源于stack exchange,提问作者zea
相关产品推荐
相关产品推荐

