SCP 構文 - AWS Organizations

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SCP 構文

サービスコントロールポリシー (SCPs) は、 AWS Identity and Access Management (IAM) アクセス許可ポリシーとリソースベースのポリシー (Amazon S3 バケットポリシーなど) で使用される構文と同様の構文を使用します。IAM ポリシーとその構文の詳細については、IAM「 ユーザーガイド」のIAM「ポリシーの概要」を参照してください。

SCP は、 のルールに従って構造化されたプレーンテキストファイルですJSON。このトピックで説明されている要素を使用します。

注記

最大サイズ に対するSCPカウント内のすべての文字。このガイドの例は、読みやすさを向上させるために、余分な空白でSCPsフォーマットされた を示しています。ただし、ポリシーサイズが上限サイズに近づいている場合は、スペースを節約するために、引用符の外側にあるすべての空白文字 (スペースや改行など) を削除できます。

SCPs の一般情報については、「サービスコントロールポリシー (SCPs)」を参照してください。

要素の概要

次の表は、 で使用できるポリシー要素をまとめたものですSCPs。一部のポリシー要素は、SCPsその拒否アクションでのみ使用できます。サポートされる効果列には、 の各ポリシー要素で使用できる効果タイプが一覧表示されますSCPs。

要素 目的 サポートされる効果
Version ポリシーの処理に使用する言語構文ルールを指定します。

Allow, Deny

Statement ポリシー要素のコンテナとして機能します。には複数のステートメントを含めることができますSCPs。 Allow, Deny
Statement ID (Sid) (オプション) ステートメントにわかりやすい名前を付けます。 Allow, Deny
[Effect] (効果) SCP ステートメントがアカウントのIAMユーザーとロールへのアクセスを許可または拒否するかどうかを定義します。 Allow, Deny

[アクション]

がSCP許可または拒否する AWS サービスとアクションを指定します。

Allow, Deny

NotAction

から免除される AWS サービスとアクションを指定しますSCP。Action 要素の代わりに使用します。

Deny

リソース SCP が適用される AWS リソースを指定します。 Deny
条件 ステートメントを実行するタイミングの条件を指定します。 Deny

以下のセクションでは、 でポリシー要素がどのように使用されるかの詳細と例を示しますSCPs。

Version 要素

すべての には、 値 を持つ Version 要素が含まれているSCP必要があります"2012-10-17"。これは、アクセスIAM許可ポリシーの最新バージョンと同じバージョン値です。

"Version": "2012-10-17",

詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: バージョン」を参照してください。 IAM

Statement 要素

SCP は 1 つ以上のStatement要素で構成されます。ポリシーには 1 つのStatementキーワードのみを含めることができますが、値はステートメントのJSON配列 ([ ] 文字で囲む) にすることができます。

以下の例は、単一の Effect 要素、Action 要素、Resource 要素で構成される単一のステートメントを示しています。

"Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" }

次の例では、1 つの Statement 要素内に、配列リストとして 2 つのステートメントが含まれています。最初のステートメントではすべてのアクションが許可され、2 番目のステートメントではすべてのEC2アクションが拒否されます。その結果、アカウントの管理者は、Amazon Elastic Compute Cloud (Amazon ) からのアクセス許可以外のアクセス許可を委任できますEC2。

"Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "*" } ]

詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: ステートメント」を参照してください。 IAM

ステートメント ID (Sid) 要素

Sid は、ポリシーステートメントに提供するオプションの識別子です。Sid 値は、ステートメント配列内の各ステートメントに割り当てることができます。次の例は、 Sidステートメントの例SCPを示しています。

{ "Statement": { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" } }

詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: Id」を参照してください。 IAM

Effect 要素

各ステートメントには必ず Effect を 1 つ含める必要があります。この値は Allow または Deny となります。これは、同じステートメントにリストされたアクションが影響を受けます。

詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 効果」を参照してください。 IAM

"Effect": "Allow"

次の例は、アカウントユーザーが Amazon S3 サービスのアクションを実行Allowできるようにする の値を持つ Effect 要素を含むステートメントSCPを持つ を示しています。この例は、許可リスト戦略を使用する組織で役立ちます (デフォルトの FullAWSAccess ポリシーがすべてデタッチされているため、デフォルトでアクセス許可は暗黙的に拒否されます)。その結果、このステートメントでは、アタッチされているすべてのアカウントに対する Amazon S3 のアクセスが許可されます

{ "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } }

このステートメントでは、IAMアクセス許可ポリシーと同じAllow値キーワードを使用しますが、 では、実際には何もするアクセス許可をユーザーに付与SCPしません。代わりに、組織内のIAMユーザーとIAMロールの最大アクセス許可を指定するフィルターSCPsとして機能します。前の例では、アカウントのユーザーがAdministratorAccess管理ポリシーをアタッチしていた場合でも、影響を受けるアカウントのすべてのユーザーは Amazon S3 アクションのみSCPに制限されます。

"Effect": "Deny"

Effect 要素の値が であるステートメントではDeny、特定のリソースへのアクセスを制限したり、SCPsいつ有効になるかの条件を定義したりすることもできます。

次の例は、拒否ステートメントで条件キーを使用する方法の例を示しています。

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "t2.micro" } } } }

