CAMポリシー:
{
"version":"2.0",
"statement":
[
{
"effect":"effect",
"action":["action"],
"resource":["resource"],
"condition": {"key":{"value"}}
}
]
}
バージョンversion:入力必須項目であり、現時点では"2.0"のみを認めています。
ステートメントstatement:1つ以上の権限の詳細情報を記述します。この要素は効力、操作、リソース、条件などの複数のその他の要素の権限又は権限集合を含みます。1つのポリシーには1つのステートメント要素だけしかありません。
影響effect:入力必須項目であり、ステートメントによる結果が「許可」であるか「明示的な拒否」であるかを説明します。allow(許可)とdeny(明示的な拒否)という2種類の状況が含まれています。
操作 action:必須項目で、許可又は拒絶の操作について記述します。操作はAPIであることが可能です(cdb: プレフィックスで記述します)。
リソース resource:必須項目で、認証された具体的なデータについて記述します。リソースは6段式で記述され、各製品のリソース定義の詳細は異なります。
発効条件condition は必須項目で、ポリシー発効の制約条件を記述します。条件はオペレーター、操作キーと操作値を含みます。条件値は時間、IPアドレスなどの情報を含んでいます。一部のサービスは、条件の中で他の値を指定することを許可しています。
CDBポリシーのステートメントでは、CDBをサポートするすべてのサービスの中から任意のAPI操作を指定することができます。CDBについては、cdb: をプレフィックスとするAPIを使用してください。例:cdb:CreateDBInstance又はcdb:CreateAccounts。
一つのステートメントで複数の操作を指定したい場合は、下記のとおり、コンマで区切ってください:
"action":["cdb:action1","cdb:action2"]
ワイルドカードで複数の操作を指定することも可能です。例えば、先頭が単語" Describe "であるすべての操作を指定することが可能で、下記の通りです:
"action":["cdb:Describe*"]
CDBにおけるすべての操作を指定する場合は、以下のとおり*ワイルドカードを使用してください。
各CAMポリシーステートメントは自身に適用されるリソースがあります。
リソースの一般的な形式は次のとおりです:
qcs:project_id:service_type:region:account:resource
project_id:プロジェクト情報を記述します。CAMのレガシーロジックとの互換性のためにのみ使用されます。入力する必要はありません。
** service_type:製品略称です(例:cdb)。
region:地域情報です(例:ap-guangzhou)。
account:リソース所有者のメインアカウント情報です。例えばuin/65xxx763。
resource:各製品の具体的なリソース詳細です(例:instanceId/instance_id1又はinstanceId/*)。
例えば、以下のとおり特定のインスタンス(cdb-k05xdcta)を使用して、ステートメントでそれを指定することができます:
"resource":["qcs::cdb:ap-guangzhou:uin/65xxx763:instanceId/cdb-k05xdcta"]
ワイルドカードで特定アカウントのすべてのインスタンスを指定することができます。下記の通りです:
"resource":["qcs::cdb:ap-guangzhou:uin/65xxx763:instanceId/*"]
すべてのリソースを指定したい場合、又は特定のAPI操作がリソース級の権限をサポートしていない場合、以下のとおりresource要素の中で*ワイルドカードを使ってください。
一つのコマンドで複数のリソースを同時に指定したい場合は、コンマでそれらを区切ってください。下記は二つのリソースを指定する例です:
"resource":["resource1","resource2"]
以下の表ではCDBが使用できるリソースと対応するリソースの記述方法を説明します。そのうち、$がプレフィックスの単語はいずれも別称であり、regionは地域、accountはアカウントIDを指します。
|
| qcs::cdb:$region:$account:instanceId/$instanceId
|
| qcs::vpc:$region:$account:vpc/$vpcId
|
| qcs::cvm:$region:$account:sg/$sgId
|