是否可以为身份感知代理下的服务的特定端点提供 public 访问权限?

Is it possible to provide a public access for a specific endpoint for a service under Identity aware proxy?

我在 Google Cloud App Engine 中有一个服务,它在 IAP 之后。

只有我组织内的用户可以访问它。 我需要让所有用户都可以访问此服务的一些端点。 有没有可能实现?

我找到了一个instruction,上面说可以,但是也说:The allUsers and allAuthenticatedUsers values are unsupported member types in a conditional role binding. If you specify one of these member types, the setIamPolicy operation will fail.

我不太清楚,有点困惑。

一个小例子: 我的服务有 url https://google-cloud-app-engine-service.com 我只想让每个人都可以使用此服务的一个端点: https://google-cloud-app-engine-service.com/public_endpoint.

谢谢!

您无法使用 IAP 将 URL 路径列入白名单。最好的谷物是服务。我的意思是,您可以在 AppEngine 上激活 IAP。然后,对于您想要的服务,您可以 select 它,转到信息面板并添加 allUsersallAuthenticatedUsers 角色 IAP-secured web app user

您有多种选择

  • 自行管理安全,不要使用 IAP(这不是一个好主意)
  • 在 AppEngine 前面使用 Cloud Endpoint。我 wrote an article on this 使用 APIKey 进行保护,但您可以根据需要更改安全定义。问题是您必须在 Cloud Endpoint 中定义所有 API,并且您的堆栈中还有一个额外的组件
  • 使用 2 项服务(如果可能)。设置一个 public,另一个受 IAP 保护。

正如@guillaume-blaquiere 在他的回答中所建议的那样,我将我的应用程序引擎服务分成两个独立的服务,并使第一个服务只能从我的组织内部访问,第二个服务可供使用 IAP 的所有人访问。