通过 Google Cloud Platform IAP 允许例外(白名单)

通过 Google Cloud Platform IAP 允许例外(白名单)

我的 GCP 项目有一个实例在内皮素受保护的负载均衡器。

添加 IAP 保护导致了我出现 2 个相关问题,我无法解决(我猜这两个问题都可以用类似的方式解决):

  1. 我曾经有一个物理 Jenkins 从属服务器(必须是物理的,因为它连接到特殊硬件),它连接到云 Jenkins 服务器。现在,云服务器受到 IAP 的保护,本地 Jenkins 从属服务器不再能够访问它,因为从属 JNLP 应用程序不知道如何使用 Google 登录界面进行授权。(编辑:我最终通过为从服务器直接到 Jenkins 服务器机器创建 SSH 隧道解决了这个特定的问题

  2. 我曾经有一个 BitBucket-Cloud 存储库,它POST通过 BitBucket 的 webhook 功能连接到 Jenkins 服务器。BitBucket 也不知道如何使用 IAP 授权,所以它也不再起作用了。

谷歌似乎支持以编程方式授权但在这两种情况下,我都无法对需要与 Jenkins 服务器通信的实体进行编程控制。

有什么办法可以解决这个问题吗?我有几个想法,但我不确定最好的方法是什么/是否有可能:

  • 有没有办法简单地将 IAP 中的特定 URL 列入白名单,这样它们就不需要任何授权了?例如,允许所有人免授权访问,这样 https://my.jenkins.domain.com/bitbucket-scmsource-hook/notifyBitBucket 就可以进行 webhook?(我知道从安全角度来看这不是最佳选择)

  • 有没有办法将特定 IP 的访问列入白名单?允许所有来自 BitBucket Cloud 的请求和所有来自物理从属的请求通过,而无需 IAP 进行身份验证。这显然也不是最佳的安全措施。

  • 也许可以创建另一个并行的无 IAP 负载均衡器,该负载均衡器也路由到 Jenkins 服务器,我将专门配置该服务器以将 URL/IP 列入白名单(如上所述),将其他所有内容列入黑名单,并让 BitBucket 和物理从属设备连接到它,而不是常规负载均衡器。与上述解决方案相同的安全问题考虑,非常复杂,需要另一个域名。根本不是最佳的。但这是我能想到的唯一可行的解​​决方案。

您觉得如何?您有更好、更简单、更安全的想法吗?也许我错过了一些显而易见的方法?我在 IAP 文档中找不到有关如何实现此类目标的任何信息。

答案1

所以这里的最佳答案基本上就是你想要的。我有一个单独的小型虚拟机,带有一个 Nginx 反向代理,仅用于处理 webhook。它路由到与我的 Google IAP 负载均衡器相同的 Jenkins 后端。

我正在使用 GitHub 作为我的 webhook,但我想它对于 Bitbucket 的工作方式可能类似。

实际上,我会有一个定期(每天?)运行的 Jenkins 作业,它将从这里获取 CIDR 条目并更新其他负载均衡器的防火墙规则。

相关内容