首页 > 解决方案 > 在 Kubernetes 内运行的 Docker Private Registry 的多用户身份验证

问题描述

我正在使用标准映像在kubernetes集群内运行 docker 私有注册表。registry:2该映像具有使用 Apache htpasswd 实用程序提供用户身份验证的基本功能。在我的情况下,多个用户需要访问存储库,因此需要为多个不同的用户设置用户名密码。实现这一点的最佳方法是什么。

我得到了基于 htpsswd 的单用户身份验证工作,但似乎没有找到为多个用户启用身份验证的方法,即具有适当的访问控制。

注册表已启用 SSL。(入口级别的 TLS)

标签: dockerauthenticationkuberneteskubernetes-ingressdocker-registry

解决方案


有多种方法可以做到这一点。首先,在 htpasswd 文件中可能有多个用户。它不适用于 docker,因为 docker 需要使用 bcrypt 算法对密码进行哈希处理。

在创建 htpasswd 文件时使用该-B标志。

sudo htpasswd -c -B /etc/apache2/.htpasswd <username1>

另一种方法是使用 nginx 身份验证注释。

nginx.ingress.kubernetes.io/auth-url: "url to auth service"

如果服务返回 200,则 nginx 转发请求,否则返回身份验证错误响应。有了这个,您可以在创建和管理身份验证服务器时拥有很多自定义逻辑。


推荐阅读