4. Harbor 基础配置:管理员初始化、项目创建、用户管理、角色权限模型

在配置制品保留策略与清理窗口之前,必须完成 Harbor 实例的基础配置。本章将系统讲解从管理员首次登录、项目与用户创建,到 Harbor 角色权限模型的完整流程。这些配置是后续所有策略生效的前提,也是企业级制品管理的基础设施。

4.1 管理员初始化与系统配置

Harbor 安装完成后,首次访问需通过 https://<harbor_host> 进入 Web 控制台。默认管理员账户为 admin,初始密码在 harbor.yml 的 harbor_admin_password 字段中定义。首次登录后,建议立即执行以下初始化操作:

  1. 修改默认密码:进入「系统管理 → 用户管理」,选择 admin 账户,点击「修改密码」,设置符合企业密码策略的强密码。
  2. 配置认证模式:在「系统管理 → 认证设置」中,可选择 本地数据库认证(默认)或集成 LDAP/AD、OIDC 等外部认证源。企业环境推荐使用 LDAP 统一管理。
  3. 设置基础 URL:在「系统管理 → 配置管理」中,填写 Harbor 实例的访问地址,该地址将用于制品推送、拉取及 Webhook 回调。
  4. 配置邮件服务器:用于密码找回、项目邀请等通知功能。需填写 SMTP 服务器地址、端口、账号及发件人地址。
最佳实践: 初始化完成后,立即创建一个非 admin 的日常管理账户,并启用 两步验证(2FA) 以增强管理员账户安全性。admin 账户仅用于紧急维护。

4.2 项目创建与类型选择

Harbor 中的 项目(Project) 是制品仓库的逻辑隔离单元,所有镜像、Chart 等制品都必须归属于某个项目。创建项目时需选择以下两种类型:

项目类型 访问权限 适用场景 镜像拉取是否需要认证
公开(Public) 所有用户(含未登录)可拉取 开源项目、公共基础镜像 否
私有(Private) 仅项目成员可拉取 企业业务镜像、敏感制品 是

创建项目时,还需配置以下关键属性:

  • 存储配额(Storage Quota):限制项目可占用的最大存储空间,防止单个项目耗尽集群磁盘。
  • 代理缓存(Proxy Cache):启用后,Harbor 可作为 Docker Hub、Quay.io 等上游仓库的缓存代理,加速拉取并节省带宽。
  • 自动清理策略:可在项目创建时直接关联保留策略(后续章节详述),实现创建即治理。
操作示例: 创建名为 production-app 的私有项目,设置存储配额为 50GB,启用代理缓存指向 Docker Hub。该项目的制品将自动继承后续配置的保留规则。

4.3 用户管理与认证集成

Harbor 支持两种用户管理方式:本地用户 和 外部认证用户。企业环境中,通常以 LDAP/AD 作为用户源,Harbor 仅做角色映射。

4.3.1 本地用户创建

  1. 进入「系统管理 → 用户管理」,点击「创建用户」。
  2. 填写用户名、邮箱、全名及密码。密码需满足复杂度要求(至少 8 位,含大小写字母和数字)。
  3. 创建后,用户默认无任何项目权限,需由项目管理员手动添加至项目并分配角色。

4.3.2 LDAP/AD 集成配置

在「系统管理 → 认证设置」中,选择 LDAP 模式并填写以下参数:

参数 说明 示例值
LDAP URL LDAP 服务器地址及端口 ldaps://ldap.company.com:636
Base DN 用户搜索的根目录 dc=company,dc=com
User Filter 过滤有效用户的 LDAP 查询 (objectClass=person)
UID 用于匹配 Harbor 用户名的属性 sAMAccountName
Group Filter (可选)过滤组,用于组同步 (objectClass=group)
注意: 切换认证模式后,现有本地用户仍可登录,但新用户将只能通过 LDAP 认证。建议在非生产环境验证 LDAP 配置无误后再切换。

