GitHub Actions OIDC AWS Integration¶
概念概覽
OIDC 整合核心¶
核心知識¶
OIDC 整合核心¶
GitHub Actions 透過 OIDC 取得 AWS 臨時憑證,不需要長期 Access Key,消除了 GitHub Secrets 中儲存 AWS 金鑰的風險。
- OIDC Provider URL:
https://token.actions.githubusercontent.com - 在 AWS IAM 建立 OIDC Provider,允許 GitHub Actions assume 指定 IAM Role
- IAM Role 的 trust policy 限定只允許特定 repo 和 branch
三層部署安全流程¶
- dev 環境:PR merge 後自動執行,允許快速迭代驗證
- staging/prod:必須有人工審核確認 dev 驗證通過後才能繼續
- 需建立清晰的審批 SOP,避免 approval 成為形式
Windows 環境注意事項¶
AWS credentials 位於 C:\Users\{user}\.aws\credentials(等同於 ~/.aws/credentials),WSL 和 Windows PowerShell 的 credentials 路徑不同,需分別設定。
經驗教訓¶
-
OIDC 整合一旦設定完成,後續不需要輪換任何 Access Key,降低維運負擔
-
Manual approval gate 需要搭配 SOP 才有實際意義,否則審核者不知道要確認什麼
-
Windows 環境同時使用 WSL 和 PowerShell 時,兩者 AWS credentials 需分別維護
常見陷阱¶
-
OIDC Provider 只需在每個 AWS Account 建立一次,重複建立會報錯
-
Windows PowerShell 和 WSL 共享同一個 .aws 目錄,但路徑表示不同,容易混淆
最佳實踐¶
-
所有 AWS 操作前執行 aws sts get-caller-identity 確認身份(尤其 root vs IAM user)
-
OIDC trust policy 應限定到具體的 repo 和 branch,避免過於寬鬆
-
不要用 root 帳號執行日常操作,應建立有最小權限的 IAM user(如 Lotus)
相關概念¶
來源 Sessions¶
| 日期 | Session | 貢獻摘要 |
|---|---|---|
| 2026-03-19 | 12166813-461c-4fea-8bdc-9685a03af89c | 確立了 GitHub Actions 透過 OIDC 整合 AWS 的核心模式(無長期金鑰),以及 dev → staging → prod 三層 manual approval 部署流程設計。 |