跳轉到

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(自動觸發)→ staging(manual approval)→ prod(manual approval)
  • 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 部署流程設計。 |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-03-19