首页 > 解决方案 > dockerhub 自动构建 - 需要广泛的 github 权限?

问题描述

我正在寻找在 Dockerhub 上测试自动化容器构建,我发现我需要将我的 github 帐户链接到我的 hub.docker.account。
然而,当我点击“连接”按钮时,我被带到一个 github 授权页面,上面写着:

Docker Hub Builder by docker wants to access your larryms account

Repositories
Public and private
This application will be able to read and write all public and private repository data. 
This includes the following:

- Code
- Issues
- Pull requests
- Wikis
- Settings
- Webhooks and services
- Deploy keys
- Collaboration invites

这似乎过于宽容和过于宽泛。如果我理解正确,我需要授予 Docker Hub Builder对我所有github 存储库(公共和私有)的读写访问权限。

有没有办法使用最小权限原则来做到这一点,例如只授予 Docker Hub Builder 必要的权限(希望是只读的)只给特定的github repos?

标签: dockerdockerhub

解决方案


GitHub 上的 OAuth 范围确实很广泛(请参阅https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes,如果不授予您无法授予读取权限写权限)。但是,范围与用户对相关存储库的实际权限一起应用。也就是说,如果用户只有对 repo X 的读取权限,并且用户向 dockerhub 授予了具有读写范围的 oauth 令牌,则 dockerhub 将只能代表该用户从 repo X 中读取。如果用户稍后获得对 repo X 的管理员访问权限,则已授予的访问令牌将不允许管理员访问,因为令牌的范围仅允许读取和写入访问权限。

考虑到这一点,您可以在您的 github 组织中为 dockerhub 创建一个专用用户,并授予该用户对相关存储库的读取权限。然后使用该用户将 dockerhub 连接到您的 github 帐户,授予对所选 repos 的只读访问权限。


推荐阅读