キュー・ポリシー

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> として、inspectreaduseおよびmanage

    inspectreadusemanageと進むに連れて、アクセス権のレベルは一般に高くなり、付与される権限は累積されます。たとえば、useには、readに加えて更新する権限が含まれます。

  • resource-typeにはリソースのファミリ(virtual-network-familyなど)。または、vcnssubnetsなど、ファミリ内の個々のリソースを指定できます。

  • <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からreadusemanageの順に累積します。表のセルのプラス記号(+)は、そのすぐ上のセルと比較して増分アクセスを示しますが、「追加なし」は増分アクセスを示しません。

queue
動詞 権限 全部カバーされるAPI 一部カバーされるAPI
inspect

QUEUE_INSPECT

ListQueues

ListWorkRequests

ListWorkRequestErrors

ListWorkRequestLogs

なし

read

INSPECT +

QUEUE_READ

INSPECT +

GetQueue

GetWorkRequest

GetStats

ListChannels

なし

use

READ +

QUEUE_UPDATE

QUEUE_PRODUCE

QUEUE_CONSUME

READ +

UpdateQueue

PutMessages

GetMessages

UpdateMessage

DeleteMessage

なし

manage

USE +

QUEUE_CREATE

QUEUE_DELETE

QUEUE_MOVE

USE +

CreateQueue

DeleteQueue

MoveQueue

なし

queue-push
動詞 権限 全部カバーされるAPI 一部カバーされるAPI
inspect

なし

なし

なし

read

なし

なし

なし

use

QUEUE_PRODUCE

PutMessages

なし

manage

なし

なし

なし

queue-pull
動詞 権限 全部カバーされるAPI 一部カバーされるAPI
inspect

なし

なし

なし

read

なし

なし

なし

use

QUEUE_CONSUME

GetMessages

UpdateMessage

DeleteMessage

なし

manage

なし

なし

なし

API操作ごとに必要な権限

次の表に、キューのAPI操作を、リソース・タイプ別にグループ化して論理的な順序で示します。

リソース・タイプは、queuesqueue-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>