You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCP中限制服务账号权限?以Places Autocomplete为例

如何将GCP服务账号权限限制为仅访问Google Maps Places Autocomplete API

核心结论

完全可以实现最小权限配置,关键是使用Places API专属角色+带条件的服务使用角色,避免授予全局宽泛权限。

具体配置步骤

  1. 启用目标API
    首先确保你的GCP项目中已经启用了Places API(Autocomplete是Places API的子功能,必须先启用Places API才能使用)。

  2. 使用Places API专属角色
    不要使用宽泛的Maps API Viewer角色,而是使用专门针对Places API的只读角色:roles/maps.placesViewer。这个角色仅允许访问Places API的所有只读操作,包括Autocomplete功能,权限范围精准得多。

  3. 限制serviceusage.serviceUsageConsumer角色的作用范围
    你提到的roles/serviceusage.serviceUsageConsumer确实是必要的(它允许服务账号使用已启用的API),但可以通过条件绑定将其权限限制为仅对Places API生效:

    • 给服务账号分配该角色时,添加条件表达式:
      resource.name == "projects/[你的项目ID]/services/places-backend.googleapis.com"
      

    这样该角色只能用于Places API的访问,无法作用于其他GCP服务或Maps API。

  4. 更细粒度:自定义角色(可选)
    如果想进一步缩小权限到仅Autocomplete操作,可以创建自定义角色:

    • 进入IAM -> 角色 -> 创建角色
    • 在权限搜索框中查找maps.places.autocomplete.read,添加这个唯一权限
    • 将自定义角色分配给服务账号,再配合带条件的serviceusage.serviceUsageConsumer角色即可。

验证配置

完成配置后,测试以下场景:

  • 发起Places Autocomplete API请求:应正常返回结果
  • 尝试访问其他Maps API(如Maps JavaScript API)或其他GCP服务(如Cloud Storage):应收到权限拒绝的错误

内容的提问来源于stack exchange,提问作者Raf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:42:45