# AWS - SCP(Service Control Policy)
# SCP(Service Control Policy)
SCP 是 AWS Organizations 的重要功能之一,常搭配 AWS Control Tower 或 Landing Zone 一起使用。
AWS Service Control Policy (SCP) 是一種套用在 AWS Organizations 帳號或 OU (Organization Unit) 上的「最高層級權限邊界政策」,來限制帳號中所有 IAM 使用者與角色可以執行的動作。
# SCP 的目的
在多帳號架構中,你可能想確保:
- 禁止任何帳號刪除 CloudTrail
- 限制資源只能建立在特定 Region
- 不允許建立 root access key
- 所有帳號都必須啟用加密 (KMS)
這些「全局規範」就透過 SCP 實現。
# SCP 運作邏輯
最終有效權限 = IAM Policy 交集 SCP
也就是:
- SCP 定義「這個帳號最多可以做什麼」
- IAM Policy 定義「使用者被授權做什麼」
- 最後的結果是兩者交集
如果 SCP 拒絕某動作,即使 IAM Policy 允許,也無法執行。
# 套用層級
SCP 是套用在:
- 整個 Organization 根節點
- 特定 OU (Organization Unit)
- 或單一 AWS 帳號
SCP 會自動 繼承 上層的限制規則。
# SCP 不會影響的對象
| 對象 | 是否受 SCP 限制 | 備註 |
|---|---|---|
| Root Account 本身 (Master) | ❌ 不受影響 | SCP 僅影響成員帳號 |
| Service-linked role | ✅ 受影響 | 若被 Deny 會出錯 |
| AWS Organizations 管理員操作 | ✅ 受影響 | 需小心誤鎖帳號 |
# 實務操作步驟
- 登入 Organizations Console
- 前往 Policies → Service control policies
- 建立新 SCP → 編寫 JSON Policy
- 套用至 OU 或 Account
- 驗證子帳號中的 IAM 行為是否被限制