概要
ユーザーはCAMで、ルートアカウント下の異なるタイプのユーザーに対し、異なる権限を付与することができます。これらの権限はアクセスポリシー言語で記述し、ユーザーを出発点として権限承認を行うため、ユーザーポリシーと呼ばれます。 ユーザーポリシーとバケットポリシーとの違い
ユーザーポリシーとバケットポリシーの最大の違いは、ユーザーポリシーはエフェクト(Effect)、アクション(Action)、リソース(Resource)、条件(Condition、オプション)のみを記述し、プリンシパル(Principal)は記述しない点です。このため、ユーザーポリシーの使用方法は次のようになります。
ユーザーポリシーは作成完了後、さらにサブユーザー、ユーザーグループまたはロールに対しバインド操作を実行する必要があります。
ユーザーポリシーはアクションおよびリソース権限の匿名ユーザーへの付与をサポートしていません。
プリセットポリシーとカスタムポリシー
ユースケース
ユーザーが行えること、および推奨されるユーザーポリシーについてお知りになりたい場合は、CAMユーザーを検索し、その所属するユーザーグループの権限を確認することで、ユーザーが何を行うことができるかを知ることができます。次のようなケースで推奨されます。
バケット作成(PutBucket)、バケットリストアップ(GetService)などの、Cloud Object Storage(COS)サービスレベルの権限を設定したい場合。
ルートアカウント下のすべてのCOSバケットおよびオブジェクトを使用したい場合。
ルートアカウント下の大量のCAMユーザーに同等の権限を付与したい場合。
ユーザーポリシー構文
ポリシー文法
バケットポリシーと同様に、ユーザーポリシーもJSON言語を使用して記述し、アクセスポリシー言語の統一ルール(プリンシパル、エフェクト、アクション、リソース、条件など)に従います。ただし、ユーザーポリシーはユーザー/ユーザーグループに直接バインドされるため、ユーザーポリシーではプリンシパル(Principal)の入力は不要です。 次の表はユーザーポリシーとバケットポリシーとの違いを比較したものです。
バケットポリシーの例
以下は、典型的なユーザーポリシーの例です。このポリシーは、広州にあるバケットexamplebucket-1250000000のすべてのCOS操作権限を付与するポリシーです。ポリシーを保存した後、さらにCAMのサブユーザー、ユーザーグループまたはロールにバインドすることで発効します。 {
"statement": [
{
"effect": "Allow",
"action": ["cos:*"],
"resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"
]
}
],
"version": "2.0"
}
ユーザーポリシーによるサブアカウントへのCOSアクセス権限承認
前提条件
CAMサブアカウントを作成済みであることが必要です。作成方法についてはサブアカウントの作成をご参照ください。 設定手順
CAMではプリセットポリシーとカスタムポリシーをご提供しています。プリセットポリシーはCAMの提供するシステムプリセットポリシーであり、COS関連ポリシーについてはプリセットポリシーをご覧ください。カスタムポリシーはユーザーがリソース、アクションなどの要素を自ら定義することができ、よりフレキシブルです。カスタムポリシーを新規作成し、サブアカウントへの権限承認を行う方法については以下でご説明します。 2. ポリシー > カスタムポリシーの新規作成 > ポリシー構文で作成を選択し、ポリシー作成ページに進みます。
3. 実際のニーズに応じて空白テンプレートを選択して権限承認ポリシーをカスタマイズするか、またはCOSにバインドされたシステムテンプレートを選択します。ここでは空白テンプレートを例にとります。
4. 空白テンプレートを選択し、次へをクリックして、ポリシーを入力してください。以下の基本要素を含める必要があります。
resource:権限を承認するリソース。
すべてのリソース("*")
指定するバケット("qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*")
バケット内の指定するディレクトリまたはオブジェクト("qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/test/*")
action:権限を承認するアクション。
effect:エフェクト。"allow"(許可)または"deny"(拒否)を選択します。
condition:発効条件。オプションです。
COSはユーザーポリシーの例をご提供しています。次のドキュメントをご参照の上、ポリシーの内容をコピーしてポリシー内容のエディタボックス内に貼り付け、入力に間違いがないことを確認してから完了をクリックします。
5. 作成完了後、CAMコンソールのポリシー > カスタムポリシーで、作成したカスタムポリシーを確認し、ポリシーをサブアカウントにバインドすることができます。 6. サブアカウントにチェックを入れ、OKをクリックして権限を承認すると、限定されたCOSリソースにサブアカウントを使用してアクセスできるようになります。
プリセットポリシー
1. CAMではいくつかのプリセットポリシーをご提供しています。CAMコンソールのポリシー > プリセットポリシーで確認し、「COS」を検索してフィルタリングすることができます。 2. ポリシー名をクリックし、ポリシー構文 > JSONに進み、具体的なポリシーの内容を確認します。プリセットポリシーのリソース(resource)はCOSのすべてのリソース("*")に設定されており、変更はサポートされていません。COSバケット、オブジェクトの一部について権限を承認したい場合は、JSONのプリセットポリシーをコピーし、カスタムポリシーを作成することができます。 表1と表2に、CAMがご提供するCOS関連のプリセットポリシーとその説明について列記します。
表1:COSプリセットポリシー
|
QcloudCOSBucketConfigRead | この権限を有するユーザーはCOSバケット設定を読み取ることができます | { "version": "2.0", "statement": [ { "effect": "allow", "action": [ "cos:PutBucket*" ], "resource": "*" } ] }
|
QcloudCOSBucketConfigWrite | この権限を有するユーザーはCOSバケット設定を変更することができます |
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "cos:PutBucket*" ], "resource": "*" } ] }
|
QcloudCOSDataFullControl | COSバケット内のデータの読み取り、書き込み、削除、リストアップを含むアクセス権限 |
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "cos:GetService", "cos:GetBucket", "cos:ListMultipartUploads", "cos:GetObject*", "cos:HeadObject", "cos:GetBucketObjectVersions", "cos:OptionsObject", "cos:ListParts", "cos:DeleteObject", "cos:PostObject", "cos:PostObjectRestore", "cos:PutObject*", "cos:InitiateMultipartUpload", "cos:UploadPart", "cos:UploadPartCopy", "cos:CompleteMultipartUpload", "cos:AbortMultipartUpload", "cos:DeleteMultipleObjects" ], "resource": "*" } ] }
|
表2:COSの操作とプリセットポリシーとの関係
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| PutBucket* | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| ListParts InitiateMultipartUpload UploadPart UploadPartCopy CompleteMultipartUpload AbortMultipartUpload ListMultipartUploads | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
その他のユーザーポリシーの例