4.4 角色权限模型详解

Harbor 采用 基于角色的访问控制(RBAC) 模型,权限作用域分为 系统级 和 项目级。理解角色模型是设计保留策略权限的基础。

4.4.1 系统级角色

角色 权限范围 典型职责
系统管理员 全局配置、用户管理、所有项目 系统运维、策略全局配置
系统只读用户 查看系统配置、项目列表 审计、监控

4.4.2 项目级角色

角色 拉取镜像 推送镜像 删除制品 管理成员 配置策略
项目管理员 ✓ ✓ ✓ ✓ ✓
维护者 ✓ ✓ ✓ ✗ ✓
开发者 ✓ ✓ ✗ ✗ ✗
访客 ✓ ✗ ✗ ✗ ✗
受限访客 ✓(仅公开项目) ✗ ✗ ✗ ✗
权限与保留策略的关系: 只有 项目管理员 和 维护者 角色可以创建、编辑或删除项目的保留策略。开发者虽然可以推送制品,但无法修改清理规则,这确保了策略的集中管控。

4.5 Harbor 角色权限模型架构图

下图展示了 Harbor 从系统管理员到项目成员的角色层级关系,以及各角色在项目中的权限边界:

Harbor 角色权限模型架构 Harbor 角色权限模型架构 系统层(System Level) 系统管理员:全局配置、用户管理、所有项目访问 系统只读用户:查看系统配置与项目列表 项目层(Project Level) 项目管理员 拉取 ✓ 推送 ✓ 删除 ✓ 管理成员 ✓ 配置策略 ✓ 维护者 拉取 ✓ 推送 ✓ 删除 ✓ 管理成员 ✗ 配置策略 ✓ 开发者 拉取 ✓ 推送 ✓ 删除 ✗ 管理成员 ✗ 配置策略 ✗ 访客 拉取 ✓ 推送 ✗ 删除 ✗ 管理成员 ✗ 配置策略 ✗ 说明:受限访客仅能拉取公开项目制品,权限低于访客。保留策略仅可由项目管理员和维护者配置。

4.6 项目成员管理操作流程

将用户加入项目并分配角色是日常管理中最频繁的操作。以下为标准流程:

  1. 进入项目:在 Harbor 主界面点击目标项目名称。
  2. 选择「成员」标签页:点击顶部导航栏的「成员」。
  3. 添加成员:点击「添加成员」,输入用户名(本地用户)或 LDAP 组名。
  4. 分配角色:从下拉列表中选择角色(项目管理员/维护者/开发者/访客/受限访客)。
  5. 确认提交:点击「确定」完成添加。成员即刻获得对应权限。
批量管理技巧: 当项目成员较多时,建议通过 LDAP 组同步 功能,将 AD 组直接映射为 Harbor 项目角色。例如,将 CN=DevTeam,OU=Groups,DC=company,DC=com 映射为「开发者」角色,组内成员自动继承权限,无需逐个添加。

4.7 基础配置与保留策略的关联

完成上述基础配置后,Harbor 已具备运行条件。这些配置与后续的保留策略存在以下关键关联:

  • 项目类型决定策略作用范围:保留策略是基于项目配置的,私有项目的策略仅影响授权用户。
  • 角色权限控制策略操作:只有项目管理员和维护者可以创建/修改保留规则,开发者只能查看。
  • 存储配额与保留策略协同:保留策略负责清理过期制品,存储配额作为安全阀,防止策略失效时磁盘写满。
  • 认证集成影响策略审计:通过 LDAP 集成的用户,其操作记录可追溯到 AD 账号,便于合规审计。
课前思考: 假设你作为系统管理员,需要为开发团队(20人)和测试团队(15人)分别创建项目,并确保开发人员只能推送制品,测试人员只能拉取。同时,两个项目的保留策略需要由你统一配置。请思考:你应该创建几个项目?为每个角色分配什么权限?答案将在下一章揭晓。