IAM(Identity and Access Management)
IAM(Identity and Access Management)
IAM(Identity and Access Management)是雲端平台用來回答「某個身分能不能對某個資源做某件事」的授權系統。它把授權拆成三個獨立的元件:identity(身分,發起動作的主體)、policy(政策,描述「允許或拒絕對哪些資源做哪些動作」的規則)、role(角色,一組可以被臨時取得的權限集合)。這三者的分工是後面所有憑證決策的前提。
概念位置
IAM 是模組二:身分與憑證地基的核心機制。它決定了誰能動什麼——人、服務、CI pipeline 各拿剛好夠用的權限(最小權限),憑證有明確的生命週期。身分層失守的代價在五個 infra 責任面向中最高,因為它是其他所有資源的閘門。
在 infra 系列中,IAM 的設計從三個維度展開:最小權限的持續收斂(不是一次設定就結束)、用 OIDC 短期憑證取代長期 access key、以及跨帳號的權限邊界(SCP + Permissions Boundary)。
可觀察訊號
IAM 需要關注的訊號:某個 role 的 policy 有 *:* 或 AdministratorAccess(權限過大);credential report 顯示有長期 access key 超過 90 天未輪替(憑證散落風險);Access Analyzer 顯示某個 role 的實際使用 action 遠少於授予的 action(權限擴散);dev 環境的 CI role 能列出 production 的資源(環境隔離失效)。
設計責任
IAM 設計時要決定:
- 身分類型區分:人用 SSO 登入(強制 MFA)、雲上服務用 instance profile / task role、雲外 CI 用 OIDC 聯合
- 權限分級:admin / operator / viewer 三級,見團隊權限分級
- 環境隔離:每個環境的 role 不能存取其他環境的資源
- 收斂節奏:定期用 Access Analyzer 觀察實際使用的 action,收掉沒用到的權限
鄰卡
- OIDC — 用短期 token 取代長期 access key 的聯合機制
- Security Group — 網路層的存取控制(IAM 是 API 層的存取控制)
- CloudTrail — 記錄 IAM 身分的 API 呼叫歷史