のこのステートメントは、Amazon EC2インスタンスが に設定されていない場合、影響を受けるアカウント ( SCPがアカウント自体にアタッチされている場合、またはアカウントを含む組織のルートまたは OU にアタッチされている場合) が Amazon EC2インスタンスを起動するのを防ぐためにガードレールSCPを設定しますt2.micro。このアクションを許可するIAMポリシーがアカウントにアタッチされていても、 によって作成されたガードレールはそれSCPを防ぎます。

Action および NotAction 要素

各ステートメントには、次のいずれかが含まれている必要があります。

  • 許可あるいは拒否ステートメントの Action 要素。

  • 拒否ステートメントのみ (Effect 要素の値が Deny の場合) では、Action または NotAction 要素。

Action または NotAction要素の値は、 ステートメントによって許可または拒否される AWS のサービス および アクションを識別する文字列のリスト (JSON配列) です。

各文字列は、サービスの略称 (「s3」、「ec2」、「iam」、「organizations」など) で構成されており、すべて小文字で、コロンと、その後にサービスのアクションが続きます。アクションと表記では、大文字と小文字は区別されません。一般的にこれらはすべて、大文字で始まり、残りは小文字の各単語で入力されます。例: "s3:ListAllMyBuckets"

では、アスタリスク (*) や疑問符 (?) などのワイルドカード文字を使用することもできますSCP。

  • 名前の一部を共有する複数のアクションを検索するには、アスタリスクをワイルドカードとして使用します。値 "s3:*" は、Amazon S3 サービス内のすべてのアクションを意味します。値は「Describe」で始まるEC2アクションのみ"ec2:Describe*"に一致します。

  • 単一の文字を検索する場合は疑問符 (?) を使用します。

注記

ではSCP、 Action または NotAction要素のワイルドカード文字 (*) と (?) は、単独で、または文字列の最後にのみ使用できます。文字列の先頭または中間には表示されません。したがって、 "servicename:action*"は有効ですが、 では "servicename:*action""servicename:some*action"の両方が無効ですSCPs。

サービス認証リファレンス の および のIAMアクセス許可ポリシー、アクション、リソース、および条件キーの両方で AWS Organizations SCPsサポートされるすべてのサービスとアクションのリストについては、「」を参照してください。 AWS のサービス

詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: アクションIAMJSONポリシー要素: NotAction」を参照してください。 IAM

Action 要素の例

次の例は、アカウント管理者がアカウント内のEC2インスタンスのアクセス許可を委任することを許可するステートメントSCPを持つ を示しています。これは、許可リストの例であり、デフォルトではアクセス許可を暗黙的に拒否するためにデフォルトの Allow * ポリシーがアタッチされていない場合に便利です。デフォルトの Allow * ポリシーがルート、OU、次のポリシーがアタッチされるアカウントに引き続きアタッチされている場合は、ポリシーの効果はありません。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } }

次の例では、アタッチされたアカウントで使用されたくないサービスへのアクセスを拒否する方法を示しています。デフォルト"Allow *"SCPsは引き続きすべての OUsとルートにアタッチされていることを前提としています。このポリシー例では、アタッチされたアカウントのアカウント管理者が、、Amazon IAM、EC2および Amazon RDSのサービスに対するアクセス許可を委任できないようにします。他のサービスからのあらゆるアクションは、移譲を拒否する他のポリシーがアタッチされていない限り移譲できます。

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "iam:*", "ec2:*", "rds:*" ], "Resource": "*" } }

NotAction 要素の例

次の例は、 NotAction要素を使用してポリシーの影響 AWS のサービス から除外する方法を示しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitActionsInRegion", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "us-west-1" } } } ] }

このステートメントでは、影響を受けるアカウントは、アクションを使用する場合を除き AWS リージョン、指定された でIAMアクションを実行することに限定されます。

Resource 要素

Effect 要素の値が であるステートメントではAllow、 のResource要素で「*」のみを指定できますSCP。個々のリソースの Amazon リソースネーム () を指定することはできませんARNs。

リソース要素でアスタリスク (*) や疑問符 (?) などのワイルドカード文字を使用することもできます。

  • 名前の一部を共有する複数のアクションを検索するには、アスタリスクをワイルドカードとして使用します。

  • 単一の文字を検索する場合は疑問符 (?) を使用します。

Effect 要素の値が であるステートメントではDeny、次の例に示すようにARNs、個々の を指定できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToAdminRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/role-to-deny" ] } ] }

これにより、影響を受けるアカウントのIAMユーザーとロールが、組織内のすべてのアカウントで作成された共通の管理IAMロールに変更を加えることがSCP制限されます。

詳細については、IAM「 ユーザーガイド」のIAMJSON「ポリシー要素: リソース」を参照してください。

Condition 要素

の拒否ステートメントで Condition要素を指定できますSCP。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] } } } ] }

これによりSCP、リストされているサービスのアクションを除き、 eu-central-1および eu-west-1リージョン以外のオペレーションへのアクセスが拒否されます。

詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件」を参照してください。 IAM

サポートされていない要素

では、以下の要素はサポートされていませんSCPs。

  • Principal

  • NotPrincipal

  • NotResource