本章打底兩件最常考的事:AWS 的全球基礎設施分層,以及 IAM 的身分與權限模型。先把 Region / AZ / Edge Location 的關係與用途記牢,再理解 IAM 四大元件(User / Group / Role / Policy)與 Policy 的評估邏輯——這是後續所有章節的地基。
AWS 的基礎設施由三個層級組成,理解這三層對於設計高可用架構至關重要:
IAM Policy 是 JSON 格式,每條 Statement 包含以下元素:
Allow(允許)或 Deny(拒絕)s3:GetObject、ec2:*(萬用字元)arn:aws:{服務}:{region}:{帳號ID}:{資源路徑};例如 arn:aws:s3:::my-bucket/*,S3 是全球服務不分 region/帳號 ID 所以中間兩段留空,my-bucket/* 代表這個 bucket 底下的所有物件為什麼 Explicit Deny 一定要贏過 Allow?想像一位 User 同時屬於「工程師群組」(Allow 存取所有 S3)和「機密資料封鎖群組」(Deny 存取某個機密 Bucket)——如果 Allow 可以蓋過 Deny,管理員就永遠無法用一條規則保證某人「一定」不能碰某項資源,因為只要對方之後被加進任何一個帶 Allow 的群組,封鎖就會失效。讓 Deny 優先,才能讓「封鎖」變成真正說了算的最後防線。
| 元件 | 代表誰 | 憑證類型 | 典型用途 |
|---|---|---|---|
| Users | 人或應用程式 | 長期(密碼 + Access Key) | 日常登入 Console 或 CLI 操作 |
| Groups | 使用者的集合 | 無(繼承成員 User 的使用) | 批次管理同職位員工的權限 |
| Roles | AWS 服務 / 應用 | 短期臨時 Token(STS 自動輪換) | EC2 存取 S3、Lambda 存取 DynamoDB、跨帳號操作 |
| Policies | —(規則文件) | 無 | 定義允許/拒絕哪些 AWS API 操作 |
| Policy 類型 | 附加對象 | 用途 | 特性 |
|---|---|---|---|
| Identity-based Policy | User / Group / Role | 授予身分操作 AWS 的權限 | 最常用的類型 |
| Resource-based Policy | 資源(S3、KMS 等) | 控制哪些身分可以存取此資源 | 允許跨帳號存取 |
| Permission Boundary | User / Role | 設定個別身分的最大可用權限 | 只限制,不授予;實際權限 = Identity Policy ∩ Boundary |
| SCP | OU / 成員帳號 | 組織層級的最大權限邊界 | 不影響 Management Account;覆蓋帳號內所有 IAM 設定 |
| Session Policy | AssumeRole 呼叫 | 臨時限縮扮演的 Role 權限 | 用於臨時降低權限 |
| 層級 | 定義 | 數量(約) | 主要用途 |
|---|---|---|---|
| Region | 地理上獨立的資料中心群 | 33+ | 服務部署基礎,合規/延遲/DR 考量 |
| Availability Zone | Region 內的獨立資料中心 | 105+(每 Region ≥ 3) | 多 AZ 部署實現高可用(HA) |
| Local Zone | 延伸的低延遲節點 | 30+ | 特定城市需要極低延遲時使用 |
| Edge Location | CloudFront CDN 節點 | 400+ | 靜態內容快取,降低終端用戶延遲 |
點擊卡片翻面查看答案,共 5 張。