# 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 管理員操作 ✅ 受影響 需小心誤鎖帳號

# 實務操作步驟

  1. 登入 Organizations Console
  2. 前往 Policies → Service control policies
  3. 建立新 SCP → 編寫 JSON Policy
  4. 套用至 OU 或 Account
  5. 驗證子帳號中的 IAM 行為是否被限制
更新於