翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SCP 構文
サービスコントロールポリシー (SCPs) は、 AWS Identity and Access Management (IAM) アクセス許可ポリシーとリソースベースのポリシー (Amazon S3 バケットポリシーなど) で使用される構文と同様の構文を使用します。IAM ポリシーとその構文の詳細については、IAM「 ユーザーガイド」のIAM「ポリシーの概要」を参照してください。
SCP は、 のルールに従って構造化されたプレーンテキストファイルですJSON
注記
最大サイズ に対するSCPカウント内のすべての文字。このガイドの例は、読みやすさを向上させるために、余分な空白でSCPsフォーマットされた を示しています。ただし、ポリシーサイズが上限サイズに近づいている場合は、スペースを節約するために、引用符の外側にあるすべての空白文字 (スペースや改行など) を削除できます。
SCPs の一般情報については、「サービスコントロールポリシー (SCPs)」を参照してください。
要素の概要
次の表は、 で使用できるポリシー要素をまとめたものですSCPs。一部のポリシー要素は、SCPsその拒否アクションでのみ使用できます。サポートされる効果列には、 の各ポリシー要素で使用できる効果タイプが一覧表示されますSCPs。
要素 | 目的 | サポートされる効果 |
---|---|---|
Version | ポリシーの処理に使用する言語構文ルールを指定します。 |
|
Statement | ポリシー要素のコンテナとして機能します。には複数のステートメントを含めることができますSCPs。 | Allow , Deny |
Statement ID (Sid) | (オプション) ステートメントにわかりやすい名前を付けます。 | Allow , Deny |
[Effect] (効果) | SCP ステートメントがアカウントのIAMユーザーとロールへのアクセスを許可または拒否するかどうかを定義します。 | Allow , Deny |
がSCP許可または拒否する AWS サービスとアクションを指定します。 |
|
|
から免除される AWS サービスとアクションを指定しますSCP。 |
|
|
リソース | 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