ポリシー(policy)はいくつかの要素で構成され、権限付与の具体的な情報を記述するために使用されます。主要な要素は、委任者(principal)、操作(action)、リソース(resource)、条件(condition)、および効果(effect)を含みます。要素の予約語は小文字のみサポートされます。これらの要素には記述順序に特別な制約はありません。ポリシーに特定の条件制約がない場合、condition 要素はオプションです。コンソールでは、principal 要素の書き込みが許可されておらず、ポリシー管理 API におけるポリシー構文関連のパラメータでのみ principal の使用がサポートされています。
1. バージョン(version)
ポリシー構文バージョンを記述します。この要素は必須項目です。現在、「2.0」のみ許可されています。
2. 委任者(principal)
ポリシー権限付与のエンティティを記述します。ユーザー(ルートアカウント、サブアカウント)が含まれ、今後はロールやフェデレーテッドアイデンティティユーザーなどのより多くのエンティティが含まれる予定です。この要素は、ロールの信頼ポリシーおよびcosストレージバケットポリシーでのみ使用がサポートされています。
3. ステートメント(statement)
一つまたは複数の権限の詳細情報を記述します。この要素はaction、resource、condition、effectなど、他の複数の要素の権限または権限集合を含みます。一つのポリシーにはstatement要素が一つだけ存在します。
4. 操作(action)
許可または拒否する操作を記述します。操作は、API(nameプレフィックスで記述)または機能セット(特定のAPIのグループ、actionNameプレフィックスで記述)である可能です。この要素は必須項目です。
5. リソース(resource)
権限付与の具体的なデータを記述します。リソースは六段式で記述されます。各プロダクトのリソース定義の詳細は異なります。リソースの指定方法に関する情報は、作成したリソース宣言に対応するプロダクトのドキュメントを参照してください。この要素は必須項目です。
6. 有効条件(condition)
ポリシーが有効となる制約条件を記述します。条件は演算子、操作キー、操作値で構成されます。条件値には時間やIPアドレスなどの情報が含まれます。一部のサービスでは、条件に他の値を指定することが可能です。この要素は必須項目ではありません。
7. 効果(effect)
声明がもたらす結果が「許可」であるか「明示的な拒否」であるかを記述します。allow(許可)とdeny(明示的な拒否)の2つのケースを含みます。この要素は必須項目です。
8. ポリシーサンプル
このサンプルは:マスターアカウント APPID 1238423 配下のサブアカウント ID 3232523 が、北京地域のcosストレージバケット bucketA および広州地域のcosストレージバケット bucketB 配下のオブジェクト object2 に対し、アクセスIPが10.121.2.* サブネットである場合に、すべてのcos読み取りAPIの権限およびオブジェクト書き込み権限、ならびにメッセージキュー送信権限を持つことを記述しています。
{
"version": "2.0",
"statement": [
{
"principal": {
"qcs": [
"qcs::cam::uin/1238423:uin/3232523"
]
},
"effect": "allow",
"action": [
"cos:PutObject",
"cos:GetObject",
"cos:HeadObject",
"cos:OptionsObject",
"cos:ListParts",
"cos:GetObjectTagging"
],
"resource": [
"qcs::cos:ap-beijing:uid/1238423:bucketA-1238423/*",
"qcs::cos:ap-guangzhou:uid/1238423:bucketB-1238423/object2"
],
"condition": {
"ip_equal": {
"qcs:ip": "10.121.2.10/24"
}
}
},
{
"principal": {
"qcs": [
"qcs::cam::uin/1238423:uin/3232523"
]
},
"effect": "allow",
"action": "cmqqueue:SendMessage",
"resource": "*"
}
]
}
関連ドキュメント
CAMリソース(resource)の記述情報について知りたい場合は、リソース記述方法を参照してください。