SCP を使用した戦略 - AWS Organizations

SCP を使用した戦略

組織内で、サービスコントロールポリシー (SCP) を、次のうちいずれかとして機能するように設定できます。

  • 拒否リスト - アクションはデフォルトで許可され、禁止するサービスとアクションを指定できます

  • 許可リスト - アクションはデフォルトで禁止され、許可するサービスとアクションを指定できます

ヒント

IAMサービスの最終アクセス時間データを使用して SCP を更新し、必要な AWS サービスのみへのアクセスを制限できます。詳細については、IAM ユーザーガイドの「組織の Organizations サービスの最終アクセス時間データを表示する」を参照してください。

SCP を拒否リストとして使用する

AWS Organizations のデフォルトの設定では、SCP を拒否リストとしてサポートしています。拒否リスト戦略を使用して、アカウント管理者は、特定のサービスや一連のアクションを拒否する SCP を作成してアタッチするまで、すべてのサービスとアクションを委譲できます。AWS が新しいサービスを追加するときに SCP を更新する必要がないため、拒否ステートメントではメンテナンスの必要性が削減されます。通常、拒否ステートメントはより少ないスペースを使用するため、SCP の上限サイズ内に簡単に収まります。Effect 要素に Deny の値があるステートメントでは、特定のリソースへのアクセスを制限したり、SCP 有効時における条件を定義することもできます。

これをサポートするため、AWS Organizations は FullAWSAccess という名前の AWS 管理の SCP を、すべてのルートと OU の作成時にアタッチします。このポリシーはすべてのサービスとアクションを許可します。これはいつでもアタッチしたり、必要に応じて組織のエンティティからデタッチしたりできます。ポリシーは AWS マネージド SCP であるため、変更または削除することはできません。このポリシーは以下のようになります。

{ "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が (アカウント自体にアタッチされていても)、そのアクセス許可を許可する必要があります。

Notes
  • 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": "*" } ] }