Service Control Policy(SCP)とは?組織レベルのガードレール

SCP は Organizations で組織全体や OU・特定アカウントに適用するポリシー。メンバーアカウントの最大権限の上限を定義し、IAM で許可されていても SCP で拒否されたら使用不可になる。root ユーザーにも適用されるため、組織全体のガードレールとして機能...

AWS Organizations で組織全体の権限を制限するポリシー。IAM ポリシーの「上限」として機能。


1. 概要(端的に)

SCP は Organizations で組織全体や OU・特定アカウントに適用するポリシーメンバーアカウントの最大権限の上限を定義し、IAM で許可されていても SCP で拒否されたら使用不可になる。root ユーザーにも適用されるため、組織全体のガードレールとして機能する。


2. 何ができるか

  • 組織全体のガードレール:禁止操作の一括適用
  • OU 単位適用:本番 OU には厳しく、開発 OU には緩く
  • アカウント単位適用:特定アカウントだけ制限
  • root にも適用:root ユーザーも制限可
  • 拒否リスト / 許可リスト:両方の運用が可能

3. 特徴

観点特徴
追加料金無料
適用対象OU / アカウント
影響範囲メンバーアカウントの全 IAM ユーザー / ロール
root 影響あり
形式IAM ポリシーと同じ JSON

IAM ポリシーとの違い

  • SCP:「許可の上限」を定義
  • IAM ポリシー:「実際の権限」を定義
  • 両方を AND で評価:両方で許可されている操作のみ実行可能

拒否リスト vs 許可リスト

[拒否リスト方式](推奨)
ベース:FullAWSAccess(全許可)
追加:特定操作を Deny

[許可リスト方式]
ベース:FullAWSAccess を削除(全拒否)
追加:必要な操作のみ Allow

4. 仕組み

SCP は メンバーアカウントの最大権限を制限する。「許可の天井」と考えれば良い。

評価ロジック

1. SCP が拒否(Deny)→ 拒否(最終)
2. SCP が許可(許可リストにない)→ 拒否
3. IAM ポリシーで許可 + SCP も許可 → 実行可

階層継承

  • Root レベル SCP → 全 OU・全アカウントに適用
  • OU レベル SCP → その OU 配下のアカウントに適用
  • アカウントレベル SCP → そのアカウントのみ

階層が深いほど制限が積み重なる

よくある SCP 例

特定リージョン外利用を禁止:
{
  "Effect": "Deny",
  "Action": "*",
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "aws:RequestedRegion": ["ap-northeast-1", "ap-northeast-3"]
    }
  }
}

root ユーザーの操作を禁止:
{
  "Effect": "Deny",
  "Action": "*",
  "Resource": "*",
  "Condition": {
    "StringLike": {"aws:PrincipalArn": "arn:aws:iam::*:root"}
  }
}

CloudTrail 無効化を禁止:
{
  "Effect": "Deny",
  "Action": ["cloudtrail:StopLogging", "cloudtrail:DeleteTrail"],
  "Resource": "*"
}

5. ユースケース

ユースケース 1:本番 OU の保護

本番アカウントで重要リソースの削除を一律禁止。

ユースケース 2:地域制限

組織のリージョン使用を限定(コンプライアンス対応)。

ユースケース 3:CloudTrail 保護

監査ログを無効化されないよう強制保護。

ユースケース 4:root 操作の制限

root ユーザーの操作を実質ブロック。

ユースケース 5:開発者の暴走防止

本番リソースへの破壊的操作を Deny。


6. 関連用語


7. 関連サイト

AWS 公式


🎓 試験での出題傾向

試験重要度主な出題パターン
CLF組織レベル制限の概念
SAAマルチアカウント設計、ガードレール
DVAアプリ動作不可の原因が SCP の場合
SOASCP 運用