AWS Organizations SCPの継承:超シンプル解説

SCPとは「サービスコントロールポリシー」のことで、 AWSサービスの使用を制限するフィルター です。
この図解では、SCPがどのように継承されるかを超シンプルに説明します。

1. SCPの基本: フィルターの仕組み

SCPの基本ルール:SCPは許可を与えるものではなく、許可を「フィルター」するものです!

組織ルート SCP
EC2
S3
RDS
Lambda
IAM
OU SCP
EC2
S3
RDS
Lambda

最終結果: このアカウントでは S3 Lambda のみ使用可能

SCPは 上から下へ フィルターしていき、各レベルで 使えるサービスがどんどん絞られていきます

2. 組織構造とSCPの継承

組織ルート
SCP
開発OU
SCP
本番環境OU
SCP

SCPは「親」から「子」へと継承されます。SCPがない場合は親のSCPがそのまま適用されます。

3. SCPの継承を具体例で理解しよう

具体例:各レベルで使えるAWSサービス

1

組織ルート のSCP:

EC2、S3、RDS、Lambda、DynamoDBが 使用可能

2

開発OU のSCP:

EC2、S3、Lambdaのみ 使用可能 (RDSとDynamoDBは使用不可に)

3

アカウントA のSCP:

S3とLambdaのみ 使用可能 (EC2は使用不可に)

重要! もし親で「使用不可」になったサービスは、子レベルで「使用可能」に戻すことは できません 。例えば、開発OUでRDSが使用不可になったら、アカウントAではRDSを使用可能にはできません。

4. SCPの継承ルールをおさらい

✅ よくある誤解

  • 「SCPを適用すると権限が付与される」
    違います! SCPは権限を与えるものではありません
  • 「子レベルのSCPは親のSCPを上書きできる」
    違います! 親で制限されたものは子で復活できません

✅ 正しい理解

  • SCPは「 フィルター 」として機能する
  • 各レベルのSCPは「 AND条件 」で適用される
  • 下に行くほど権限は 狭く なるだけで、広くはならない
  • SCPがないアカウントは、親OUのSCPがそのまま適用される

5. SCPにおける優先順位「暗黙のDeny < 明示的なAllow < 明示的なDeny」

SCPの評価優先順位

優先度:最高

明示的な Deny

SCPで Effect: "Deny" が指定されている場合

⇒ 他のどの設定よりも優先され、必ず拒否されます

優先度:中

明示的な Allow

SCPで Effect: "Allow" が指定されている場合

⇒ 暗黙的な拒否よりは優先されますが、明示的な拒否には勝てません

優先度:最低

暗黙的な Deny

SCPで明示的に許可されていない場合

⇒ デフォルトではすべて拒否されます(明示的に許可する必要があります)

重要ルール:「明示的なDeny」は、どのレベルでも絶対的な効力を持ちます!

例:組織ルートでEC2を「Allow」、OUで「Deny」した場合、OUの「Deny」が優先され、すべてのアカウントでEC2は使用できません。

6. SCPの継承を図で理解する

組織ルート
SCP
開発OU
SCP
本番環境OU
SCP
アカウントA
SCP
アカウントB
アカウントC
アカウントD

SCPの継承イメージ : 組織ルートのSCPが最も広い範囲のサービスを許可し、下に進むほど許可範囲が狭まっていきます。

EC2, S3, RDS, Lambda, DynamoDB
EC2, S3, Lambda
S3, Lambda

7. SCPの標準的な運用方法

SCPの2つの設計アプローチ

方法1: 拒否ベースのアプローチ (Deny-list)

初期状態: 「FullAWSAccess」SCPを維持

追加ポリシー: 特定のサービスや操作を明示的に拒否

考え方: 「使ってほしくないサービスだけを制限する」

例: S3のDeleteBucketアクションだけを拒否するSCP

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "s3:DeleteBucket",
      "Resource": "*"
    }
  ]
}

メリット:

  • 設定が簡単(制限したいサービスだけを指定)
  • 新しいAWSサービスが追加されても自動的に使用可能

デメリット:

  • 最小権限の原則に反する可能性
  • セキュリティリスクが高い

方法2: 許可ベースのアプローチ (Allow-list)

初期状態: 「FullAWSAccess」SCPを削除または無効化

追加ポリシー: 明示的に許可するサービスや操作のみを指定

考え方: 「使ってよいサービスだけを指定する」

例: EC2、S3、Lambdaのみを許可するSCP

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:*",
        "s3:*",
        "lambda:*"
      ],
      "Resource": "*"
    }
  ]
}

メリット:

  • 最小権限の原則に準拠
  • セキュリティリスクの最小化

デメリット:

  • 設定が複雑(使用するすべてのサービスを特定する必要)
  • 新しいAWSサービスを使うには、SCPを更新する必要がある

SCPの標準的な運用フロー

  1. デフォルト設定の確認 : 組織ルートには「FullAWSAccess」というSCPがデフォルトで適用されています
  2. アプローチの選択 : 組織のセキュリティ要件に基づいて、拒否ベースか許可ベースかを選択
  3. OUの設計 : 機能、環境(開発/本番)、チームなどに基づいてOUを設計
  4. SCPの適用 : 各OUに適切なSCPを適用(多くの組織では 許可ベース を採用)
  5. テストと検証 : 実際のユースケースでSCPの効果をテスト

注意点: 多くの組織では、セキュリティの観点から 方法2の許可ベース のアプローチを採用することが一般的です。最小権限の原則に基づいているためです。

実際の運用では: 組織の要件やセキュリティポリシーに応じて、これらのアプローチを組み合わせて使用することもあります。例えば、開発環境のOUには比較的多くのサービスへのアクセスを許可し、本番環境のOUには厳格な制限を設けるなどの使い分けが可能です。

まとめ:SCPの継承の4つのポイント

  1. SCPは上から下へと継承される
  2. 各レベルでできることは「狭く」なるだけで「広く」はならない
  3. SCPはIAMポリシーとは別物!権限を与えるものではなく「フィルター」
  4. 優先順位は「暗黙のDeny < 明示的なAllow < 明示的なDeny」

Created by SSuzuki1063

AWS SAP Learning Resources