搜索

5.4. 管理对软件仓库的访问

download PDF

作为 Quay.io 用户,您可以创建自己的存储库,并使其可以被属于您的实例的其他用户访问。或者,您可以创建特定的组织,以允许根据定义的团队访问存储库。

在 User 和 Organization 存储库中,您可以通过创建与 Robot 帐户关联的凭证来允许访问这些存储库。机器人帐户使得各种容器客户端(如 Docker 或 Podman)很容易访问您的存储库,而无需客户端具有 Quay.io 用户帐户。

5.4.1. 允许访问用户软件仓库

在用户命名空间中创建存储库时,您可以将对该存储库的访问权限添加到用户帐户或通过 Robot Accounts 添加。

5.4.1.1. 允许用户访问用户存储库

使用以下步骤允许访问与用户帐户关联的存储库。

流程

  1. 使用您的用户帐户登录到 Quay.io。
  2. 在用户命名空间下选择一个将在多个用户间共享的存储库。
  3. 在导航窗格中选择 Settings
  4. 键入您要授予存储库访问权限的用户名。当您键入时,名称应当为。例如:

    Grant user access to a user repository

  5. 在权限框中,选择以下之一:

    • 阅读。允许用户从存储库查看和拉取。
    • 写入。允许用户查看存储库、从存储库拉取镜像或将镜像推送到存储库。
    • 管理员.为用户提供存储库的所有管理设置,以及所有 读和写 权限。
  6. 选择 Add Permission 按钮。用户现在具有分配的权限。
  7. 可选。您可以选择 Options 图标,然后选择 Delete Permission 来删除或更改存储库的权限。

5.4.1.2. 允许机器人访问用户存储库

机器人帐户用于设置 Quay.io 注册表中存储库的自动化访问权限。它们与 OpenShift Container Platform 服务帐户类似。

设置 Robot 帐户结果如下:

  • 生成与 Robot 帐户关联的凭据。
  • 可识别 Robot 帐户可以从中推送和拉取镜像的存储库和镜像。
  • 可以复制和粘贴生成的凭据,以用于不同的容器客户端,如 Docker、Podman、Kubernetes、Msos 等,以访问每个定义的存储库。

每个 Robot 帐户都仅限于单个用户命名空间或机构。例如,Robot 帐户可以为用户提供 jsmith 的所有存储库的访问权限。但是,它无法提供对不在用户存储库列表中的存储库的访问。

使用以下步骤设置允许访问您的存储库的 Robot 帐户。

流程

  1. Repositories 登录页面上,单击用户的名称。
  2. 在导航窗格上,单击 Robot Accounts
  3. 单击 Create Robot Account
  4. 为您的 Robot 帐户提供名称。
  5. 可选。为您的 Robot 帐户提供描述。
  6. 单击 Create Robot Account。Robot 帐户的名称成为您的用户名以及机器人的名称的组合,如 jsmith+robot
  7. 选择您要与 Robot 帐户关联的存储库。
  8. 将 Robot 帐户的权限设置为以下之一:

    • None。Robot 帐户没有存储库的权限。
    • 阅读。Robot 帐户可以从存储库查看和拉取。
    • 写入。Robot 帐户可以从存储库读取(拉取)并写入(push)到存储库。
    • 管理员.从存储库拉取和推送到存储库的完整访问权限,以及执行与存储库关联的管理任务。
  9. Add permissions 按钮应用设置。
  10. Robot Accounts 页面上,选择 Robot Account 以查看该人的凭据信息。
  11. Robot Account 选项下,单击 Copy to Clipboard,为机器人复制生成的令牌。要生成新的令牌,您可以点 Regenerate Token

    注意

    重新生成令牌会使此机器人的任何以前的令牌无效。

    Select Options drop-down to change user passwords

  12. 使用以下方法获取生成的凭证:

    • Kubernetes Secret: 选择此项以 Kubernetes pull secret yaml 文件的形式下载凭证。
    • rkt Configuration :选择此项以 .json 文件的形式下载 rkt 容器运行时的凭证。
    • docker Login :选择此项以复制包含凭据的完整 docker login 命令行。
    • docker Configuration :选择此项以下载用作 Docker config.json 文件的文件,以将凭证永久存储在客户端系统上。
    • Mesos Credentials: 选择此项下载一个 tarball,它提供可在 Mesos 配置文件的 URI 字段中标识的凭证。

5.4.2. 机构软件仓库

创建机构后,您可以将一组存储库直接关联到该机构。机构的存储库与基本存储库不同,组织旨在通过一组用户设置共享存储库。在 Quay.io 中,用户组可以是 团队,也可以是具有相同权限的用户集合,也可以是 单独的用户

