Tencent CloudルートアカウントはCloud Access Management(CAM)コンソールでCAMユーザーを作成し、ポリシーをバインドすることで、CAMユーザーに対しTencent Cloudのリソースを使用する権限を与えることができます。
ユーザーはCAMで、ルートアカウント下の異なるタイプのユーザーに対し、異なる権限を付与することができます。これらの権限はアクセスポリシー言語で記述し、ユーザーを出発点として権限承認を行うため、ユーザーポリシーと呼ばれます。
ユーザーポリシーとバケットポリシーの最大の違いは、ユーザーポリシーはエフェクト(Effect)、アクション(Action)、リソース(Resource)、条件(Condition、オプション)のみを記述し、プリンシパル(Principal)は記述しない点です。このため、ユーザーポリシーの使用方法は次のようになります。
ユーザーポリシーには、プリセットポリシーとカスタムポリシーの2種類が含まれます。プリセットポリシーを使用した権限のバインド、またはユーザーポリシーを自ら作成して権限のバインドを行うことができます。詳細については、CAMの権限承認ガイドをご参照ください。
ユーザーが行えること、および推奨されるユーザーポリシーについてお知りになりたい場合は、CAMユーザーを検索し、その所属するユーザーグループの権限を確認することで、ユーザーが何を行うことができるかを知ることができます。次のようなケースで推奨されます。
バケットポリシーと同様に、ユーザーポリシーもJSON言語を使用して記述し、アクセスポリシー言語の統一ルール(プリンシパル、エフェクト、アクション、リソース、条件など)に従います。ただし、ユーザーポリシーはユーザー/ユーザーグループに直接バインドされるため、ユーザーポリシーではプリンシパル(Principal)の入力は不要です。
次の表はユーザーポリシーとバケットポリシーとの違いを比較したものです。
要素 | ユーザーポリシー | バケットポリシー |
---|---|---|
プリンシパル | 入力不要 | 入力必須 |
エフェクト | 入力必須 | 入力必須 |
アクション | 入力必須 | 入力必須 |
リソース | 入力必須 | このバケット内のリソース |
条件 | オプション | オプション |
以下は、典型的なユーザーポリシーの例です。このポリシーは、広州にあるバケットexamplebucket-1250000000のすべてのCOS操作権限を付与するポリシーです。ポリシーを保存した後、さらにCAMのサブユーザー、ユーザーグループまたはロールにバインドすることで発効します。
{
"Statement": [
{
"Effect": "Allow",
"Action": ["cos:*"],
"Resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*",
"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/"
]
}
],
"Version": "2.0"
}
CAMサブアカウントを作成済みであることが必要です。作成方法についてはサブアカウントの作成をご参照ください。
CAMではプリセットポリシーとカスタムポリシーをご提供しています。プリセットポリシーはCAMの提供するシステムプリセットポリシーであり、COS関連ポリシーについてはプリセットポリシーをご覧ください。カスタムポリシーはユーザーがリソース、アクションなどの要素を自ら定義することができ、よりフレキシブルです。カスタムポリシーを新規作成し、サブアカウントへの権限承認を行う方法については以下でご説明します。
CAMコンソールにログインします。
ポリシー > カスタムポリシーの新規作成 > ポリシー構文で作成を選択し、ポリシー作成ページに進みます。
実際のニーズに応じて空白テンプレートを選択して権限承認ポリシーをカスタマイズするか、またはCOSにバインドされたシステムテンプレートを選択します。ここでは空白テンプレートを例にとります。
空白テンプレートを選択し、ポリシー構文を入力します。次の基本要素を含める必要があります。
resource:権限を承認するリソース。
"*"
)"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"
)"qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/test/*"
)action:権限を承認するアクション。
effect:エフェクト。"allow"
(許可)または"deny"
(拒否)を選択します。
condition:発効条件。オプションです。
COSはユーザーポリシーの例をご提供しています。次のドキュメントをご参照の上、ポリシーの内容をコピーしてポリシー内容のエディタボックス内に貼り付け、入力に間違いがないことを確認してから完了をクリックします。
作成完了後、CAMコンソールのポリシー > カスタムポリシーで、作成したカスタムポリシーを確認し、ポリシーをサブアカウントにバインドすることができます。
サブアカウントにチェックを入れ、OKをクリックして権限を承認すると、限定されたCOSリソースにサブアカウントを使用してアクセスできるようになります。
resource
)はCOSのすべてのリソース("*"
)に設定されており、変更はサポートされていません。COSバケット、オブジェクトの一部について権限を承認したい場合は、JSONのプリセットポリシーをコピーし、カスタムポリシーを作成することができます。表1と表2に、CAMがご提供するCOS関連のプリセットポリシーとその説明について列記します。
表1:COSプリセットポリシー
プリセットポリシー | 説明 | JSONポリシー |
---|---|---|
QcloudCOS Bucket ConfigRead |
この権限を有するユーザーはCOSバケット設定を読み取ることができます |
|
QcloudCOS Bucket ConfigWrite |
この権限を有するユーザーはCOSバケット設定を変更することができます |
|
QcloudCOS Data FullControl |
COSバケット内のデータの読み取り、書き込み、削除、リストアップを含むアクセス権限 |
|
表2:COSの操作とプリセットポリシーとの関係
説明 | 操作 | QcloudCOS Bucket ConfigRead |
QcloudCOS Bucket ConfigWrite |
QcloudCOS Data FullControl |
QcloudCOS Data ReadOnly |
QcloudCOS Data WriteOnly |
QcloudCOS Full Access |
QcloudCOS GetService Access |
QcloudCOS ListOnly |
QcloudCOS Read OnlyAccess |
---|---|---|---|---|---|---|---|---|---|---|
バケットリストアップ | GetService | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
バケット作成 | PutBucket | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
バケット削除 | DeleteBucket | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
バケット基本情報取得 | HeadBucket | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
バケット設定項目取得 | GetBucket* | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
バケット設定項目変更 | GetBucket* | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
バケットアクセス権限取得 | GetBucketAcl | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
バケットアクセス権限変更 | PutBucketAcl | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
バケット内オブジェクトリストアップ | GetBucket | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
バケット内オブジェクトの全バージョンリストアップ | GetBucketObjectVersions | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
オブジェクトアップロード | PutObject | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
マルチパートアップロード | ListParts InitiateMultipartUpload UploadPart UploadPartCopy CompleteMultipartUpload AbortMultipartUpload ListMultipartUploads |
❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
オブジェクト追加 | AppendObject | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
オブジェクトダウンロード | GetObject | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
オブジェクトメタデータ確認 | HeadObject | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ |
クロスドメイン(CORS)事前チェック | OptionsObject | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ |
この記事はお役に立ちましたか?