新增 SPIFFE OpenBao 与 Nexus Actions
This commit is contained in:
@@ -1,3 +1,34 @@
|
||||
# ci-actions
|
||||
|
||||
Gitea Actions:SPIFFE/OpenBao 登录与 Nexus CI 配置
|
||||
homelab Gitea Actions 的可复用安全构件。目前提供:
|
||||
|
||||
- `spiffe-openbao-login`:用 runner 的 JWT-SVID 换取短期 OpenBao token,并在 job 的
|
||||
post 阶段主动吊销。
|
||||
- `setup-nexus`:为匿名读取配置 Ansible Galaxy、Go Modules 与 OCI repository 地址。
|
||||
|
||||
## Runner 前提
|
||||
|
||||
`spiffe-openbao-login` 不下载工具;runner image 必须包含 Node.js 20、`spire-agent`,并挂载
|
||||
可访问的 SPIFFE Workload API socket。身份注册、OpenBao role 与 policy 仍由基础设施 IaC
|
||||
管理,Action 不创建或扩大授权。
|
||||
|
||||
```yaml
|
||||
- uses: panxiao81/ci-actions/spiffe-openbao-login@v1
|
||||
with:
|
||||
role: ci-example
|
||||
|
||||
- uses: panxiao81/ci-actions/setup-nexus@v1
|
||||
with:
|
||||
ansible: 'true'
|
||||
go: 'true'
|
||||
oci: 'true'
|
||||
```
|
||||
|
||||
登录 Action 将 `BAO_ADDR`、`BAO_TOKEN` 写入 runner 的 `GITHUB_ENV`,并通过
|
||||
`GITHUB_STATE` 将 token 交给 post action。它们属于 runner 管理的 job 临时文件;因此只允许
|
||||
在一次性 Pod/VM runner 使用,不得在共享常驻 runner 或会持久化工作目录的 runner 上使用。
|
||||
token 不作为 Action output,也不上传 artifact/cache。
|
||||
|
||||
`setup-nexus` 只配置匿名读取,不读取 OpenBao secret。正式发布账号建立后,应新增独立的
|
||||
Nexus login Action,并绑定精确 SPIFFE ID 与最小 OpenBao policy;不得让本 Action 读取
|
||||
管理员凭据。
|
||||
|
||||
Reference in New Issue
Block a user