配置包的访问控制和可见性

选择谁对容器映像具有读取、写入或管理员访问权限,以及容器映像在 GitHub 上的可见性。

GitHub Packages 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 和 GitHub AE。


GitHub Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 此外,使用旧版按仓库计划的帐户无法访问 Container registry,因为这些帐户是按仓库计费的。 更多信息请参阅“[GitHub 的产品](/articles/github-s-products)”。

具有精细权限的包仅限于个人用户或组织帐户。 您可以从与包相连(或链接)的仓库分别更改包的访问控制和可见性。

目前,只有 Container registry 为容器映像包提供精细权限。

有关仓库作用域的包、与包相关的 PAT 作用域或管理操作工作流程的权限的更多信息,请参阅“关于 GitHub Packages 的权限”。

容器映像的可见性和访问权限

如果您对容器映像具有管理员权限,可以将容器映像的访问权限设置为私有或公有。 公有映像允许匿名访问,无需身份验证或通过 CLI 登录即可进行拉取。

作为管理员,您还可以授予容器映像的访问权限,该权限与在组织和仓库级别设置的权限不同。

对于由用户帐户发布和拥有的容器映像,您可以向任何人授予访问角色。 对于组织发布和拥有的容器映像,您可以为组织中的任何人或团队授予访问角色。

权限访问描述
读取可以下载包。
可以读取包元数据。
写入可以上传和下载此包。
可以读取和写入包元数据。
管理员可以上传、下载、删除和管理此包。
可以读取和写入包元数据。
可以授予包权限。

为个人帐户配置对容器映像的访问

如果您对用户帐户拥有的容器映像具有管理员权限,您可以向其他用户分配读取、写入或管理员角色。 有关这些权限角色的更多信息,请参阅“容器映像的可见性和访问权限”。

如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。

  1. 在 GitHub 上,导航到用户帐户的主页面。
  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)个人资料照片
  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项
  4. 在软件包设置页面上,单击 Invite teams or people(邀请团队或人员),然后输入名称、用户名或您想要授予访问权限的人员的电子邮件地址。 不能授予团队访问用户帐户拥有的容器映像。 容器访问邀请按钮
  5. 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。 容器访问选项

所选用户将自动被授予访问权限,不需要先接受邀请。

为企业配置对容器映像的访问

如果您对组织拥有的容器映像具有管理员权限,您可以向其他用户和团队分配读取、写入或管理员角色。 有关这些权限角色的更多信息,请参阅“容器映像的可见性和访问权限”。

如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。

对于组织映像容器,组织管理员必须先启用包,然后才能将可见性设置为公共。 更多信息请参阅“使用容器注册表启用改进的容器支持”。

  1. 在 GitHub 上,导航到组织的主页面。
  2. 在组织名称下,单击 Packages(包)容器访问邀请按钮
  3. 在软件包设置页面上,单击 Invite teams or people(邀请团队或人员),然后输入名称、用户名或您想要授予访问权限的人员的电子邮件地址。 您还可以从组织输入团队名称,以允许所有团队成员访问。 容器访问邀请按钮
  4. 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。 容器访问选项

所选用户或团队将自动被授予访问权限,不需要先接受邀请。

从仓库继承容器映像的访问权限

要通过 GitHub Actions 工作流程简化包管理,您可以让容器映像默认继承仓库的访问权限。

如果您继承了存储包工作流程的仓库的访问权限,则可以通过仓库的权限调整对包的访问权限。

仓库一旦同步,您就无法访问包的精细访问设置。 要通过精细的包访问设置自定义包的权限,您必须先删除同步的仓库。

  1. 在 GitHub 上,导航到组织的主页面。
  2. 在组织名称下,单击 Packages(包)容器访问邀请按钮
  3. 在“Repository source(仓库来源)”下,选择 Inherit access from repository (recommended)(从仓库继承访问权限 [推荐])继承仓库访问权限复选框

确保工作流程访问您的包

