SCPとは「サービスコントロールポリシー」のことで、
AWSサービスの使用を制限するフィルター
です。
この図解では、SCPがどのように継承されるかを超シンプルに説明します。
SCPの基本ルール:SCPは許可を与えるものではなく、許可を「フィルター」するものです!
最終結果: このアカウントでは S3 と Lambda のみ使用可能
SCPは 上から下へ フィルターしていき、各レベルで 使えるサービスがどんどん絞られていきます 。
SCPは「親」から「子」へと継承されます。SCPがない場合は親のSCPがそのまま適用されます。
組織ルート のSCP:
EC2、S3、RDS、Lambda、DynamoDBが 使用可能
開発OU のSCP:
EC2、S3、Lambdaのみ 使用可能 (RDSとDynamoDBは使用不可に)
アカウントA のSCP:
S3とLambdaのみ 使用可能 (EC2は使用不可に)
重要! もし親で「使用不可」になったサービスは、子レベルで「使用可能」に戻すことは できません 。例えば、開発OUでRDSが使用不可になったら、アカウントAではRDSを使用可能にはできません。
SCPで Effect: "Deny" が指定されている場合
⇒ 他のどの設定よりも優先され、必ず拒否されます
SCPで Effect: "Allow" が指定されている場合
⇒ 暗黙的な拒否よりは優先されますが、明示的な拒否には勝てません
SCPで明示的に許可されていない場合
⇒ デフォルトではすべて拒否されます(明示的に許可する必要があります)
重要ルール:「明示的なDeny」は、どのレベルでも絶対的な効力を持ちます!
例:組織ルートでEC2を「Allow」、OUで「Deny」した場合、OUの「Deny」が優先され、すべてのアカウントでEC2は使用できません。
SCPの継承イメージ : 組織ルートのSCPが最も広い範囲のサービスを許可し、下に進むほど許可範囲が狭まっていきます。
初期状態: 「FullAWSAccess」SCPを維持
追加ポリシー: 特定のサービスや操作を明示的に拒否
考え方: 「使ってほしくないサービスだけを制限する」
例: S3のDeleteBucketアクションだけを拒否するSCP
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "s3:DeleteBucket",
"Resource": "*"
}
]
}
メリット:
デメリット:
初期状態: 「FullAWSAccess」SCPを削除または無効化
追加ポリシー: 明示的に許可するサービスや操作のみを指定
考え方: 「使ってよいサービスだけを指定する」
例: EC2、S3、Lambdaのみを許可するSCP
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:*",
"s3:*",
"lambda:*"
],
"Resource": "*"
}
]
}
メリット:
デメリット:
注意点: 多くの組織では、セキュリティの観点から 方法2の許可ベース のアプローチを採用することが一般的です。最小権限の原則に基づいているためです。
実際の運用では: 組織の要件やセキュリティポリシーに応じて、これらのアプローチを組み合わせて使用することもあります。例えば、開発環境のOUには比較的多くのサービスへのアクセスを許可し、本番環境のOUには厳格な制限を設けるなどの使い分けが可能です。
まとめ:SCPの継承の4つのポイント
Created by SSuzuki1063
AWS SAP Learning Resources