如何通过IAM让已登录GCP控制台的用户访问Cloud Run URL?
轻量实现GCP已登录用户访问Cloud Run的IAM方案
先说明你之前操作无效的原因
你之前试的「允许未认证调用但移除allUsers」完全行不通——因为Cloud Run一旦开了允许未认证调用,就会直接跳过所有IAM身份校验,不管你Invoker角色里加了谁、删了谁,所有请求都会直接放行。必须先把服务改成需要身份验证,IAM规则才会生效。
推荐的简便方案(不用负载均衡、不用浏览器插件)
1. 配置Cloud Run服务要求身份验证
- 进入Cloud Run控制台找到目标服务,点击「编辑 & 部署新版本」
- 翻到「安全性」部分,勾选「需要身份验证」,保存更改。此时所有未认证请求都会被直接拒绝。
2. 通过IAM分配访问权限
- 进入服务的「权限」标签页,点击「添加主账号」
- 添加需要授权的内部GCP用户/用户组,为其分配
roles/run.invoker角色(Cloud Run调用者权限) - 保存后,仅被分配该角色的用户能访问服务。
3. 已登录控制台用户的便捷访问方式
无需手动生成令牌,两种简单路径:
- 直接在服务详情页点击「打开网址」按钮:该按钮会自动将当前控制台会话的身份凭证附加到请求中,点击后即可直接访问服务URL,无额外操作。
- 若需直接在浏览器地址栏访问,可通过Cloud Shell生成临时令牌:
- 打开控制台的Cloud Shell,执行命令:
gcloud auth print-identity-token - 复制生成的令牌,在浏览器开发者工具中为请求添加请求头:
Authorization: Bearer <你的令牌> - 刷新页面即可访问,令牌有效期为1小时,到期重新生成即可。
- 打开控制台的Cloud Shell,执行命令:
方案优势
- 无需配置负载均衡和IAP,节省成本与操作复杂度
- 完全基于GCP内置的IAM与身份机制,无需额外工具或插件
- 控制台用户通过内置按钮即可一键访问,体验流畅
内容的提问来源于stack exchange,提问作者Stf_F
相关产品推荐
相关产品推荐

