如何在 GKE 上为自我管理的 Google Composer 网络服务器设置 IAP



我工作的公司在Google Cloud上有一个Composer环境,我最近不得不在同一个GKE集群上创建我们自己的自我管理Web服务器应用程序,因为提供的标准Web服务器遇到了很多超时问题。

无论如何,当通过基本入口公开此Web服务器并且没有任何访问限制时,我能够使用生成的外部IP地址很好地连接到它。 但是,我们的团队需要将对此网络服务器的访问限制为仅某些用户,我们认为最好的方法是使用 IAP 限制对特定 Google 帐户的访问,如本文档中所述:https://cloud.google.com/iap/docs/enabling-kubernetes-howto 。

我已按照上述文档中的准则创建了启用了IAP的负载均衡器,当我通过外部IP地址连接到Web服务器时,负载均衡器以堆栈驱动程序状态记录请求已"handled_by_identity_aware_proxy",因此我认为它正在重定向。 但问题是浏览器显示为"无法访问此站点",并且我没有连接到网络服务器。

我对原因有一些怀疑,我想知道是否有人可以澄清这些观点:

  1. 上面的文档指出,设置 IAP 的两个要求是"注册到负载均衡器地址的域名"和"验证所有请求是否具有身份的应用代码"。 我的第一个问题是,IAP是否需要注册域名,我没有注册域名,但是入口生成的外部IP地址是否不够? 文档所说的"验证所有请求是否具有标识的应用代码"是什么意思? 这是否意味着我需要在 Web 服务器应用程序中创建一个脚本来对用户进行身份验证? 这就是我在浏览器中收到"无法访问此站点"错误的原因吗?

  2. 在我的 Google 控制台的"身份感知代理"页面中,后端服务的状态显示为"警告"。 我怀疑这是因为我的项目有一些防火墙规则,允许所有 ip 范围不受限制地访问此网络服务器所在的 GKE 集群。 我的第二个问题是,进入集群的所有请求是否都必须通过此负载均衡器,或者如果存在某些可以绕过负载均衡器的 IP 范围,尽管存在明显的安全风险,是否仍允许 IAP 运行? 或者这是入口不起作用的原因?

非常感谢你们的帮助。

1a. IAP通过HTTPS工作,因此需要SSL证书来证明域名注册的所有权。如果没有证书,可以通过公共外部IP访问该站点,但它根本不起作用。

1b. 获取用户身份使您的应用程序能够验证请求是否通过 IAP,并且有必要在您的应用程序中对此进行配置。您必须始终使用以下一些机制:使用 App Engine 和用户 API 获取带有签名标头的用户身份

    所有
  1. 进入集群的请求都必须通过负载均衡器

相关内容

  • 没有找到相关文章

最新更新