SCP を使用した戦略
組織内で、サービスコントロールポリシー (SCP) を、次のうちいずれかとして機能するように設定できます。
IAM でサービスの最終アクセス時間データを使用して SCP を更新し、必要な AWS サービスのみへのアクセスを制限できます。詳細については、IAM ユーザーガイドの「組織の Organizations サービスの最終アクセス時間データを表示する」を参照してください。
SCP を拒否リストとして使用する
AWS Organizations のデフォルトの設定では、SCP を拒否リストとしてサポートしています。拒否リスト戦略を使用して、アカウント管理者は、特定のサービスや一連のアクションを拒否する SCP を作成してアタッチするまで、すべてのサービスとアクションを委譲できます。AWS が新しいサービスを追加するときに SCP を更新する必要がないため、拒否ステートメントではメンテナンスの必要性が削減されます。通常、拒否ステートメントはより少ないスペースを使用するため、SCP の上限サイズ内に簡単に収まります。Effect
要素に Deny
の値があるステートメントでは、特定のリソースへのアクセスを制限したり、SCP 有効時における条件を定義することもできます。
これをサポートするため、AWS Organizations は FullAWSAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
このポリシーにより、アカウント管理者は、何らかのアクセスを拒否する SCP を作成してアタッチするまで、任意のサービスまたはオペレーションのアクセス許可を委譲できます。特定のアカウントのユーザーやロールに実行させないアクションを明示的に禁止する SCP をアタッチできます。
このようなポリシーは、以下の例のようになります。この例では、影響を受けるアカウントのユーザーが Amazon DynamoDB サービスのいかなるアクションも実行しないようにします。組織の管理者は、FullAWSAccess
ポリシーをデタッチして、これを代わりにアタッチできます。この SCP は、引き続きすべての他のサービスとそのアクションを許可します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Sid": "DenyDynamoDB", "Effect": "Deny", "Action": "dynamodb:*", "Resource": "*" } ] }
2 番目のステートメントにある明示的な Deny
要素が、最初の明示的な Allow
よりも優先されるため、影響を受けるアカウントのユーザーは DynamoDB アクションを実行できません。また、FullAWSAccess
ポリシーを残して、以下のように、Deny
ステートメントのみがある 2 番目のポリシーをアタッチして設定することもできます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "dynamodb:*", "Resource": "*" } ] }
FullAWSAccess
ポリシーと、ルートまたは OU に適用される前述の DynamoDB ポリシーにある Deny
ステートメントの組み合わせには、両方のステートメントを含む単一のポリシーと同じ効果があります。特定のレベルに適用されるすべてのポリシーはまとめられます。各ステートメントはどのポリシーから派生したものにかかわらず、先に述べたルールに基づいて評価されます (つまり、明示的 Deny
は明示的 Allow
に優先し、これはデフォルトの暗示的 Deny
に優先します)。
SCP を許可リストと使用する
SCP を許可リストとして使用するには、AWS 管理の FullAWSAccess
SCP を、許可したいサービスやアクションのみを明示的に許可する SCP で置き換える必要があります。デフォルトの FullAWSAccess
SCP を削除することで、すべてのサービスのすべてのアクションが暗黙的に拒否されるようになります。そうするとカスタム SCP は、許可したいアクションのみについて、暗示的 Deny
を明示的 Allow
で上書きします。指定されたアカウントに対してアクセス許可を有効にするには、ルートからアカウントへの直接パス内の各 OU のすべての SCPが (アカウント自体にアタッチされていても)、そのアクセス許可を許可する必要があります。
-
SCP 内の
Allow
ステートメントにより、Resource
要素に"*"
エントリのみを含めることが許可されます。 -
SCP 内の
Allow
ステートメントには、Condition
要素を含めることは一切できません。
許可リストポリシーは、以下の例のようになります。この例ではアカウントユーザーは Amazon Elastic Compute Cloud (Amazon EC2) および Amazon CloudWatch のオペレーションを実行できますが、他のサービスを実行することはできません。親 OU とルート内のすべての SCP も、明示的にこれらのアクセス権限を許可する必要があります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "cloudwatch:*" ], "Resource": "*" } ] }