【发布时间】:2020-03-05 22:28:49
【问题描述】:
我希望在 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 对 all 我的 github 存储库(公共和 私有)的读取和 write 访问权限.
有没有办法使用最小权限原则来做到这一点,例如只授予 Docker Hub Builder 必要的权限(希望是只读的)只授予特定 github repos?
【问题讨论】:
-
AFAIK 这是由于 GitHub 管理 OAuth 权限的方式以及它们允许的粒度。有关详细信息,请参阅developer.github.com/apps/building-oauth-apps/…。如果不授予写入权限,就不可能授予私有仓库的读取权限。
-
有点复杂,但解决这个问题的一种方法是将特定用户添加到您的 GitHub 组织,仅授予他们对相关存储库的 READ 访问权限。然后,在将您的 dockerhub 帐户连接到 GitHub 时,使用此用户登录,并批准所需的范围。即使范围非常广泛,访问权限仍将绑定到您的用户在您的组织中拥有的实际权限。
-
@AntonDrukh,感谢您提供服务帐户的想法。同意这有点令人费解,但它似乎确实解决了问题。
-
谢谢,我会发布这个作为答案!