tsumiki-media logo

tsumiki-media

Command Palette

Search for a command to run...

AWSベストプラクティス
約22分
上級+
8/10
2025年7月17日

AWS SCS-C02 対策 Service Control Policy (SCP) 効果的なガバナンス戦略

AWS Organizations Service Control Policy (SCP)による効果的なマルチアカウントガバナンスを解説。OU階層設計、フルAWSアクセス削除の重要性、要件別ポリシー適用パターンを実践的な問題を通じて理解し、企業レベルのセキュリティ制御を確実に実装します。

この記事のポイント

  • 1
    SCPの基本概念と最大権限の境界線設定メカニズムを理解する
  • 2
    フルAWSアクセス削除とAllow文の効果的な組み合わせを習得する
  • 3
    OU階層設計による要件別ポリシー適用戦略を把握する
  • 4
    Control Tower環境での実践的なSCP実装パターンを確認する

目次

Service Control Policy (SCP) とは

AWS Organizations Service Control Policy(SCP)は、組織内のアカウントが使用できる最大権限の境界線を設定するガバナンス機能です。SCPはガードレールとして機能し、IAMポリシーで許可された権限であっても、SCPで拒否された操作は実行不可能になります。

SCPの核心は「Denyが最優先」の原則です。どんなに強力なIAM権限があっても、SCPで明示的に拒否された操作は一切実行できません。この特性により、組織レベルでの確実なセキュリティ制御を実現できます。

資格試験での重要トピック

Service Control Policyに関連した資格試験で重要なトピックを解説します。

フルAWSアクセス削除とAllow文の組み合わせ

SCPによる制限実装においてAllow文のみのポリシーが効果を発揮しない理由を理解することが重要です。AWS OrganizationsはデフォルトでフルAWSアクセスSCPを適用しており、このデフォルトSCPを削除することが制限実現の鍵となります。

よくある誤解:Allow文のみによる制限の試み

SCPによる制限を実装する際のよくある誤解を具体的なポリシー例で確認しましょう。開発者OUに以下のカスタムSCPを適用したとします:

カスタムSCP(Allow文のみ)- 効果なし
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowEC2",
      "Effect": "Allow",
      "Action": "ec2:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowRDS",
      "Effect": "Allow",
      "Action": "rds:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowECS",
      "Effect": "Allow",
      "Action": "ecs:*",
      "Resource": "*"
    }
  ]
}

しかし、この状況ではフルAWSアクセスSCPも同時に適用されています:

フルAWSアクセスSCP(デフォルト)- すべてを許可
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

実際の動作:フルAWSアクセスSCPが"Action": "*"ですべてのサービスを許可しているため、カスタムSCPのAllow文は効果を持ちません。S3、Lambda、その他すべてのAWSサービスが引き続き利用可能です。

この誤解が生じる理由は、「Allow文を追加すれば制限できる」という直感的な理解にあります。実際には、フルAWSアクセスSCPが存在する限り、すべてのサービスが利用可能な状態が続きます。

1
デフォルトのフルAWSアクセスポリシーをデタッチ
開発者OUからフルAWSアクセスSCPを削除(デタッチ)
  • AWS Organizations コンソールで開発者OUを選択
  • 「ポリシー」タブから「FullAWSAccess」を確認
  • 「デタッチ」ボタンでフルAWSアクセスSCPを削除
  • デタッチ後、デフォルトでは何も許可されない状態になる
Note:⚠️ 重要: この操作により、明示的に許可されていないすべてのサービスが自動的に拒否されます
2
カスタムポリシーをアタッチ
必要なサービスのみを許可するカスタムSCPを適用
  • EC2、RDS、ECSのみを許可するカスタムSCPを作成
  • 開発者OUに新しいカスタムSCPをアタッチ
  • ポリシーの適用を確認し、意図した制限が有効になることを検証
  • S3、Lambda等の他サービスが拒否されることを確認
Note:フルAWSアクセスSCP削除後のみ、Allow文による制限が効果的に機能します
カスタムSCP(フルアクセス削除後)- 効果的な制限
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowEC2",
      "Effect": "Allow",
      "Action": "ec2:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowRDS",
      "Effect": "Allow",
      "Action": "rds:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowECS",
      "Effect": "Allow",
      "Action": "ecs:*",
      "Resource": "*"
    }
  ]
}

実装結果:フルAWSアクセスSCPが削除されたため、明示的に許可されたサービスのみ(EC2、RDS、ECS)が使用可能になります。S3、Lambda、その他のAWSサービスは自動的に拒否されます。

重要な技術的ポイントは、SCPによる効果的な制限は「明示的な拒否」ではなく「デフォルトSCPの削除と明示的な許可」の組み合わせで実現することです。この仕組みの理解が、AWS Organizationsの適切な運用につながります。

OU階層設計による要件別ポリシー適用

組織の複雑な要件に対応するため、要件別にSCPを設計し、適切なOUレベルに適用する階層戦略が重要です。同じ要件は上位レベル、異なる要件は個別OUレベルで管理します。

