创建系统机器人账户
Harbor 引入了系统级机器人账户的概念。管理员可以创建一个覆盖多个项目的系统级机器人账户。系统机器人账户用于创建非用户范围的凭据,以执行跨多个项目的操作和 API 调用。
每个系统机器人账户可以拥有多个系统权限和跨多个项目的项目级别权限。
权限参考包含权限及其操作的列表。这些权限可以组合并分配给系统机器人账户,使其能够通过 OCI 客户端或 Harbor API 执行所需的任务。机器人账户不能用于登录用户界面。
您还可以创建项目范围的机器人账户,这些账户的访问权限仅限于单个项目。阅读更多关于项目机器人账户的信息。
查看系统机器人账户
- 以管理员身份登录到您的 Harbor 实例。
- 在侧边栏中,选择管理部分中的 机器人账户。

此页面包含 Harbor 实例中所有现有系统机器人账户的列表。该表包含每个系统机器人账户的以下信息
-
系统账户的名称。这源自为您的 Harbor 实例配置的机器人账户前缀和创建账户时分配的名称。机器人账户名称遵循格式
<prefix><account_name>
。如果您在此页面上使用搜索功能,则只需搜索不带前缀的账户名称。 -
启用状态指示账户是激活还是停用。
-
账户被分配的系统权限计数。要查看分配的系统权限的完整集合,请单击 权限 链接。
-
账户关联的项目数量。单击 项目 链接以查看与账户关联的项目的完整列表。
-
创建时间显示机器人账户的创建时间。
-
账户过期时间。根据创建时间和创建机器人账户时设置的过期时间计算得出。
-
手动为系统机器人账户添加的描述。
添加系统机器人账户
-
使用系统管理员权限登录到 Harbor 界面。
-
转到 管理,选择一个项目,然后选择 机器人账户。
-
单击 新建机器人账户。
-
输入此机器人账户的名称和可选描述。
-
为此机器人账户设置过期时间。默认情况下,使用系统配置的过期时间。如果您想创建永不过期的机器人账户,也可以从下拉列表中选择 永不过期 。
-
为此机器人账户选择系统权限。
-
如果您想在所有项目中使用此系统机器人账户,请选择 覆盖所有项目 。使用此选项意味着此系统机器人账户将能够访问 Harbor 实例中的所有现有和未来项目。您可以选择要授予机器人账户的权限。
-
如果您希望此机器人账户仅覆盖某些项目或被授予某些权限,请使用项目表选择要分配给系统机器人账户的项目和权限。此表显示每个项目名称、项目创建时间和用于为该项目分配系统机器人账户权限的下拉列表。
单击项目名称旁边的复选框以关联此机器人账户。
默认情况下,该表显示 Harbor 实例中的所有项目。您可以使用 项目名称 标题右侧的 筛选图标 来筛选项目。请注意,项目表可能会分为多个页面,并且一次只显示一部分项目,具体取决于您的 Harbor 实例中有多少项目以及有多少项目符合您的筛选条件。
使用 权限 下拉列表选择要分配给特定项目的权限。您可以控制按项目分配给单个机器人账户的权限,从而对每个机器人账户进行细粒度控制。您可以选择 全选 或 取消全选 以快速添加或删除机器人账户的所有权限。
推送仓库 权限必须与 拉取仓库 权限一起分配。您不能单独分配推送仓库权限。单击 重置所有项目权限 下拉列表以控制每个项目的可用权限。选择或取消选择权限将为每个项目添加或删除该权限。使用此选项将调整所有项目的权限,而不仅仅是如果您已筛选特定项目名称时显示的项目。
单击 选择所有项目 以将系统机器人账户与表中显示的所有项目关联。如果您按项目名称筛选,则此选项将仅选择筛选后的项目。
-
单击 完成。
-
在确认窗口中,单击 导出到文件 以下载密钥作为 JSON 文件,或单击剪贴板图标将其内容复制到剪贴板。
Harbor 不存储机器人账户密钥,因此您必须下载密钥或将内容复制并粘贴到文本文件中。创建机器人账户后,无法从 Harbor 获取密钥。新的机器人账户在机器人账户列表中显示为
<prefix>account_name
。阅读更多关于 机器人账户前缀 的信息。
管理系统机器人账户
您可以编辑、停用或删除系统机器人账户。
- 从管理员 机器人账户 页面,选中要更新的机器人账户旁边的复选框。
- 选择 操作,然后选择 编辑、停用 或 删除。

