動作
Hotfix #1315
進行中[Hotfix] 清除 production config 中的 secrets(AWS S3 / DB / LINE)並改用 env var
開始日期:
2026-06-10
完成日期:
完成百分比:
0%
預估工時:
概述
問題¶
java/conf/production/application.properties 內含敏感資訊(AWS access key/secret、DB 密碼、LINE channel token/secret),目前跟著 git 進版控,git log 可追到 7f80281d 等多個 commit(包含 rotate 過的舊 key)。
影響¶
- AWS access key 可直接存取
shuxinclinic-hm-storagebucket(ap-northeast-1) - DB 密碼可直接連 172.31.45.86:3306
- LINE channel token/secret 可偽造官方帳號發訊
建議修法¶
- 立即在 AWS console rotate 該 IAM key,產生新 key 後 revoke 舊的
- 把 production config 改成 template:
application.properties.template進版控、實際application.properties加進.gitignore - 用
application.properties內@Value從 env var 讀:${AWS_ACCESS_KEY_ID}取代寫死 - 部署用
docker run -e AWS_ACCESS_KEY_ID=...傳入,或用 AWS Secrets Manager - 考慮改用 IAM role(如果容器在 EC2/ECS 跑,可掛 role 拿 STS token)
範圍¶
-
java/conf/production/application.properties(commit 在 git history) -
README2.md提到部署是 Jenkins + AWS LB,需檢查 Jenkins 環境是否已有 env var 可用
驗證¶
- rotate 後用舊 key push S3 應失敗
- git history 內
git log -p -- java/conf/production/application.properties還能查到舊值(無法真正抹除,除非用 BFG / filter-repo 強制重寫 history 並 force push — 評估代價)
沒有任何資料可供顯示
動作