はじめに
AWS Organizationsを使えば、複数のAWSアカウントを一元管理できます。その中でも「サービスコントロールポリシー(SCP)」は、組織内のアカウントに対するアクセス制御の要となる機能です。
本記事では、SCPの適用範囲について分かりやすく解説します。
サービスコントロールポリシー(SCP)とは?
SCPは、組織内のAWSアカウントで許可されるアクションの最大許可範囲(Permissions guardrail)を定義するポリシーです。
SCPはIAMポリシーとは異なり、そのアカウントでIAMポリシーが許可していても、SCPで拒否されていれば実行不可になります。
適用範囲の基本ルール
1. SCPはOU(組織単位)またはアカウントに直接アタッチできる
- SCPは以下のいずれかにアタッチできます:
- 組織(Root)
- OU(Organizational Unit)
- 個別のAWSアカウント
2. SCPは「継承」される
- OUやRootに設定したSCPは、配下のOUやアカウントにも自動的に適用されます。
- 例えば、Rootに設定したSCPは、すべてのOU・アカウントに影響します。
3. IAMユーザー・ロールではなく「アカウント」に対して適用される
- SCPの対象はIAMユーザーやロールではなく、アカウント単位です。
- そのアカウント内のすべてのエンティティ(ルートユーザー、IAMユーザー、ロール)に適用されます。
適用対象となるユーザー
ユーザー種別 | SCPの適用有無 |
---|---|
IAMユーザー | ✅ 適用される |
IAMロール | ✅ 適用される |
ルートユーザー | ✅ 適用される |
管理アカウント | ✅ 適用される(SCP有効時) |
🔍 ポイント:SCPはルートユーザーにも適用される点が、IAMポリシーとの大きな違いです。
「有効なポリシーセット」として評価される仕組み
アクションが許可されるには、以下の両方を満たす必要があります:
SCPで許可されている × IAMポリシーで許可されている
つまり、SCPとIAMポリシーの両方で明示的に許可されている必要があり、どちらかで拒否されていれば実行不可になります。
適用される階層と継承のイメージ図(文章)
[ Root ]
└── [ OU A ] ← SCPがアタッチされていれば、配下のアカウントにも適用
├── [ Account 1 ]
└── [ Account 2 ]
たとえば、「OU A」にSCPを設定すれば、Account 1 と Account 2にもそのポリシーが継承されます。
よくある誤解と注意点
-
❌ IAMポリシーで制限すれば十分?
→ ルートユーザーにはIAMポリシーを適用できません。SCPが必要です。 -
❌ SCPを設定すれば自動で制御される?
→ デフォルトでは「FullAWSAccess」というSCPがアタッチされています。不要なサービスを制限するには、これを無効化して独自ポリシーを作成する必要があります。
まとめ
項目 | ポイント |
---|---|
適用単位 | OUまたはアカウント |
適用範囲 | 配下のすべてのIAMエンティティ(ユーザー、ロール、ルートユーザー) |
継承 | 上位のOUやRootから自動で継承される |
IAMとの違い | IAMポリシーはユーザー単位、SCPはアカウント単位で制御 |
設定場所のおすすめ | なるべくRootにまとめて設定することで効率的に管理可能 |