【发布时间】:2021-06-01 11:47:51
【问题描述】:
我正在探索使用 GitHub Container Registry (ghcr) 来存储在我的持续集成 (CI) 管道中构建的 Docker 图像,这些管道是在 GitHub Actions 中构建的。
我正在阅读Migrating to GitHub Container Registry for Docker images,其中指出:
将您的新容器注册表身份验证个人访问令牌 (PAT) 添加为 GitHub Actions 机密。 GitHub Container Registry 不支持将 GITHUB_TOKEN 用于您的 PAT,因此您必须使用不同的自定义变量,例如
CR_PAT。
在那篇文章的前面虽然有一个指向Security hardening for GitHub Actions 的链接,其中指出:
您不应使用自己帐户中的个人访问令牌。这些令牌授予对您有权访问的组织内的所有存储库以及您用户帐户中的所有个人存储库的访问权限。这间接授予工作流所在存储库的所有写访问用户广泛的访问权限。此外,如果您以后离开组织,使用此令牌的工作流将立即中断,调试此问题可能具有挑战性。
如果使用个人访问令牌,它应该是为新帐户生成的令牌,该帐户仅被授予访问工作流所需的特定存储库的权限。请注意,此方法不可扩展,应避免使用替代方法,例如部署密钥。
这些引用似乎是矛盾的。第一个告诉我在 CI 管道中使用 PAT 对 ghcr 进行身份验证,另一个似乎告诉我不应该这样做。
我是正确的,他们是矛盾的还是我误解了?
从 GitHub Action 工作流程向 ghcr 进行身份验证的正确操作过程是什么?
【问题讨论】:
标签: github-actions ghcr github-container-registry