IAP代理背后的Docker映像注册表

IAP代理背后的Docker映像注册表,docker,reverse-proxy,google-kubernetes-engine,docker-registry,identity-aware-proxy,Docker,Reverse Proxy,Google Kubernetes Engine,Docker Registry,Identity Aware Proxy,我继承了一个系统,在该系统中,我们在GCP中托管了一个gitlab Docker映像注册表,但它位于IAP代理的后面,因此我可以在连接到内部网络时执行Docker pull(这要感谢绕过IAP代理的防火墙规则) 有没有办法从互联网上对它进行docker拉动?我想我需要一个插件,用于docker登录,使其具有IAP意识 以前有人这样做过吗?什么是“托管在GCP中”实际上是什么意思?哪个服务?它在GKE集群上。实际上,我有一个运行gitlab的pod,它为容器注册部署了一个pod(我相信是通过hel

我继承了一个系统,在该系统中,我们在GCP中托管了一个gitlab Docker映像注册表,但它位于IAP代理的后面,因此我可以在连接到内部网络时执行Docker pull(这要感谢绕过IAP代理的防火墙规则)

有没有办法从互联网上对它进行docker拉动?我想我需要一个插件,用于
docker登录
,使其具有IAP意识


以前有人这样做过吗?

什么是“托管在GCP中”实际上是什么意思?哪个服务?它在GKE集群上。实际上,我有一个运行gitlab的pod,它为容器注册部署了一个pod(我相信是通过helm)。我不认为那部分是相关的。我想我在一个计算实例上也会遇到同样的问题。AFAIK没有。原因是IAP使用Google帐户作为身份提供者。IAP需要OIDC标识令牌进行身份验证。查看一下
docker login-u oauth2accesstoken-p“$(gcloud auth print identity token)”https://[HOSTNAME]
我不确定docker login是否正在创建IAP所需的HTTP授权承载头或凭据的其他表单。@JohnHanley这就是我的想法,尽管跳过docker CLI代码令人沮丧,因为它实际上向docker守护进程发出请求,而后docker守护进程向注册表发出请求。我确实发现,
docker登录“有效”,因为它成功了。但是做
docker pull
会因为未经授权而失败。在这种情况下,一种可能的方法是复制一种类似于办公室现有VPN连接的方法:在客户端和注册表之间建立VPN,或者为部分公共地址(如果客户端确实有)配置绕过规则。“托管在GCP中”是什么实际上是指哪项服务?它在GKE集群上。实际上,我有一个运行gitlab的pod,它为容器注册部署了一个pod(我相信是通过helm)。我不认为那部分是相关的。我想我在一个计算实例上也会遇到同样的问题。AFAIK没有。原因是IAP使用Google帐户作为身份提供者。IAP需要OIDC标识令牌进行身份验证。查看一下
docker login-u oauth2accesstoken-p“$(gcloud auth print identity token)”https://[HOSTNAME]
我不确定docker login是否正在创建IAP所需的HTTP授权承载头或凭据的其他表单。@JohnHanley这就是我的想法,尽管跳过docker CLI代码令人沮丧,因为它实际上向docker守护进程发出请求,而后docker守护进程向注册表发出请求。我确实发现,
docker登录“有效”,因为它成功了。但执行
docker pull
会因未经授权而失败。在这种情况下,一种可能的方法似乎是复制一种类似于办公室现有VPN连接的方法:在客户端和注册表之间建立VPN,或者为部分公共地址配置绕过规则(如果客户端确实有)。