0

我正在探索使用 GitHub 容器注册表 (ghcr) 来存储构建在我的持续集成 (CI) 管道中的 Docker 映像,这些管道构建在 GitHub Actions 中。

我正在阅读Migrating to GitHub Container Registry for Docker 映像,其中指出:

将您的新容器注册表身份验证个人访问令牌 (PAT) 添加为 GitHub Actions 密码。GitHub Container Registry 不支持将 GITHUB_TOKEN 用于您的 PAT,因此您必须使用不同的自定义变量,例如CR_PAT.

在那篇文章的前面虽然有一个指向GitHub Actions 的安全强化 的链接,其中指出:

您永远不应使用您自己帐户中的个人访问令牌。这些令牌授予对您有权访问的组织内的所有存储库以及您用户帐户中的所有个人存储库的访问权限。这间接地授予工作流所在存储库的所有写访问用户的广泛访问权限。此外,如果您以后离开组织,使用此令牌的工作流将立即中断,并且调试此问题可能具有挑战性。

如果使用个人访问令牌,它应该是为新帐户生成的令牌,该帐户仅被授予访问工作流所需的特定存储库的权限。请注意,此方法不可扩展,应避免使用替代方法,例如部署密钥。

这些引述似乎自相矛盾。第一个是告诉我在 CI 管道中使用 PAT 对 ghcr 进行身份验证,另一个似乎告诉我不应该这样做。

我是正确的,他们是矛盾的还是我误解了?
从 GitHub Action 工作流程对 ghcr 进行身份验证的正确操作流程是什么?

4

1 回答 1

0

它是两种陈述的混合体。您需要使用个人访问令牌 (PAT),而 GitHub Container Registry 不支持将 GITHUB_TOKEN 用于您的 PAT,因此您必须使用不同的自定义变量,例如 CR_PAT。

您可以创建一个新的 GitHub 帐户,该帐户将专门用于非人工自动化,例如 CI/CD。由于此 GitHub 帐户不会被人类使用,因此它被称为机器用户,并且在 GitHub 的服务条款下是允许的。然后,您应该为该计算机用户帐户提供完成这项工作所需的最小权限数。

如果您使用的 PAT 属于您的个人帐户,而不是属于单独的最低权限机器帐户,则存在令牌冷被其他人获取的风险,因此您的个人帐户及其所有权限都会受到损害(非常糟糕!)。在有多个同事/合作者的组织中工作时,风险更大。

来自:https ://github.community/t/should-i-use-a-personal-access-token-for-accessing-ghcr-from-github-actions/165381

于 2021-03-03T09:17:37.750 回答