刷新系统机器人账户密钥
您可以在创建机器人账户后刷新其密钥,以防您需要新的密钥。
-
从管理员 机器人账户 页面,选中要更新的机器人账户旁边的复选框。
-
选择 操作,然后选择 刷新密钥。
-
默认情况下,Harbor 将随机生成一个新密钥,或者您可以选择启用手动重置密钥并输入 新密钥,然后输入 确认密钥。或者,您可以通过单击眼睛图标查看密钥。
-
单击 刷新。如果您随机创建了密钥,请下载密钥 JSON 文件或复制并粘贴其内容。
配置机器人账户的过期期限
默认情况下,机器人账户在 30 天后过期。您可以通过修改机器人账户令牌的过期期限来为机器人账户设置更长或更短的寿命。过期期限适用于所有项目中的所有机器人账户。
-
使用具有 Harbor 系统管理员权限的账户登录到 Harbor 界面。
-
转到 配置 并选择 系统设置。
-
在 机器人令牌过期(天) 行中,修改机器人账户令牌过期后的天数。
配置机器人账户前缀
默认情况下,机器人账户名称使用 robot$
前缀。Harbor 使用此前缀来区分机器人账户和用户账户。系统机器人账户的全名是前缀和您在创建机器人账户时提供的名称。例如,如果您创建一个名为 test
的新机器人系统账户,则全名为 robot$test
。
相同的前缀用于所有机器人账户,包括系统和项目机器人账户。当您更新此值时,它将应用于所有现有和未来的系统和项目机器人账户,但 Harbor v2.1 及更早版本中创建的机器人账户将继续使用前缀 robot$
。
-
使用具有 Harbor 系统管理员权限的账户登录到 Harbor 界面。
-
转到 配置 并选择 系统设置。
-
在 机器人名称前缀 行中,修改前缀。
使用系统机器人账户进行身份验证
要在自动化流程(例如脚本)中使用机器人账户,请使用 docker login
并提供机器人账户的凭据。
docker login <harbor_address>
Username: <prefix><account_name>
Password: <secret>
权限参考
下表解释了机器人账户在具有指定权限时可以执行的操作。
系统权限
权限(操作 + 资源) | 能力 |
---|---|
列出审计日志 (audit-log) | 1. GET /audit-logs |
读取目录 (catalog) | 1. GET /v2/_catalog |
读取垃圾回收 (garbage-collection) | 1. GET /system/gc/{gc_id}/log 2. GET /system/gc/schedule |
列出垃圾回收 (garbage-collection) | 1. GET /system/gc |
创建垃圾回收 (garbage-collection) | 1. POST /system/gc/schedule |
停止垃圾回收 (garbage-collection) | 1. PUT /system/gc/{gc_id} |
更新垃圾回收 (garbage-collection) | 1. PUT /system/gc/schedule |
列出 Job Service 监控器 (jobservice-monitor) | 1. GET /jobservice/pools 2. GET /jobservice/pools/{pool_id}/workers 3. GET /jobservice/jobs/{job_id}/log 4. GET /jobservice/queues |
停止 Job Service 监控器 (jobservice-monitor) | 1. PUT /jobservice/jobs/{job_id} 2. PUT /jobservice/queues/{job_type} |
读取标签 (label) | 1. GET /labels/{global_label_id} |
创建标签 (label) | 1. POST /labels?scope=g |
更新标签 (label) | 1. PUT /labels/{global_label_id} |
删除标签 (label) | 1. DELETE /labels/{global_label_id} |
读取预热实例 (preheat-instance) | 1. POST /preheat/instances/ping 2. GET /p2p/preheat/instances/{preheat_instance_name} |
列出预热实例 (preheat-instance) | 1. GET /p2p/preheat/providers 2. GET /p2p/preheat/instances |
创建预热实例 (preheat-instance) | 1. POST /p2p/preheat/instances |
更新预热实例 (preheat-instance) | 1. PUT /p2p/preheat/instances/{preheat_instance_name} |
删除预热实例 (preheat-instance) | 1. DELETE /p2p/preheat/instances/{preheat_instance_name} |
列出项目 (project) | 1. GET /projects |
创建项目 (project) | 1. POST /projects |
读取清除审计 (purge-audit) | 1. GET /system/purgeaudit/{purge_id}/log 2. GET /system/purgeaudit/schedule 3. GET /system/purgeaudit/{purge_id} |
列出清除审计 (purge-audit) | 1. GET /system/purgeaudit |
创建清除审计 (purge-audit) | 1. POST /system/purgeaudit/schedule |
停止清除审计 (purge-audit) | 1. PUT /system/purgeaudit/{purge_id} |
更新清除审计 (purge-audit) | 1. PUT system/purgeaudit/schedule |
读取注册中心 (registry) | 1. POST /registries/ping 2. GET /registries/{id} 3. GET /registries/{id}/info |
列出注册中心 (registry) | 1. GET /registries |
创建注册中心 (registry) | 1. POST /registries |
更新注册中心 (registry) | 1. PUT /registries/{id} |
删除注册中心 (registry) | 1. DELETE /registries/{id} |
读取复制 (replication) | 1. GET /replication/executions/{id} 2. GET /replication/executions/{id}/tasks/{task_id}/log |
列出复制 (replication) | 1. GET /replication/executions 2. GET /replication/executions/{id}/tasks |
创建复制 (replication) | 1. POST /replication/executions 2. PUT /replication/executions/{id} |
列出复制适配器 (replication-adapter) | 1. GET /replication/adapters 2. GET /replication/adapterinfos |
读取复制策略 (replication-policy) | 1. GET /replication/policies/{id} |
列出复制策略 (replication-policy) | 1. GET /replication/policies |
创建复制策略 (replication-policy) | 1. POST /replication/policies |
更新复制策略 (replication-policy) | 1. PUT /replication/policies/{id} |
删除复制策略 (replication-policy) | 1. DELETE /replication/policies/{id} |
读取全部扫描 (scan-all) | 1. GET /scans/all/metrics 2. GET /scans/schedule/metrics |
创建全部扫描 (scan-all) | 1. POST /system/scanAll/schedule |
停止全部扫描 (scan-all) | 1. POST /system/scanAll/stop |
更新全部扫描 (scan-all) | 1. PUT /system/scanAll/schedule |
读取扫描器 (scanner) | 1. POST /scanners/ping 2. GET /scanners/{registration_id} 3. GET /scanners/{registration_id}/metadata |
列出扫描器 (scanner) | 1. GET /scanners |
创建扫描器 (scanner) | 1. POST /scanners |
更新扫描器 (scanner) | 1. PUT /scanners/{registration_id} |
删除扫描器 (scanner) | 1. DELETE /scanners/{registration_id} |
读取安全中心 (security-hub) | 1. GET /security/summary |
列出安全中心 (security-hub) | 1. GET /security/vul |
读取系统卷 (system-volumes) | 1. GET /systeminfo/volumes |
列出机器人账户 | 1. GET /robots |
创建机器人账户 | 1. POST /robots |
读取机器人账户 | 1. GET /robots/{robot_id} |
更新机器人账户 | 1. PUT /robots/{robot_id} |
删除机器人账户 | 1. DELETE /robots/{robot_id} |
创建用户 | 1. POST /users |
读取用户 | 1. GET /users/{user_id} |
更新用户 | 1. PUT /users/{user_id} |
删除用户 | 1. DELETE /users/{user_id} |
创建 LDAP 用户 | 1. POST /ldap/users/import |
列出 LDAP 用户 | 1. GET /ldap/users/search |
创建导出 CVE 作业 | 1. POST /export/cve |
读取导出 CVE 执行 | 1. GET /export/cve/download/{execution_id} 2. GET /export/cve/execution/{execution_id} |
更新配额 | 1. PUT /quotas/{id} |
创建用户组 | 1. POST /usergroups |
读取用户组 | 1. GET /usergroups/{group_id} |
更新用户组 | 1. PUT /usergroups/{group_id} |
列出用户组 | 1. GET /usergroups |
删除用户组 | 1. DELETE /usergroups/{group_id} |
项目权限
在本页中
贡献