【问题标题】:Should I use a Personal Access Token for accessing ghcr from GitHub Actions?我应该使用个人访问令牌从 GitHub Actions 访问 ghcr 吗?
【发布时间】: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


    【解决方案1】:

    这是两种说法的混合体。 您需要使用个人访问令牌 (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

    【讨论】:

    • 你最好用直接链接重新发布答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2014-07-02
    • 2021-12-12
    • 2021-10-19
    • 2017-12-12
    • 2021-09-30
    • 1970-01-01
    相关资源
    最近更新 更多