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

如何在Google Cloud SDK中记录应用程序使用的所有权限

GCP 自动记录应用权限的可行方案

核心思路:借助审计日志+权限分析工具

GCP原生提供了完整的工具链,帮你自动捕获应用实际调用的权限,无需手动梳理,完美适配最小权限原则,具体操作如下:

1. 开启目标服务的审计日志

默认情况下,GCP的数据访问审计日志不会全量开启,你需要为用到的服务手动启用:

  • 进入GCP控制台「IAM与管理」→「日志」→「日志浏览器」
  • 针对Storage、Security Center、Datastore、Secret Manager、Pub/Sub,分别开启对应服务的管理员写入日志和数据读写日志(部分服务需开启对象级访问日志,比如Storage)
  • 注意:沙箱项目用量小,开启日志产生的额外成本可忽略

2. 运行应用触发全量日志

让你的Python应用完整跑一遍所有业务场景,确保所有API调用都被触发,此时审计日志会记录下应用发起的每一次请求对应的权限信息。

3. 提取并整理权限列表

有两种高效方式提取所需权限:

方式一:日志浏览器直接筛选

用过滤器定位应用的日志(按服务账号过滤最精准):

protoPayload.authenticationInfo.principalEmail="你的应用服务账号邮箱"

查看每条日志的protoPayload.methodName字段,该字段对应具体API方法,每个方法直接映射一个权限(比如storage.objects.get对应storage.objects.get权限,pubsub.topics.publish对应pubsub.topics.publish权限),收集去重即可。

方式二:CLI导出日志后解析

用gcloud命令导出日志到本地,再用脚本提取:

gcloud logging read "protoPayload.authenticationInfo.principalEmail='你的服务账号邮箱'" --format="json" > audit_logs.json

写个简单的Python脚本遍历JSON文件,提取protoPayload.methodName字段并去重,快速得到权限列表。

4. 创建最小权限自定义角色

拿到权限列表后,进入GCP控制台「IAM与管理」→「角色」→「创建角色」,添加提取到的权限,生成自定义角色,再给应用的服务账号绑定该角色,替换原Owner角色即可。

额外优化工具

  • IAM推荐器:GCP内置工具,会自动分析资源使用情况,给出权限精简建议,直接在IAM页面查看即可。
  • 策略分析器:可模拟权限变更,验证自定义角色是否满足应用需求,避免权限不足导致的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:01:05