ご注意:
ここでは主にVideo on DemandのCloud Access Management(CAM)機能関連コンテンツについて紹介します。他製品のCAM関連コンテンツについては、CAMサポート製品をご参照ください。 CAMでの プリセットポリシー を使用した承認の実現は非常に便利ですが、権限制御の粒度が粗く、サブアプリケーションとAPIのレベルに細分化することができません。綿密な権限制御が要求される場合は、カスタムポリシーを作成する必要があります。 カスタムポリシーの作成方法
カスタムポリシーを作成するには、さまざまな方法があります。次の表に、それぞれの方法の比較を示します。具体的な操作手順については、以下の文章をご参照ください。
説明:
VODは製品機能に応じたカスタムポリシーの作成をサポートしていません。
手動選択とは、ユーザーがコンソールに表示される候補リストからオブジェクトを選択することを意味します。構文の記述とはポリシー構文を使用してオブジェクトを説明できることを意味します。
リソースのポリシー構文記述
上記のように、VOD権限管理のリソース粒度はサブアプリケーションです。サブアプリケーションのポリシー構文記述は CAM標準 に従います。以下の例は、開発者のルートアカウントIDが12345678、APPIDが1250000001(メインアプリケーションIDはAPPIDと同じ)であり、IDがそれぞれ1400000001と1400000002の2つのVODサブアプリケーションを作成したことを示します。 VODの全リソースのポリシー構文の記述
"resource": [
"qcs::vod::uin/12345678:subAppId/*"
]
メインアプリケーションのポリシー構文の記述
"resource": [
"qcs::vod::uin/12345678:subAppId/1250000001"
]
単一サブアプリケーションのポリシー構文の記述
"resource": [
"qcs::vod::uin/12345678:subAppId/1400000001"
]
メインアプリケーションと単一サブアプリケーションのポリシー構文の記述
"resource": [
"qcs::vod::uin/12345678:subAppId/1250000001",
"qcs::vod::uin/12345678:subAppId/1400000001"
]
操作のポリシー構文記述
上述のとおり、VOD権限管理の操作粒度はサーバーAPIです。以下の例では、DescribeMediaInfos、DescribeAllClassなどのサーバーAPIを例にとります。
-VODの全サーバーAPIのポリシー構文の記述
"action": [
"name/vod:*"
]
単一サーバーAPI操作のポリシー構文記述
"action": [
"name/vod:DescribeMediaInfos"
]
複数サーバーAPI操作のポリシー構文記述
"action": [
"name/vod:DescribeMediaInfos",
"name/vod:DescribeAllClass"
]
カスタムポリシーユースケース
ポリシージェネレーターの使用
以下の例では、カスタムポリシーを作成します。このポリシーはサーバーAPI ProcessMediaを除くすべての操作を、VODサブアプリケーション1400000001で実行できます。
2. 【ポリシージェネレーターで作成】を選択して、ポリシー作成ページに進みます。
3. サービスと操作を選択します。
【効果(Effect)】設定項目は、【許可】を選択します。
【サービス(Service)】設定項目で【VOD】を選択します。
【操作(Action)】設定項目は、すべての項目にチェックを入れます。
【リソース(Resource)】設定項目には リソース構文記述 の説明に従ってqcs::vod::uin/12345678:subAppId/1400000001を入力します。 【条件(Condition)】設定項目は設定不要です。
4. 【次のステップ】をクリックし、必要に応じてポリシー名を変更します(または変更しなくてもかまいません)。
5. 【完了】をクリックし、カスタムポリシーの作成を完了します。その後、 既存のサブユーザーへのVODの完全な権限の付与 と同じ方法で、このポリシーをサブユーザーに付与できます。
ポリシー構文の使用
以下の例では、カスタムポリシーを作成します。このポリシーは、1400000001と1400000002の2つのVODサブアプリケーションですべての操作を実行できますが、サブアプリケーション1400000001のProcessMedia操作を拒否します。
2. 【ポリシー構文で作成】を選択し、ポリシー作成ページに進みます。
3. 【テンプレートタイプの選択】ボックスで【空白テンプレート】を選択します。
説明:
ポリシーテンプレートは、新しいポリシーが既存のポリシー(プリセットポリシーまたはカスタムポリシー)をコピーしてから、それをベースとして調整が行われることを意味します。実際の使用においては、開発者は状況に応じて適切なポリシーテンプレートを選択することで、ポリシー内容の難しい入力と作業の負荷を軽減することができます。
4. 【次のステップ】をクリックし、必要に応じてポリシー名を変更します(または変更しなくてもかまいません)。
5. 【ポリシー内容の編集】ボックスにポリシー内容を入力します。この例のポリシーの内容は次のとおりです。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"name/vod:*"
],
"resource": [
"qcs::vod::uin/12345678:subAppId/1400000001",
"qcs::vod::uin/12345678:subAppId/1400000002"
]
},
{
"effect": "deny",
"action": [
"name/vod:ProcessMedia"
],
"resource": [
"qcs::vod::uin/12345678:subAppId/1400000001"
]
}
]
}
サーバーAPIの使用
ほとんどの開発者にとって、コンソールで権限管理操作が完了すれば、ビジネスニーズが満たされたことになります。ただし、権限管理機能を自動化・システム化する必要がある場合は、サーバー側APIを使用することができます。
ポリシー関連のサーバー側APIはCAMに属します。詳細については、CAM公式ウェブサイトドキュメントをご参照ください。ここには、いくつかの主なインターフェースだけをリストアップしています。