【发布时间】:2021-12-30 15:27:53
【问题描述】:
重现此的步骤:
- 使用“要求身份验证”选项设置创建 Cloud Run 服务 入口选项为“允许内部流量和来自 Cloud Load Balancing 的流量”
- 使用启用 IAP 的外部负载均衡器公开服务
- 为用户授予后端服务的“IAP-Secured Web App User”角色
用户无需明确许可即可访问 Cloud Run 服务。
您可以按照本教程获得工作示例hodo.dev/posts/post-30-gcp-cloudrun-iap/
这是一个错误还是预期的行为?
如果这是预期的,那么这个隐式用户权限记录在哪里?
【问题讨论】:
-
当您对此进行测试时,您的用户在 Cloud Run 实例上具有哪些角色?我的想法是“需要身份验证”意味着将检查授权(而不是不检查),并且发出请求的用户必须拥有该实例的“Cloud Run Invoker”角色。
-
您是否在隐身模式下进行了测试?您是否向特定提供商授予 IAP?
-
如果您授予
IAP-Secured Web App User的用户也是项目的一部分并且具有其他权限(例如编辑者或其他权限),这可能是有意义的。我建议阅读IAP documentation,尤其是角色和权限部分。 -
用于测试的用户在项目中只有一个角色。附加到后端服务的
IAP-Secured Web App User角色。 -
@Kolban。根据文档,当服务配置为“需要身份验证”时,Cloud Run Invokers 或任何具有
run.routes.invoke权限的角色都可以调用。但是当通过 IAP 访问时,用户只有IAP-Secured Web App User角色并且仍然能够访问服务。
标签: google-cloud-platform google-cloud-run google-iap