是否可以通过 OS-Login IAP 隧道以 https/ssh 形式运行 gitlab?

是否可以通过 OS-Login IAP 隧道以 https/ssh 形式运行 gitlab?

我们在 GCP 实例上运行了一个 gitlab 服务器。目前,此实例具有映射的互联网 IP 和正确的 DNS 名称。最近,我们希望删除此互联网 IP,并强制所有访问都通过经过身份验证的隧道进行。

对于 GCP 环境中的其他实例来说,这不是问题,但是工程师喜欢直接在本地系统上使用代码,而不是连接到环境。

我们目前正在使用 OS-Login 来提供隧道 ssh 会话以及身份感知代理 (IAP) 隧道进行访问。

然而,我无法理解如何映射隧道和 DNS 名称,以便远程工程师可以继续从他们的本地系统使用 gitlab。

这可能吗?

如果是这样,我应该如何配置 IAP 隧道和 DNS 名称以使其工作?

感谢您的时间。

编辑/澄清:

我想要实现的底线是从 GCP 环境中的 gitlab 服务器中删除互联网 IP,同时不破坏工程师工作站上当前拥有的任何 git 存储库或 GCP 环境内当前存在的任何工具/脚本。

因此,我想要的是这样一种设置:工程师可以坐在家里的工作站上,使用我的 GCP 环境中的 gitlab 服务器,仅使用 OS-Logn 和 IAP-Tunnels 与其通信。

即使 IAP 隧道实际上是本地主机上的端口,此设置也会将服务器称为 gitlab.mydomain.com,因为 GCP 环境中的系统仍然必须在没有 IAP 隧道的情况下使用它。

只是为了好玩,我有 Linux、Windows 工程师麦金塔电脑。

答案1

使用 TCP 转发会使 DNS 协议变得无用,因为它使用 UDP(而不是 TCP)。

也作为约翰·汉利提到- 这将破坏所有 SSL 证书。

注意:我尚未使用 GitLab 对此进行测试,这会破坏 SSL 证书等项目。我认为更好的方法是拥有一个公共 IP 地址,然后配置 VPC 防火墙规则以仅允许您的 IP 地址访问服务器或设置 VPN,例如 OpenVPN 或 WireGuard。

此外,请记住使用 TCP 转发时的限制:

带宽:IAP 的 TCP 转发功能不适用于批量传输数据。IAP 保留对滥用此服务的用户进行速率限制的权利。

连接长度:IAP 会在 1 小时不活动后自动断开会话。我们建议在您的应用程序中设置逻辑,以便在隧道断开连接时重新建立隧道。

后者不应该是个问题,因为我认为没有人会在工作时让隧道长时间处于不活动状态。

我会考虑 John 的建议,使用 VPN 而不是 TCP 转发。这样您就可以运行任何软件协议,而不会出现问题和带宽速率限制。

您还可以使用 GCP 防火墙规则限制对虚拟机的访问。

相关内容