Merge remote-tracking branch 'gitea/main' into codex/security-supply-chain-contracts-20260512
This commit is contained in:
@@ -8453,17 +8453,17 @@ by_verdict:
|
||||
- 新觀察:CD job log 會在 step env 區塊顯示 188 deploy key 內容。未在本文件記錄任何 secret 值,但必須列為下一個 P0:輪換 188 deploy key,並改造 workflow,避免 multiline secret 以 env 形式出現在 Gitea Actions logs。
|
||||
- 目前整體進度更新:約 84%。
|
||||
|
||||
### 2026-05-13 — T14d/P0:Gitea CD 188 deploy key log exposure 止血(workflow pushed)
|
||||
### 2026-05-13 — T14d/P0:Gitea CD 188 deploy key log exposure 止血(superseded by T14e)
|
||||
|
||||
**觸發**:
|
||||
|
||||
- T14c CD log 觀察到 `Sync Ops Scripts to 188` step 會在 Gitea Actions 的 step env 區塊顯示 188 deploy key 內容。
|
||||
- 未在 repo 或本文件保存任何 secret 值;但已經出現在 CI log,必須視為已暴露。
|
||||
|
||||
**止血變更**:
|
||||
**止血變更(短暫中繼,已由 T14e 取代)**:
|
||||
|
||||
- `.gitea/workflows/cd.yaml` 移除 `SSH_KEY_188` step-level env。
|
||||
- 改在 shell 內直接寫入 `~/.ssh/deploy_key_188`,避免 multiline deploy key 以 env 形式進入 Gitea Actions log 的 env 區塊。
|
||||
- 早期中繼版曾嘗試改成 shell 內寫 key;T14e 已判定仍不適合作為最終安全路徑,並改為整個 188 ops sync step 暫停,不再從 CD 讀取 multiline deploy key。
|
||||
|
||||
**verification**:
|
||||
|
||||
@@ -8475,5 +8475,42 @@ yaml ok
|
||||
判讀:
|
||||
|
||||
- 這是 workflow-level 止血,不等於完成安全事件處置。
|
||||
- 下一步仍需輪換 188 deploy key,清理/限制歷史 job log 可見性,並用一次受控 workflow_dispatch 確認新 workflow 不再暴露 secret。
|
||||
- 下一步仍需輪換 188 deploy key,清理/限制歷史 job log 可見性,並用一次受控 workflow_dispatch 確認新 workflow 不再暴露 secret;這部分由 T14e 接手。
|
||||
- 目前整體進度更新:約 85%。
|
||||
|
||||
### 2026-05-13 — T14e/P0:188 deploy key 已輪換,CD 暫停讀取該 secret(awaiting workflow dispatch verification)
|
||||
|
||||
**完成事項**:
|
||||
|
||||
- 產生新的 188 CD deploy ed25519 keypair(public fingerprint:`SHA256:68UY6RnOJTEH4KQNGZJbMFWTUrdpFE0onPd95RDQEBI`)。
|
||||
- 新 public key 已加入 `ollama@192.168.0.188:~/.ssh/authorized_keys`,comment:`gitea-cd-deploy-188-20260513`。
|
||||
- 使用新 private key SSH 測試成功:
|
||||
|
||||
```text
|
||||
rotated_key_ok
|
||||
ollama
|
||||
ollama
|
||||
```
|
||||
|
||||
- Gitea Actions secret `DEPLOY_SSH_KEY_188` 已更新,API 回傳:
|
||||
|
||||
```text
|
||||
secret_update_status=204
|
||||
```
|
||||
|
||||
- 188 上舊 public key comment `gitea-cd-deploy-188` 已移除;目前只保留新的 `gitea-cd-deploy-188-20260513`。
|
||||
- `.gitea/workflows/cd.yaml` 的 `Sync Ops Scripts to 188` step 已暫停,不再讀取 `DEPLOY_SSH_KEY_188`,直到改成 file-secret 或 Ansible-controlled channel。
|
||||
|
||||
**verification**:
|
||||
|
||||
```text
|
||||
ruby -e 'require "yaml"; YAML.load_file(".gitea/workflows/cd.yaml"); puts "yaml ok"'
|
||||
yaml ok
|
||||
```
|
||||
|
||||
判讀:
|
||||
|
||||
- 已暴露的舊 188 deploy key 在 188 host 端失效。
|
||||
- Gitea secret 已換成新 key,但 CD 暫時不使用它,避免再次透過 Gitea Actions log 暴露 multiline secret。
|
||||
- 下一步:推版後用受控 `workflow_dispatch` 跑 CD,確認 `Sync Ops Scripts to 188` 被 skip,且 job log 不再出現 `SSH_KEY_188` / `DEPLOY_SSH_KEY_188` env 內容。
|
||||
- 目前整體進度更新:約 86%。
|
||||
|
||||
@@ -2058,10 +2058,16 @@ Phase 6 完成後
|
||||
|
||||
**T14d/P0 Gitea CD 188 deploy key log exposure stopgap(2026-05-13 台北)**:
|
||||
- 觸發:T14c CD log 觀察到 `Sync Ops Scripts to 188` step 以 step-level env 傳入 multiline 188 deploy key,Gitea Actions 會在 job log 的 env 區塊顯示內容。未在 repo / docs 保存任何 secret 值,但應視為已暴露。
|
||||
- 止血:`.gitea/workflows/cd.yaml` 移除 `SSH_KEY_188` step env,改在 shell 內直接寫入 `~/.ssh/deploy_key_188`,避免 key 以 env 形式進入 Actions log。
|
||||
- 止血:`.gitea/workflows/cd.yaml` 移除 `SSH_KEY_188` step env。早期中繼版曾嘗試改成 shell 內寫 key;T14e 已判定仍不適合作為最終安全路徑,並改為整個 188 ops sync step 暫停,不再從 CD 讀取 multiline deploy key。
|
||||
- 驗證:`ruby -e 'require "yaml"; YAML.load_file(".gitea/workflows/cd.yaml"); puts "yaml ok"'` 通過。
|
||||
- 邊界:這不是完整安全事件處置;仍需輪換 188 deploy key、清理/限制歷史 job log 可見性,並以受控 `workflow_dispatch` 驗證新 workflow 不再暴露 secret。
|
||||
|
||||
**T14e/P0 188 deploy key rotated + CD secret path disabled(2026-05-13 台北)**:
|
||||
- 新 188 CD deploy ed25519 keypair 已產生(public fingerprint:`SHA256:68UY6RnOJTEH4KQNGZJbMFWTUrdpFE0onPd95RDQEBI`),public key 已加入 `ollama@192.168.0.188:~/.ssh/authorized_keys`,comment `gitea-cd-deploy-188-20260513`。
|
||||
- Gitea Actions secret `DEPLOY_SSH_KEY_188` 已更新,API 回傳 `204`;188 上舊 public key comment `gitea-cd-deploy-188` 已移除,新 key SSH 測試成功。
|
||||
- `.gitea/workflows/cd.yaml` 的 `Sync Ops Scripts to 188` step 已改為 `if: ${{ false }}`,CD 暫時不讀取該 secret,避免再次透過 Actions log 暴露 multiline private key。
|
||||
- 邊界:仍需受控 `workflow_dispatch` 驗證 step skip 與 log hygiene;188 ops scripts 自動同步需改成 file-secret 或 Ansible-controlled channel 後再恢復。
|
||||
|
||||
---
|
||||
|
||||
### 2026-04-20 晚 (台北) — C1-C4 全流程串接 — Playbook 鏈路保護(commit de2d34d)
|
||||
|
||||
Reference in New Issue
Block a user