tencent cloud

Cloud Access Management

構文構造

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-29 17:59:08
ポリシー全体の構文構造は下図に示す通りです。ポリシー policy はバージョン version とステートメント statement で構成され、さらに、プリンシパル principal 情報を含むことができます。プリンシパルはポリシー管理 API におけるポリシー構文関連のパラメータでのみ使用されます。 ステートメント statement は複数のサブステートメントで構成されます。各サブステートメントは操作 action、リソース resource、条件 condition、および効果 effect の四つの要素を含み、ここで、condition はオプション項目です。



JSON形式

ポリシー構文はJSON形式を基礎としています。作成または更新されたポリシーがJSON形式を満たさない場合、提出に成功できません。したがって、ユーザーはJSON形式が正しいことを確認する必要があります。JSON形式の標準はRFC7159で定義されています。また、オンラインのJSON検証ツールを使用してポリシーの形式をチェックすることもできます。

構文規約

構文記述には以下のような規則があります:
以下の文字はポリシー構文に含まれるJSON文字です。
{ } [ ] " , :
以下の文字はポリシー構文を記述するための特殊文字であり、ポリシー自体には含まれません。
= < > ( ) |
ある要素が複数の値を許可する場合、カンマ区切りと省略記号を使用して表します。例:
[<resource_string>, < resource_string>, ...]
<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }
複数の値を許可する場合、単一の値のみを含むこともできます。要素が単一の値しか持たない場合、末尾のカンマは除去する必要があり、ブラケット"[]"は任意であることを示します。例:
"resource": [<resource_string>]
"resource": <resource_string>
要素の後の疑問符 (?) は、その要素がオプション項目であることを示します。例:
<condition_block?>
要素が列挙値である場合、列挙値の間は縦棒 "|" で区切り、"()" 括弧で列挙値の範囲を定義します。例:
("allow" | "deny")
文字列要素はダブルクォーテーションで囲みます。例:
<version_block> = "version" : "2.0"

構文記述

policy = {
<version_block>
<principal_block?>,
<statement_block>
}

<version_block> = "version" : "2.0"

<statement_block> = "statement" : [ <statement>, <statement>, ... ]

<statement> = {
<effect_block>,
<action_block>,
<resource_block>,
<condition_block?>
}

<effect_block> = "effect" : ("allow" | "deny")

<principal_block> = "principal": ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = "qcs":
[<principal_id_string>, <principal_id_string>, ...]

<action_block> = "action":
("*" | [<action_string>, <action_string>, ...])

<resource_block> = "resource":
("*" | [<resource_string>, <resource_string>, ...])

<condition_block> = "condition" : { <condition_map> }
<condition_map> {
<condition_type_string> : { <condition_key_string> : <condition_value_list> },
<condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = ("string" | "number")
構文説明:
ポリシーは複数のステートメントを含むことができます。 ポリシーの最大長は6144文字(スペースを含まない)です。詳細は制限を参照してください。 各ブロックの表示順序に制限はありません。例えば、ポリシー内でversion_blockをeffect_blockの後ろに配置できることなどです。
現在サポートされている構文バージョンは2.0です。
principal_block要素はコンソールでの記入を許可しておらず、ポリシー管理APIおよびポリシー構文関連のパラメータ内でのみprincipalが使用できます。
操作(action)とリソース(resource)はどちらもリストをサポートします。
発効条件は単一条件であることも、複数のサブ条件ブロックの論理組み合わせを含むこともできます。各発効条件は条件演算子(condition_type)、条件キー(condition_key)、条件値(condition_value)を含みます。
各ステートメントの効力(effect)はdenyまたはallowです。ポリシーにallowとdenyの両方を含むステートメントが含まれている場合、deny優先の原則に従います。

文字列の説明

構文記述の要素文字列の説明は以下の通りです:

action_string

作用範囲、サービスタイプ、操作名称で構成されます。
//すべての製品のすべての操作
"action":"*"
"action":"*:*"
// COS製品のすべての操作
"action":"cos:*"
// COS製品のGetBucketPolicyという操作
"action":"cos:GetBucketPolicy"
// COS製品のBucketに部分一致する操作
"action":"cos:*Bucket*"
// cos製品のGetBucketPolicy、PutBucketPolicy、DeleteBucketPolicyという操作リスト
"action":["cos:GetBucketPolicy","cos:PutBucketPolicy","cos: DeleteBucketPolicy"]


resource_string

リソースは六段式で記述されます。
qcs: project :serviceType:region:account:resource
例は以下の通りです:
// COS製品のオブジェクトリソース、上海リージョン、リソース所有者のuidは10001234、リソース名はbucket1/object2
qcs::cos:sh:uid/10001234:prefix//10001234/bucket1/object2
// CMQ製品のキュー、上海リージョン、リソース所有者のuinは12345678、リソース名は12345678/queueName1、リソースプレフィックスはqueueName
qcs::cmqqueue:sh:uin/12345678:queueName/12345678/queueName1
// Cloud Virtual Machine (CVM)製品のクラウドサーバー、上海リージョン、リソース所有者のuinは12345678、リソース名はins-abcdefg、リソースプレフィックスはinstance
qcs::cvm:sh:uin/12345678:instance/ins-abcdefg
各製品に対応するリソース定義の詳細について知りたい場合は、CAMをサポートする製品の対応製品参考ドキュメントを参照してください。

condition_type_string

条件演算子は、テスト条件のタイプを記述するものです。例えば、string_equal、string_not_equal、date_equal、date_not_equal、ip_equal、ip_not_equal、numeric_equal、numeric_not_equalなどです。例は以下の通りです:
"condition":{
"string_equal":{"cvm:region":["sh","gz"]},
"ip_equal":{"qcs:ip":"10.131.12.12/24"}
}

condition_key_string

条件キーは、その値に対して条件演算子を適用して条件が満たされるかどうかを判断する対象を示します。CAMは、qcs:current_time、qcs:ip、qcs:uin、qcs:owner_uinなど、すべての製品で使用可能な条件キーのセットを定義しています。詳細については、発効条件を参照してください。

principal_id_string

CAMにおいては、ユーザーもそのリソースです。したがって、プリンシパルも六段式記述を採用します。例は以下の通りです。詳細については、リソース記述方法を参照してください。
"principal": {"qcs":["qcs::cam::uin/1238423:uin/3232",
"qcs::cam::uin/1238423:groupid/13"]}


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック