を使用したサービスコントロールポリシー (SCPs) のトラブルシューティング AWS Organizations - AWS Organizations

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

を使用したサービスコントロールポリシー (SCPs) のトラブルシューティング AWS Organizations

こちらの情報は、サービスコントロールポリシー () で見つかった一般的なエラーの診断と修正に役立ちますSCPs。

のサービスコントロールポリシー (SCPs) AWS Organizations はIAMポリシーに似ており、共通の構文を共有します。この構文は Object JavaScript Notation () のルールで始まりますJSON。JSON は、オブジェクトを構成する名前と値のペアを持つオブジェクトを記述します。IAM ポリシーの文法は、どの名前と値が意味を持ち、 によって理解されるかを定義することで、それに基づいています。 AWS のサービス ポリシーを使用してアクセス許可を付与する 。

AWS Organizations は構文IAMと文法のサブセットを使用します。詳細については、「SCP 構文」を参照してください。

複数のポリシーオブジェクト

は 1 つのJSONオブジェクトのみで構成SCPする必要があります。オブジェクトは括弧({ })で囲んで示します。外部ペア内に追加の { } 個の中括弧を埋め込むことで、オブジェクト内に他のJSONオブジェクトをネストできますが、ポリシーに含めることができる中括弧の最も外側のペアは 1 つだけです。次の例は、最上位に 2 つのオブジェクトが含まれているため正しくありません ( で呼び出されます。red):

{ "Version": "2012-10-17", "Statement": { "Effect":"Allow", "Action":"ec2:Describe*", "Resource":"*" } } { "Statement": { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } }

ただし、正しいポリシーの文法を使用して、前述の例の目的を果たすことができます。それぞれに独自の Statement 要素を含む 2 つのポリシーオブジェクトを含める代わりに、1 つの Statement 要素に 2 つのブロックを組み合わせて使用することができます。Statement 要素には、次の例に示すように 2 つのオブジェクトの配列を値として指定します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":" *" }, { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }

この例では、2 つの要素による効果は異なるため、1 つの要素を含む Statement に圧縮することはできません。構文は、各構文の Effect や、Resource 要素が同一の場合にのみ、組み合わせることができます。

複数の Statement 要素

このエラーは、一見、前のセクションのエラーのバリエーションのように見えますが、構文上はエラーの種類が異なります。次の例では、最上位の 1 ペアの { } で示された 1 つのポリシーオブジェクトのみが存在します。そのオブジェクト内に 2 つの Statement 要素が含まれています。

には、コロンの左側に表示される名前 (Statement) と、右側に表示される値で構成される Statement 要素を 1 つだけ含めSCPる必要があります。Statement 要素の値は、{} で示され、1 つの Effect 要素、1 つの Action 要素、および 1 つの Resource 要素を含むオブジェクトである必要があります。次の例は、ポリシーオブジェクトに 2 つの Statement 要素が含まれているため、誤りです。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, "Statement": { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } }

値オブジェクトは複数の値オブジェクトの配列にすることができるため、次の例に示すように、2 つの Statement 要素を組み合わせて 1 つの要素にすることで、この問題を解決できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":"*" }, { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }

Statement 要素の値はオブジェクト配列です。例の配列は 2 つのオブジェクトで構成され、各オブジェクトに Statement 要素の正しい値が指定されています。配列内の各オブジェクトはカンマで区切ります。

ポリシードキュメントが最大サイズを超えています

SCP ドキュメントの最大サイズは 5,120 文字です。この最大サイズには、空白を含むすべての文字が含まれます。のサイズを小さくするにはSCP、引用符以外の空白文字 (スペースや改行など) をすべて削除します。

注記

を使用してポリシーを保存する場合 AWS Management Consoleでは、JSON要素と引用符の外側の間の余分な空白は削除され、カウントされません。SDK オペレーションまたは を使用してポリシーを保存する場合 AWS CLIの場合、ポリシーは指定したとおりに保存され、文字の自動削除は行われません。