IAP 用户可以在未经许可的情况下访问云 运行
IAP User is able to access a Cloud Run without permission
重现此步骤的步骤:
- 使用“要求身份验证”选项设置创建云 运行 服务
入口选项为“允许内部流量和来自 Cloud Load Balancing 的流量”
- 使用启用 IAP 的外部负载均衡器公开服务
- 为用户授予后端服务的角色“IAP-Secured Web App User”
用户无需明确许可即可访问云 运行 服务。
您可以按照本教程获得工作示例hodo.dev/posts/post-30-gcp-cloudrun-iap/
这是错误还是预期的行为?
如果这是预期的,那么这个隐式用户权限记录在哪里?
Google 的身份识别代理 (IAP) 充当访问后端系统的前端。对于 某些 后端,如果 IAP 收到请求,IAP 将进行工作以验证用户是否已获得适当授权以发出最终请求。这意味着如果请求 直接 到后端,则后端将负责批准。但是,如果我们通过 IAP 路由,则我们已将批准责任委托给 IAP。因此,请求用户将能够访问后端服务(例如 Cloud 运行),而无需明确的 Cloud 运行 批准,因为我们已经定义 IAP 可以做出决定,而 Cloud 运行 相信 IAP 的决定是充分的。
重现此步骤的步骤:
- 使用“要求身份验证”选项设置创建云 运行 服务 入口选项为“允许内部流量和来自 Cloud Load Balancing 的流量”
- 使用启用 IAP 的外部负载均衡器公开服务
- 为用户授予后端服务的角色“IAP-Secured Web App User”
用户无需明确许可即可访问云 运行 服务。
您可以按照本教程获得工作示例hodo.dev/posts/post-30-gcp-cloudrun-iap/
这是错误还是预期的行为?
如果这是预期的,那么这个隐式用户权限记录在哪里?
Google 的身份识别代理 (IAP) 充当访问后端系统的前端。对于 某些 后端,如果 IAP 收到请求,IAP 将进行工作以验证用户是否已获得适当授权以发出最终请求。这意味着如果请求 直接 到后端,则后端将负责批准。但是,如果我们通过 IAP 路由,则我们已将批准责任委托给 IAP。因此,请求用户将能够访问后端服务(例如 Cloud 运行),而无需明确的 Cloud 运行 批准,因为我们已经定义 IAP 可以做出决定,而 Cloud 运行 相信 IAP 的决定是充分的。