1. 顶层设计
账号管理是内部 IT 资产治理模块,核心是账号资产台账和特权访问治理。它登记账号在哪里、谁负责、谁保管、权限多高、是否启用 MFA、凭证引用、何时复核、离职是否回收。
边界:不负责登录认证,不替代 SSO,不保存任何凭证明文。
2. 核心业务流
flowchart LR
A[发现系统/账号] --> B[登记 AccountAsset]
B --> C[指定 owner/custodian]
C --> D[标记 credential_mode;本地/超管/服务凭证绑定 secret_provider + vault_secret_ref]
D --> E[交互式账号标记 MFA;服务账号 mfa_status=not_applicable]
E --> F[周期复核]
F --> G{人员离职/转岗?}
G -->|是| H[回收/禁用/转交]
G -->|否| I[继续纳管]
H --> J[审计留痕]
3. 业务概要设计
| 能力 | 设计 |
|---|---|
| 账号资产登记 | 登记 SaaS、超管、跳板机、服务账号元数据。 |
| 特权账号治理 | 对 super_admin/root/admin/bastion_admin 等交互式账号要求 owner、custodian、MFA、凭证引用和复核周期;服务账号不要求 MFA,但必须有 vault 引用、最小权限、owner/custodian 和 rotation_due_at。 |
| 离职回收 | HR/SSO 离职事件触发账号盘点,账号进入 pending_review / disabled / transferred。 |
| 复核任务 | 按权限级别生成月度/季度复核任务,owner 确认账号仍需保留。 |
| 审计证据 | 保存登记、变更、复核、回收动作,不保存密码或 token。 |
4. 系统边界
| 负责 | 不负责 |
|---|---|
| IT 账号资产台账、账号 owner/custodian、权限级别、MFA 状态、凭证引用、复核和离职回收状态。 | 用户登录认证、SSO/OIDC/SAML 协议、密码保管、业务系统权限判定、终端用户身份主数据。 |
5. 系统顶层设计
| 组件 | 职责 |
|---|---|
| Account Asset Web | IT 账号资产列表、详情、筛选、复核和回收视图。 |
| Account Asset API | 账号资产 CRUD、复核任务、离职回收状态机和审计写入。 |
| Discovery Importer | 从 SaaS 导出、云账号导出、堡垒机账号导出、手工 CSV 导入账号资产。 |
| Review Scheduler | 根据 privilege_level 和 last_review_at 生成复核任务。 |
| Audit Ledger | 记录账号登记、复核、转交、禁用、凭证引用变更。 |
6. 系统流图
sequenceDiagram
participant IT as IT Admin
participant AM as Account Management
participant Vault as Secret Provider
participant HR as HR/SSO Event
participant Audit as Audit Ledger
IT->>AM: Register AccountAsset
AM->>Vault: For local/break_glass/service/bastion credentials, validate secret reference metadata exists
AM->>Audit: account.created
AM->>AM: Schedule review by privilege_level
HR->>AM: user.offboarded / role.changed
AM->>IT: Create offboarding review task
IT->>AM: Mark disabled/transferred
AM->>Audit: account.offboarding_closed
7. 模型设计
7.1 AccountAsset
| 字段 | 说明 |
|---|---|
account_asset_id | 主键,UUID/ULID。 |
provider | SaaS/系统提供方,如 feishu、gitlab、aliyun、aws、kingdee、bastion。 |
system_name | 系统名称。 |
account_name | 脱敏账号标识,可为邮箱、用户名或账号 ID;禁止保存密码。 |
account_type | saas_user、saas_admin、super_admin、bastion_user、bastion_admin、service_account。 |
owner_user_id | 业务责任人,负责确认账号是否仍需要。 |
custodian_user_id | 保管/运维责任人,负责凭证轮换和安全动作。 |
privilege_level | normal、admin、super_admin、break_glass、service。 |
mfa_required | 仅交互式 admin/super_admin/break_glass/本地管理员/跳板机账号必须启用 MFA;服务账号/API key/CI key 不要求 MFA,mfa_status=not_applicable。 |
mfa_status | enabled、missing、unknown、not_applicable、exception_approved;例外必须记录 mfa_exception_approved_by、mfa_exception_reason 和 mfa_exception_expire_at。 |
credential_mode | sso_managed、federated、local_password、break_glass、service_key、bastion_key。SSO 托管 SaaS 普通账号和外部联邦账号不要求 vault 引用。 |
secret_provider / vault_secret_ref | 仅 local_password、break_glass、service_key、bastion_key 必填;只校验引用元数据存在,不读取秘密内容。 |
rotation_due_at | 服务账号、本地凭证、break-glass 和 bastion 凭证的下次轮换时间;service_key 必填。 |
last_review_at | 最近复核时间。 |
next_review_at | 下次复核时间。 |
offboarding_status | not_applicable、pending_review、disabled、transferred、exception_approved。 |
status | active、disabled、pending_review、retired。 |
7.2 禁止字段
- 密码明文
- 私钥
- 恢复码
- SaaS API token
- 云厂商 AccessKey secret
- 跳板机临时口令
8. 验收点
| 验收点 | 标准 |
|---|---|
| 台账覆盖 | 关键 SaaS、超管、跳板机账号已登记。 |
| 责任人覆盖 | owner_user_id 与 custodian_user_id 不能为空。 |
| 凭证引用 | local_password、break_glass、service_key、bastion_key 模式必须有 secret_provider 和 vault_secret_ref;sso_managed / federated SaaS 普通账号允许为空,且不得为满足台账而保存 SaaS 密码。 |
| MFA 覆盖 | admin/super_admin/break_glass/本地管理员/跳板机交互式账号 MFA 100% enabled 或带过期时间的 exception_approved;服务账号不要求 MFA,但必须有 vault 引用、最小权限和 rotation_due_at。 |
| 离职回收 | 离职账号进入 offboarding review,关闭状态可审计。 |
| 明文秘密 | 表结构、页面、导出、日志中均无密码/token/私钥字段。 |
9. 人力评估
| 角色 | 估算 |
|---|---|
| 后端/API | 1 人 2 周 |
| 前端 | 1 人 1.5 周 |
| IT/SecOps | 1 人 1 周梳理初始台账 |
| QA | 0.5 人 1 周 |
10. 风险点
| 风险 | 对策 |
|---|---|
| 被误用为密码库 | 文档、模型、验收点明确禁止保存秘密,仅保存引用。 |
| owner/custodian 缺失 | 关键字段必填,缺失账号进入 pending_review。 |
| 超管账号共享 | 标记 shared/super_admin 高风险,要求双人复核与 MFA。 |
| 离职未回收 | 对接 HR/SSO 离职事件,生成回收任务。 |
| SaaS 导入不完整 | 支持手工补录 + 周期性导出导入 + 复核。 |