docs: define Instance domain model and admin Secret boundary
E2E Tests / Run on Ubuntu (pull_request) Failing after 1m21s
Tests / Run on Ubuntu (pull_request) Successful in 4m12s
Lint / Run on Ubuntu (pull_request) Successful in 4m37s

This commit is contained in:
2026-09-13 12:17:03 +00:00
parent 59303f5276
commit 953878ac47
7 changed files with 399 additions and 27 deletions
+6 -3
View File
@@ -24,7 +24,8 @@ VM/磁盘备份会包含 PostgreSQL registry 和租户数据,但不应包含 O
## 凭据处理
- controller 使用 Kubernetes auth 获取短期 OpenBao token,不配置长期静态 token。
- 管理凭据只从 Instance 引用读取,不复制到 CR/status/Event/metric/trace。
- 管理凭据只从 Instance 引用的 controller namespace Secret 读取,不复制到
CR/status/Event/metric/trace;管理员维护 ExternalSecret,由 ESO 同步该 Secret。
- 租户密码使用密码学安全随机源生成一次;中断恢复必须复用 OpenBao 现值。
- controller 创建 ExternalSecret,不直接创建含 data/stringData 的 Secret。
- 日志字段允许 namespace/name、UID、generation、阶段和错误类别;禁止记录请求/响应体、
@@ -41,8 +42,10 @@ VM/磁盘备份会包含 PostgreSQL registry 和租户数据,但不应包含 O
## 最小权限
OpenBao controller identity 只能读取管理凭据范围并管理固定 tenant base path;ESO
identity 只能读取 tenant base path。两者不得共用可访问管理凭据的 policy。
OpenBao controller identity 只管理固定 tenant base path,不读取管理凭据。管理凭据
ESO 身份只读管理路径,租户 ESO 身份只读 tenant base path,二者隔离,Tenant 不得
使用管理凭据 Store。controller 对管理 Secret 的读取限于自身 namespace,Instance
不能指定其他 namespace;controller 不创建或修改管理 Secret/ExternalSecret。
PostgreSQL 管理 role 不应是 superuser。若平台选择 SECURITY DEFINER 函数承载创建或
删除操作,函数必须固定 `search_path`、严格校验 identifier、拒绝任意 SQL,并仅向