收录已归档 workload-sts 的早期设计与 SPIRE 替代决策
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
- [SPIFFE/SPIRE](services/spire.md):按 #34 整理的阶段状态、使用与 runbook 入口。
|
||||
- [待核实与文档缺口](verification.md):互相矛盾的记录、缺少使用说明的服务、下一步核实方法。
|
||||
- [架构约束](architecture/constraints.md):修改环境前必须遵守的设计及原始依据。
|
||||
- [workload-sts 设计历史](architecture/workload-sts-history.md):已归档的早期身份方案及 SPIRE 替代决策。
|
||||
- [文档维护规则](CONTRIBUTING.md):人和 AI 如何共同维护知识。
|
||||
- [服务文档模板](templates/service.md):新服务必须同时提供使用说明。
|
||||
- [AI 工作入口](AGENTS.md):新上下文按任务查找资料。
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# workload-sts:早期设计与 SPIRE 替代决策
|
||||
|
||||
**项目已归档、停止开发,不应部署或继续扩展现有 PoC。** 仓库保留早期设计和技术验证历史。
|
||||
维护者于 2026-09-16 确认归档;同日读取仓库元数据确认 `archived: true`,
|
||||
并查阅首页与替代决策。没有查询运行环境。
|
||||
|
||||
当前方案见 [SPIFFE/SPIRE](../services/spire.md)。历史源码与设计保存在
|
||||
[workload-sts 仓库](https://git.ddupan.top/panxiao81/workload-sts)。
|
||||
|
||||
## 原方案做什么
|
||||
|
||||
workload-sts 是原统一机器身份方案中的 OAuth 2.0 Security Token Service:
|
||||
验证 Kubernetes ServiceAccount JWT 等上游证明,映射稳定 workload principal,
|
||||
根据 audience、scope 等签发规则生成短期 JWT assertion,由 OpenBao 等下游服务
|
||||
验证该 assertion,并自行映射权限、签发和管理服务自己的 token。
|
||||
|
||||
原方案也明确不提供人类用户目录,不管理下游资源权限和 VM/job 生命周期。
|
||||
因此,“被替代的统一 IAM 平台”指机器身份入口与签发层的自建方案,
|
||||
不能理解为早期方案曾要求集中管理所有服务权限。
|
||||
|
||||
项目停在 PoC 阶段,首页明确未提供可运行服务或稳定 API。
|
||||
历史 issuer、协议字段和 API 规格不属于当前可用接口。
|
||||
|
||||
## 为什么改用 SPIRE
|
||||
|
||||
[2026-09-13 接受的替代决策](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/docs/superseded-by-spire.md)
|
||||
明确将 workload attestation、身份签发与轮换、OIDC/JWKS federation 交给 SPIRE,
|
||||
避免继续维护重复的签名、策略和身份映射基础设施。
|
||||
|
||||
当前路径为 workload → SPIRE Workload API → JWT-SVID → 目标服务验证身份,
|
||||
再由目标服务维护授权及自身 token 生命周期。跨基础设施的身份获取不再以
|
||||
Kubernetes ServiceAccount 为统一入口。
|
||||
|
||||
原计划中的 OAuth Token Exchange、内部 principal UUID、Transit JWT signing key、
|
||||
自建 JWKS endpoint 和集中式 CEL 策略不继续作为当前方案需求。
|
||||
未来若有目标服务不能原生处理的 token 转换或凭据签发需求,应按具体消费者重新评估
|
||||
小型 broker;不能仅因未来可能用到 scope 就恢复旧项目。
|
||||
|
||||
## 历史文档入口
|
||||
|
||||
| 文档 | 阅读目的 |
|
||||
|---|---|
|
||||
| [README](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/README.md) | 原项目目标、边界和停止开发说明 |
|
||||
| [替代决策](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/docs/superseded-by-spire.md) | 为什么停止、自建能力如何由 SPIRE 替代 |
|
||||
| [architecture](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/docs/architecture.md) | 早期系统边界与数据流 |
|
||||
| [specification](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/docs/specification.md) | 早期规范行为与待决策项 |
|
||||
| [security](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/docs/security.md) | 当时的威胁模型与安全要求 |
|
||||
| [poc](https://git.ddupan.top/panxiao81/workload-sts/src/branch/main/docs/poc.md) | 首轮库与签名技术验证结论 |
|
||||
|
||||
后四项按项目首页和目录收录为历史入口,本轮未逐篇复核。它们不代表当前实施计划;
|
||||
判断当前设计先读替代决策和 SPIFFE 页面,动态进度再看 homelab-infra #34。
|
||||
@@ -67,6 +67,7 @@ SPIFFE/SPIRE 已按维护者授权补读 #34;其他条目仍为初轮工作区
|
||||
|
||||
## 计划、归档与范围外
|
||||
|
||||
- [workload-sts](../architecture/workload-sts-history.md):已归档的早期机器身份方案;停止开发、不部署 PoC,由 SPIFFE/SPIRE 替代。
|
||||
- Backstage:规划中的服务目录与文档入口;本轮未发现独立部署目录。
|
||||
- Keycloak、Casdoor:`archive/` 下有明确退役记录,替代入口为 Authelia。
|
||||
- Traefik:归档目录保留历史 Gateway 示例,不作为当前接入流程。
|
||||
|
||||
+5
-2
@@ -41,8 +41,11 @@ SPIFFE/SPIRE 取代了原计划中由 **workload-sts 承担统一 IAM 平台**
|
||||
- **控制现有系统的改造量。** 优先利用目标服务已有的身份验证、token 交换和权限机制,
|
||||
增加对 SPIFFE 的信任与身份映射,保留各服务已有的授权模型。
|
||||
|
||||
设计定位由维护者于 2026-09-16 补充。这里记录的是方案替代关系,不代表 workload-sts
|
||||
仓库已删除或所有相关组件已退役;非 Kubernetes 接入和各消费者的实施进度仍以 ticket 为准。
|
||||
设计定位由维护者于 2026-09-16 补充。workload-sts 项目已归档,停止开发且不部署现有 PoC,
|
||||
仓库保留早期设计与验证历史。原方案也将最终资源权限留给下游服务;
|
||||
此次替代主要将自建的机器身份入口与签发能力交给 SPIRE。
|
||||
详细脉络和历史文档入口见 [workload-sts 设计历史](../architecture/workload-sts-history.md)。
|
||||
非 Kubernetes 接入和各消费者的实施进度仍以 ticket 为准。
|
||||
|
||||
## 当前做到哪里
|
||||
|
||||
|
||||
+3
-3
@@ -35,10 +35,10 @@ SPIFFE/SPIRE 按维护者指定,以 [#34](https://git.ddupan.top/panxiao81/hom
|
||||
|
||||
- `docs/cicd.md` 提及 `e5renew`、`rustfs`,但无独立组件目录;需要确认现状与归属。
|
||||
- `infrastructure/docker/README.md` 提及仓库外 `research-auto`,不能在本轮算作已盘点服务。
|
||||
- 本轮发现远端仓库 `gitea-microvm-runner`、`postgresql-tenant-operator`、`workload-sts`,
|
||||
- 本轮发现远端仓库 `gitea-microvm-runner`、`postgresql-tenant-operator`,
|
||||
尚未审阅内容或运行状态。后续将跨仓库服务纳入总览。
|
||||
维护者已明确原计划由 workload-sts 承担的统一 IAM 平台方案被 SPIFFE/SPIRE 替代,
|
||||
见 [设计定位](services/spire.md#核心设计与取舍);仓库及组件的实际保留范围仍未查询。
|
||||
- workload-sts 已按维护者提供的信息查阅:仓库已归档,停止开发、不部署 PoC,
|
||||
作为[早期设计与替代决策的历史来源](architecture/workload-sts-history.md)保留,不列为待接入服务。
|
||||
- 新增 NATS、zot、microVM 等来源含未提交文件;合并后补可访问的 commit/PR 链接。
|
||||
- Backstage 仍作为计划入口记录;本轮没有证明已有部署。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user