OU階層設計による要件別ポリシー適用

OU階層設計による要件別ポリシー適用

この図では、3つの異なるレベルでのSCP適用戦略を示しています。組織ルートレベルでは、全アカウントに適用すべき共通要件(IAMユーザー作成禁止)をSCPで制御します。

Production OUレベルでは、本番環境特有の厳格な要件(ルートユーザー操作禁止)を適用します。本番環境では人的ミスによる重大な影響を避けるため、最も制限的なポリシーを設定します。

Development OUレベルでは、開発効率と制御のバランスを取る要件(特定インスタンスタイプ・リージョン制限)を適用します。開発者の生産性を維持しながら、コスト制御とセキュリティ要件を満たします。

この階層アプローチにより、新しいアカウントの自動継承一貫したポリシー適用管理オーバーヘッドの最小化を同時に実現できます。各OUに新しいアカウントが追加されても、適切なSCPが自動的に適用されます。

実践問題で確認

ここまで学んだ3つの核心パターンを、実践的な問題で確認しましょう。各問題は実際の企業シナリオに基づいており、SCPの適用能力を評価します。

AWS認定ソリューションアーキテクト - プロフェッショナル

練習問題

大手製造業の企業が、AWS Organizations を導入して開発者が特定のAWSサービスにしかアクセスできないように制限しようとしています。開発者アカウントは専用の組織単位(OU)内に配置されています。ソリューションアーキテクトは、開発者が Amazon EC2、Amazon RDS、Amazon ECS のみを使用できるようにするため、以下のサービスコントロールポリシー(SCP)を開発者アカウントに実装しました: ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "AllowRDS", "Effect": "Allow", "Action": "rds:*", "Resource": "*" }, { "Sid": "AllowECS", "Effect": "Allow", "Action": "ecs:*", "Resource": "*" } ] } ``` このポリシーを適用した後も、開発者アカウント内のIAMユーザーはポリシーに記載されていないAWSサービスを引き続き使用できることが判明しました。開発者がポリシーの対象外のサービスを使用できないようにするには、ソリューションアーキテクトは何をすべきですか?

AWS認定セキュリティ - 専門知識

練習問題

ある企業は、AWS Control Towerを使用して複数のAWSアカウントを持つ新しい環境をセットアップしました。環境は組織単位(OU)に分類されており、Production OUとDevelopment OUが含まれています。企業のセキュリティポリシーでは、以下の要件を満たす必要があります: 1. 本番環境のすべてのAWSアカウントでは、ルートユーザーによるすべての操作を禁止する 2. 開発環境では、EC2インスタンスの作成を特定のインスタンスタイプと特定のリージョンのみに制限する 3. 組織全体で、IAMユーザーの作成を禁止し、AWS IAM Identity Center(旧AWS Single Sign-On)を使用したアクセス管理を強制する これらの要件を効率的に実装するために、セキュリティエンジニアはどのようにサービスコントロールポリシー(SCP)を設計および適用すべきですか?

AWS認定セキュリティ - 専門知識

練習問題

ある企業はAWS Organizations SCPを実装して、全アカウントで重要なセキュリティサービスへのアクセスを制限しています。すべてのアカウントとOUにはデフォルトのFullAWSAccess SCPがアタッチされています。誰もAmazon GuardDutyやAWS Security Hubを無効化できないようにし、アカウント内のIAMポリシーによる他の権限は上書きしない必要があります。これらの要件を満たすために組織のルートにアタッチすべきSCPはどれですか?

まとめ

Service Control Policy(SCP)は、最大権限の境界線設定により組織レベルでの確実なガバナンスを実現します。3つの核心パターンを理解することで、複雑な企業要件にも対応できます。

Allow文だけのSCPが効果を発揮するには、デフォルトのフルAWSアクセスSCPを削除することが必須。この手順により、明示的に許可されたサービスのみが使用可能になり、他のすべてのサービスが自動的に拒否されます。

組織ルートレベル(共通要件)、Production OUレベル(厳格制御)、Development OUレベル(制限的許可)の3階層で異なる要件を効率的に管理。新規アカウントの自動継承により、一貫したガバナンス状態を維持できます。

これらのパターンを組み合わせることで、規制要件への対応セキュリティインシデント防止運用効率向上を同時に実現できます。特に金融、ヘルスケア、政府系など高度なガバナンス要件を持つ業界において、SCPは組織レベルでの確実な制御メカニズムを提供します。

理解度チェック

フルAWSアクセスSCPが適用されている状況で、Allow文のみのカスタムSCPを追加しても制限が効かない理由と、フルAWSアクセスSCP削除による効果的な制限実現の仕組みを説明できるか?

組織ルート・Production OU・Development OUの3階層それぞれに適用すべき要件の違いと、新規アカウント追加時の自動継承メリットを含むOU階層設計戦略を説明できるか?

他の問題も解いてみませんか?

tsumikiでは、AWS認定試験の合格に必要な知識を体系的に学習できます。実践的な問題を通じて、AWSスキルを身につけましょう。