注意:ここでは主にTencent Real-Time CommunicationTRTCのCloud Access Management(CAM)機能関連コンテンツについて紹介します。他製品のCAM関連コンテンツについては、CAMサポート製品をご参照ください。
TRTCのCAMにおいてプリセットポリシーを使用して権限付与を行うのは簡便ではありますが、プリセットポリシーは権限制御の粒度が比較的粗く、TRTCアプリケーションやTencent Cloud APIの粒度まで細分化することができません。きめ細かい権限制御機能を必要とする場合は、カスタムポリシーを作成する必要があります。
カスタムポリシーを作成するには、さまざまな方法があります。次の表に、それぞれの方法の比較を示します。具体的な操作手順については、以下の文章をご参照ください。
エントリーの作成 | 作成方法 | 効果(Effect) | リソース(Resource) | 操作(Action) | 柔軟性 | 難易度 |
---|---|---|---|---|---|---|
CAMコンソール | ポリシージェネレーター | 手動選択 | 構文の記述 | 手動選択 | 中 | 中 |
CAMコンソール | ポリシー構文 | 構文の記述 | 構文の記述 | 構文の記述 | 高 | 高 |
CAMサーバーAPI | CreatePolicy | 構文の記述 | 構文の記述 | 構文の記述 | 高 | 高 |
説明:
- TRTCは、製品の機能またはアイテムに応じたカスタムポリシーの作成はサポートしていません。
- 手動選択とは、ユーザーがコンソールに表示される候補リストからオブジェクトを選択することを意味します。
- 構文の記述とは、アクセスポリシー構文によってオブジェクトを記述することを意味します。
上記のように、TRTC権限管理のリソース粒度はアプリケーションです。アプリケーションのポリシー構文の記述法は、CAMリソース記述法に従います。以下の例では、開発者のルートアカウントIDは12345678で、開発者は、SDKAppIDがそれぞれ1400000000、1400000001および1400000002のアプリケーションを3つ作成しています。
"resource": [
"qcs::trtc::uin/12345678:sdkappid/*"
]
"resource": [
"qcs::trtc::uin/12345678:sdkappid/1400000001"
]
"resource": [
"qcs::trtc::uin/12345678:sdkappid/1400000000",
"qcs::trtc::uin/12345678:sdkappid/1400000001"
]
上記のとおり、TRTCの権限管理の操作粒度はTencent Cloud APIです。詳細については、権限付与可能なリソースと操作をご参照ください。次の例では、DescribeAppStatList
(アプリケーションリストの取得)、DescribeSdkAppInfo
(アプリケーション情報の取得)などのTencent Cloud APIを例として取り上げています。
"action": [
"name/trtc:*"
]
"action": [
"name/trtc:DescribeAppStatList"
]
"action": [
"name/trtc:DescribeAppStatList",
"name/trtc:DescribeTrtcAppAndAccountInfo"
]
以下の例では、カスタムポリシーを作成します。このポリシーはサーバーAPIRemoveUser
を除くすべての操作を、TRTCアプリケーション1400000001で実行できます。
qcs::trtc::uin/12345678:sdkappid/1400000001
を入力します。RemoveUser
(検索機能で速やかに見つけられます)にチェックを入れます。qcs::trtc::uin/12345678:sdkappid/1400000001
を入力します。RemoveUser
操作を拒否する」というステートメントが表示されます。その後、このポリシーを他のサブアカウントに付与する方法は、TRTCの完全な読み取り/書き込みアクセス権限を既存のサブアカウントに付与すると同様です。
以下の例では、カスタムポリシーを作成します。このポリシーは、1400000001と1400000002という2つのTRTCサブアプリケーションですべての操作を実行できますが、1400000001のPRemoveUser
操作は拒否します。
Tencent Cloudルートアカウントとして、CAMコンソールの【ポリシー】にアクセスし、【カスタムポリシーの新規作成】をクリックします。
【ポリシー構文で作成】を選択し、ポリシー作成ページに進みます。
【テンプレートタイプの選択】ボックスで【空白テンプレート】を選択します。
説明:ポリシーテンプレートは、新しいポリシーが既存のポリシー(プリセットポリシーまたはカスタムポリシー)をコピーしてから、それをベースとして調整が行われることを意味します。実際の使用においては、開発者は状況に応じて適切なポリシーテンプレートを選択することで、ポリシー内容の難しい入力と作業の負荷を軽減することができます。
【次のステップ】をクリックし、必要に応じてポリシー名を変更します(または変更しなくてもかまいません)。
【ポリシー内容の編集】ボックスにポリシー内容を入力します。この例のポリシーの内容は次のとおりです。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"name/trtc:*"
],
"resource": [
"qcs::trtc::uin/12345678:sdkappid/1400000001",
"qcs::trtc::uin/12345678:sdkappid/1400000002"
]
},
{
"effect": "deny",
"action": [
"name/trtc:RemoveUser"
],
"resource": [
"qcs::trtc::uin/12345678:sdkappid/1400000001"
]
}
]
}
説明:ポリシーの内容は、CAMポリシー構文ロジックに従う必要があります。リソースと操作という2つの要素の構文は、それぞれ上述のリソース構文の記述と 操作構文の記述のとおりです。
【ポリシーの作成】をクリックして、カスタムポリシーの作成を完了します。
その後、このポリシーを他のサブアカウントに付与する方法は、TRTCの完全な読み取り/書き込みアクセス権限を既存のサブアカウントに付与すると同様です。
ほとんどの開発者にとって、コンソールで権限管理操作が完了すれば、ビジネスニーズが満たされたことになります。ただし、権限管理機能を自動化・システム化する必要がある場合は、サーバーAPIを使用することができます。
ポリシー関連のサーバーAPIはCAMに属します。詳細については、CAM公式ウェブサイトドキュメントをご参照ください。ここには、いくつかの主なインターフェースだけをリストアップしています。
この記事はお役に立ちましたか?