为确保 GitHub Actions 工作流程能访问您的包,您必须授予存储工作流程的仓库以明确的访问权限。

指定的仓库不需要是保存包源代码的仓库。 您可以授予多个仓库工作流程对包的访问权限。

注意:通过 Actions access(操作访问)菜单选项同步容器映像与仓库不同于将容器连接到仓库。 有关将仓库链接到容器的更多信息,请参阅“将仓库连接到包”。

用户帐户拥有的容器映像的 GitHub Actions 访问权限

  1. 在 GitHub 上,导航到用户帐户的主页面。
  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)个人资料照片
  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项
  4. 在左侧边栏中,单击 Actions access(操作访问)左侧菜单中的"Actions access(操作访问)"选项
  5. 为确保工作流程有权访问容器包,您必须添加存储工作流程的仓库。 单击 Add repository(添加仓库)并搜索要添加的仓库。 "添加仓库"按钮
  6. (使用“role(角色)”下拉菜单,选择您希望仓库访问您的容器映像所必须拥有的默认访问权限。 授予仓库的权限访问级别

要进一步自定义对容器映像的访问,请参阅“配置对个人帐户的容器映像的访问”。

组织拥有的容器映像的 GitHub Actions 访问权限

  1. 在 GitHub 上,导航到组织的主页面。
  2. 在组织名称下,单击 Packages(包)容器访问邀请按钮
  3. 在左侧边栏中,单击 Actions access(操作访问)左侧菜单中的"Actions access(操作访问)"选项
  4. 单击 Add repository(添加仓库)并搜索要添加的仓库。 "添加仓库"按钮
  5. 使用“role(角色)”下拉菜单,选择您希望仓库成员访问您的容器映像所必须拥有的默认访问权限。 外部协作者将不包括在内。 授予仓库的权限访问级别

要进一步自定义对容器映像的访问,请参阅“配置对组织的容器映像的访问”。

为个人帐户配置容器映像的可见性

首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过更改访问设置来修改私有或公共容器映像的访问权限。

公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。

  1. 在 GitHub 上,导航到用户帐户的主页面。

  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)个人资料照片

  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项

  4. 在“Danger Zone(危险区域)”下,选择可见性设置:

    • 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。

    警告:包一旦被设为公共,便无法再次将其设为私有。

    - 要使容器映像只对选择的人员可见,请单击“**Make private(设为私有)**”。 ![容器可见性选项](/assets/images/help/package-registry/container-visibility-option.png)

组织成员的容器创建可见性

您可以选择组织成员默认可以发布的容器的可见性。

  1. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your organizations(您的组织)个人资料菜单中的组织
  2. 在组织旁边,单击 Settings(设置)设置按钮
  3. 在左侧,单击 Packages(包)
  4. 在“Container creation(容器创建)”下,选择是要启用公共、私有或内部容器映像。
    • 要让组织成员创建公共容器映像,请单击 Public(公共)
    • 要让组织成员创建只对其他组织成员可见的私有容器映像,请单击 Private(私有)。 您可以进一步自定义私有容器映像的可见性。
    • 仅适用于 GitHub Enterprise Cloud :要让组织成员创建仅供其他组织成员可见的内部容器映像,请单击 Internal(内部)组织成员发布的容器图像的可见性选项

为组织配置容器映像的可见性

首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过访问设置授予用户或团队对容器映像的不同访问角色。

公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。

对于组织映像容器,组织管理员必须先启用公共包,然后才能将可见性设置为公共。 更多信息请参阅“使用容器注册表启用改进的容器支持”。

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 Packages(包)容器访问邀请按钮

  3. 在“Danger Zone(危险区域)”下,选择可见性设置:

    • 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。

    警告:包一旦被设为公共,便无法再次将其设为私有。

    - 要使容器映像只对选择的人员可见,请单击“**Make private(设为私有)**”。 ![容器可见性选项](/assets/images/help/package-registry/container-visibility-option.png)

此文档对您有帮助吗?隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。