有关机构的其他有用信息包括:

  • 您不能将机构嵌入到另一个机构中。要从属一个机构,您可以使用团队。
  • 机构无法直接包含用户。您必须首先添加一个团队,然后为每个团队添加一个或多个用户。

    注意

    单个用户可以添加到机构内部的特定存储库中。因此,这些用户不是 Repository Settings 页面中任何团队的成员。Teams 和 Memberships 页面上的 Collaborat ors View 显示有权直接访问机构中特定存储库的用户,而无需成为该组织的一部分。

  • 团队可以在机构中设置,就像使用存储库和相关镜像的成员一样,或者作为具有特殊权限的管理员来管理组织的管理员。

5.4.2.1. 创建机构

使用以下步骤创建机构。

流程

  1. Repositories 登录页面上,单击 Create New Organization
  2. Organization Name 下,输入至少 2 个字符长且小于 225 个字符的名称。
  3. 组织电子邮件 下,输入与您帐户电子邮件不同的电子邮件。
  4. 为您的组织选择一个计划,选择免费计划,或者选择付费计划之一。
  5. Create Organization 以完成创建。
5.4.2.1.1. 使用 API 创建另一个机构

您可以使用 API 创建另一个机构。为此,您必须使用 UI 创建了第一个机构。您还必须已生成 OAuth 访问令牌。

使用以下步骤使用 Red Hat Quay API 端点创建另一个机构。

先决条件

  • 您至少已使用 UI 创建了一个机构。
  • 您已生成了 OAuth 访问令牌。如需更多信息,请参阅"创建 OAuth 访问令牌"。

流程

  1. 输入以下命令创建一个名为 data.json 的文件:

    $ touch data.json
  2. 在文件中添加以下内容,这将是新机构的名称:

    {"name":"testorg1"}
  3. 输入以下命令使用 API 端点创建新机构,传递您的 OAuth Access Token 和 Red Hat Quay registry 端点:

    $ curl -X POST -k -d @data.json -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" http://<quay-server.example.com>/api/v1/organization/

    输出示例

    "Created"

5.4.2.2. 将团队添加到机构

为您的机构创建团队时,您可以选择团队名称,选择哪些存储库可供团队使用,并决定对团队的访问权限级别。

使用以下步骤为您的机构创建团队。

先决条件

  • 您已创建了一个机构。

流程

  1. Repositories 登录页面上,选择要向其添加团队的组织。
  2. 在导航窗格中,选择 Teams 和 Membership。默认情况下,所有者 团队存在,具有创建该组织的用户的 Admin 特权。
  3. 单击 Create New Team
  4. 输入新团队的名称。请注意,团队必须以小写开头。它还可以使用小写字母和数字。不允许大写字母或特殊字符。
  5. Create team
  6. 点要重定向到团队页面的 团队 名称。在这里,您可以添加团队的描述,并添加团队成员,如注册的用户、机器人或电子邮件地址。如需更多信息,请参阅"将用户添加到团队"。
  7. 单击 No repositories 文本,以调出可用存储库的列表。选择您要提供团队访问权限的每个存储库的方框。
  8. 选择您希望团队具有的适当权限:

    • None。团队成员没有对存储库的权限。
    • 阅读。团队成员可以从存储库查看和拉取。
    • 写入。团队成员可以从存储库读取(拉取)并写入(推送)到存储库。
    • 管理员.从存储库拉取和推送到存储库的完整访问权限,以及执行与存储库关联的管理任务。
  9. Add permissions 保存团队的存储库权限。

5.4.2.3. 设置团队角色

添加团队后,您可以在机构中设置该团队的角色。

先决条件

  • 您已创建了团队。

流程

  1. Repository 登录页面上,点您的机构名称。
  2. 在导航窗格中,单击 Teams 和 Membership
  3. 选择 TEAM ROLE 下拉菜单,如下图所示:

    Set the role that a team has within an organization

  4. 对于所选团队,请选择以下角色之一:

    • 成员.继承为团队设置的所有权限。
    • 创建者.所有成员权限,以及创建新存储库的能力。
    • 管理员.对机构的完整管理访问权限,包括创建团队、添加成员和设置权限的能力。

5.4.2.4. 将用户添加到团队

使用组织的管理特权,您可以将用户和机器人帐户添加到团队中。当您添加用户时,Quay.io 会向该用户发送电子邮件。用户会一直处于待处理状态,直到他们接受邀请。

使用以下步骤将用户或机器人帐户添加到团队中。

流程

  1. Repository 登录页面上,点您的机构名称。
  2. 在导航窗格中,单击 Teams 和 Membership
  3. 选择您要将用户添加到的团队或机器人帐户。
  4. Team Members 框中,为以下之一输入信息:

    • 来自 registry 上帐户的用户名。
    • registry 上用户帐户的电子邮件地址。
    • 机器人帐户的名称。名称必须采用 <organization_name>+<robot_name> 的形式。

      注意

      机器人帐户会立即添加到团队。对于用户帐户,加入的邀请将发送给用户。在用户接受该邀请前,用户仍然处于 INVITED TO JOIN 状态。用户接受电子邮件邀请加入团队后,他们会从 INVITED TO JOIN 列表移到机构的 MEMBERS 列表。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.