如何查看Google Cloud服务账号有权访问的所有资源?含外部共享资源
查看服务账号对外部资源的权限
针对Google Sheets(外部电子表格)的直接检查
- 打开目标共享电子表格,点击右上角的「共享」按钮,在共享面板中搜索你的服务账号邮箱,查看它被分配的具体权限(编辑/查看/评论等)。
- 如果涉及的账号数量较多,可点击共享面板里的「高级」选项,导出完整的权限列表,逐一核对是否存在未预期的授权。
利用Google Cloud CLI命令排查
- 使用
gcloud命令行工具,结合服务账号密钥调用Sheets API的权限查询接口:
替换gcloud auth activate-service-account --key-file=your-service-account-key.json curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/permissions"your-service-account-key.json为你的服务账号密钥文件路径,SPREADSHEET_ID为目标表格的ID(可从表格URL中提取)。返回结果会列出所有拥有该表格权限的账号及对应权限级别。
跨资源的权限审计思路
- 对于其他外部资源(如Google Drive文件/文件夹),可通过Drive API的权限端点查询:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://www.googleapis.com/drive/v3/files/FILE_ID/permissions" - 若需批量审计,可编写简单脚本遍历服务账号有权访问的外部资源(通过搜索Drive中共享给该账号的文件),逐一拉取权限列表进行对比。
注意事项
- 确保服务账号拥有
spreadsheets.get(Sheets)或files.get(Drive)的API调用权限,否则会返回权限不足的错误。 - 外部资源的权限由资源所有者管理,若发现未预期的权限,需联系资源所有者调整,或通过服务账号主动移除自身权限(如果权限允许)。
内容的提问来源于stack exchange,提问作者bigjosh
相关产品推荐
相关产品推荐

