このトピックでは、Resource Access Management (RAM) でポリシーを作成または更新するために使用される構造と構文について説明します。
ポリシー構文の規則
ポリシー構文には、次の規則が使用されます。
ポリシー内の文字
次の文字は、ポリシー構文で予約されたJSON文字です。
{ } [ ] ",
次の文字は、ポリシー構文の特殊文字です。
= < > ( ) |
文字の使用
要素に複数の値を設定できる場合は、次のいずれかの操作を実行できます。
各値を区切る区切り文字としてコンマ (,) を使用し、残りの値を表す省略記号 (...) を使用します。 例:
[ <action_string>, <action_string>, ...]
値を1つだけ含めます。 例:
"Action": [<action_string>]
および"Action": <action_string>
。
要素に続く疑問符 (?) は、その要素がオプションであることを示します。 例:
<condition_block?>
要素間の垂直バー () は複数のオプションを示します。 例:
("許可" | "拒否")
オプションの1つのみを使用できます。文字列は二重引用符 (") で囲まれています。 例:
<version_block> = "Version" : ("1")
ポリシー構造
ポリシー構造には、次のコンポーネントが含まれます。
バージョン番号。
ステートメントのリスト。 各ステートメントには、Effect、Action、Resource、およびConditionの要素が含まれています。 Condition要素はオプションです。
ポリシー構文
policy = {
<version_block>,
<statement_block>
}
<version_block> = "Version" : ("1")
<statement_block> = "Statement" : [ <statement>, <statement>, ... ]
<statement> = {
<effect_block>,
<action_block>,
<resource_block>,
<condition_block?>
}
<effect_block> = "Effect" : ("Allow" | "Deny")
<action_block> = "Action" :
("*" | <action_string> | [<action_string>, <action_string>, ...])
<resource_block> = "Resource" :
("*" | <resource_string> | [<resource_string>, <resource_string>, ...])
<condition_block> = "Condition" : <condition_map>
<condition_map> = {
<condition_type_string> : {
<condition_key_string> : <condition_value_list>,
<condition_key_string> : <condition_value_list>,
...
},
<condition_type_string> : {
<condition_key_string> : <condition_value_list>,
<condition_key_string> : <condition_value_list>,
...
}, ...
}
<condition_value_list> = (<condition_value> | [<condition_value>, <condition_value>, ...])
<condition_value> = ("String" | "Number" | "Boolean" | "Date and time" | "IP address")
ポリシーの構文を次に示します。
バージョン : 現在のポリシーバージョンは 1 です。 バージョンは変更できません。
ステートメント: ポリシーには複数のステートメントを含めることができます。
各ステートメントの効果は、[許可] または
[拒否]
のいずれかです。説明ステートメントでは、Action要素とResource要素の両方に複数の値を設定できます。
各ステートメントは独自の条件を持つことができます。
説明条件ブロックには、異なる演算子を持つ複数の条件を含めることができます。
権限の優先順位: RAMユーザーに複数のポリシーをアタッチできます。 リクエストに適用されるポリシーに
Allow
ステートメントとDeny
ステートメントが含まれている場合、DenyステートメントがAllowステートメントよりも優先されます。要素値 :
要素値が文字列、数値、日付、時刻、ブール値、またはIPアドレスの場合、値は二重引用符 ("") で囲む必要があります。
要素値が文字列の場合、アスタリスク (
*
) や疑問符 (?
) などのワイルドカード文字を使用できます。アスタリスク (
*
) は、使用できる文字の数 (ゼロを含む) を示します。 たとえば、要素値がecs:Describe *
の場合、Describe
で始まるすべてのECS (Elastic Compute Service) 操作を使用できます。疑問符 (
?
) は許可された文字を示します。
ポリシー構文チェック
ポリシーはJSONファイルとして保存されます。 ポリシーを作成または更新すると、RAMはポリシーを作成または更新する前にJSON構文が有効かどうかを確認します。 JSONバリデーターやエディターなどのツールを使用して、ポリシーがJSON構文標準を満たしているかどうかを確認することもできます。 JSON構文標準の詳細については、「RFC 7159」をご参照ください。