キュー・ポリシー
Oracle Cloud Infrastructure Identity and Access Management (IAM)サービスを使用してキューのポリシーを作成します。
このトピックでは、キュー・サービスへのアクセスを制御するポリシーの記述に関する詳細を説明します。
ポリシー構文の概要
ポリシー・ステートメント全体の構文:
allow <subject> to <verb> <resource-type> in <location> where <condition>
たとえば、次のように指定できます。
-
<subject>
として、グループまたは動的グループの名前またはOCID。または、any-user
を使用して、テナンシ内のすべてのユーザーを含めることができます。 -
<subject>
に1つ以上の権限のアクセス権を付与するため、<verb>
として、inspect
、read
、use
およびmanage
。inspect
、read
、use
、manage
と進むに連れて、アクセス権のレベルは一般に高くなり、付与される権限は累積されます。たとえば、use
には、read
に加えて更新する権限が含まれます。 -
resource-type
にはリソースのファミリ(virtual-network-family
など)。または、vcns
やsubnets
など、ファミリ内の個々のリソースを指定できます。 -
<location>
として、コンパートメントの名前またはOCID。または、tenancy
を使用して、テナンシ全体を含めることができます。 -
<condition>
に1つ以上の条件。アクセス権を付与するためには、これが満たされる必要があります。複数の条件では、any
またはall
を使用できます。1つの条件は1つ以上の変数で構成されます。変数は、リクエスト自体(
request.operation
など)またはリクエストで処理されるリソース(target.queue.id
など)に関連するものを使用できます。たとえば、グループが特定のワークスペースのみを管理できるようにするには:allow group <group-name> to manage queues in compartment <compartment-name> where target.queue.id = '<queue-ocid>'
または、グループがテナンシ内のすべてのキュー・リソースを管理できるようにするには:
allow group <group-name> to manage queues in tenancy
リソース・タイプ
ユーザーにキュー・リソースへのアクセス権を付与するには、キュー・リソース・タイプを含むIAMポリシーを作成します。
すべてのキュー・リソースにアクセスするには、queues
リソース・タイプを使用します。
ユーザーがキューを管理しないが、キューに作成したりキューから消費したりする場合は、次の個別のリソース・タイプを使用します:
queue-push
queue-pull
詳細は、ポリシーの例を参照してください。
サポートされている変数
キュー・サービスでは、すべての一般的な変数に加えて、ここにリストされている変数がサポートされています。
OCIサービスでサポートされる一般的な変数の詳細は、すべてのリクエストの一般的な変数を参照してください。
変数 | 変数タイプ | ソース |
---|---|---|
target.queue.id |
エンティティ(OCID) | リクエスト |
target.queue.name |
文字列 | リクエスト |
動詞+リソース・タイプの組合せの詳細
ポリシーの作成には、様々なOracle Cloud Infrastructure動詞およびリソース・タイプを使用できます。
次の表に、キューの各動詞でカバーされている権限およびAPI操作を示します。アクセスのレベルは、inspect
からread
、use
、manage
の順に累積します。表のセルのプラス記号(+)
は、そのすぐ上のセルと比較して増分アクセスを示しますが、「追加なし」は増分アクセスを示しません。
動詞 | 権限 | 全部カバーされるAPI | 一部カバーされるAPI |
---|---|---|---|
inspect |
QUEUE_INSPECT |
|
なし |
read |
INSPECT + QUEUE_READ |
INSPECT +
|
なし |
use |
READ + QUEUE_UPDATE QUEUE_PRODUCE QUEUE_CONSUME |
READ +
|
なし |
manage |
USE + QUEUE_CREATE QUEUE_DELETE QUEUE_MOVE |
USE +
|
なし |
動詞 | 権限 | 全部カバーされるAPI | 一部カバーされるAPI |
---|---|---|---|
inspect |
なし |
なし |
なし |
read |
なし |
なし |
なし |
use |
QUEUE_PRODUCE |
|
なし |
manage |
なし |
なし |
なし |
動詞 | 権限 | 全部カバーされるAPI | 一部カバーされるAPI |
---|---|---|---|
inspect |
なし |
なし |
なし |
read |
なし |
なし |
なし |
use |
QUEUE_CONSUME |
|
なし |
manage |
なし |
なし |
なし |
API操作ごとに必要な権限
次の表に、キューのAPI操作を、リソース・タイプ別にグループ化して論理的な順序で示します。
リソース・タイプは、queues
、queue-push
およびqueue-pull
です。
権限の詳細は、権限を参照してください。
API操作 | 操作の使用に必要な権限 |
---|---|
ListQueues |
QUEUE_INSPECT |
CreateQueue |
QUEUE_CREATE |
GetQueue |
QUEUE_READ |
DeleteQueue |
QUEUE_DELETE |
MoveQueue |
QUEUE_MOVE |
UpdateQueue |
QUEUE_UPDATE |
ListWorkRequests |
QUEUE_INSPECT |
GetWorkRequest |
QUEUE_READ |
ListWorkRequestErrors |
QUEUE_INSPECT |
ListWorkRequestLogs |
QUEUE_INSPECT |
GetStats |
QUEUE_READ |
ListChannels |
QUEUE_READ |
PutMessages |
QUEUE_PRODUCE |
GetMessages |
QUEUE_CONSUME |
UpdateMessage |
QUEUE_CONSUME |
DeleteMessage |
QUEUE_CONSUME |
ポリシーの例
例を使用してキューIAMポリシーについて学習します。
管理者の場合、次のポリシーにより、指定したグループはキューおよび関連するキュー・サービス・リソースに対するすべての操作を実行できます:
Allow QueueManagers to manage queues in compartment <compartment_name>
次のポリシーを使用して、指定したグループがキューに対して生成またはキューから消費できるようにします:
Allow QueueProducers to use queue-push in compartment <compartment_name>
Allow QueueConsumers to use queue-pull in compartment <compartment_name>
次のポリシーを使用して、指定したグループがキューの詳細を検査および読取りできるようにします:
Allow QueueReaders to read queues in compartment <compartment_name>