Stratégies Queue
Utilisez le service Oracle Cloud Infrastructure Identity and Access Management (IAM) afin de créer desstratégies pour vos files d'attente.
Cette rubrique traite des détails relatifs à l'écriture de stratégies visant à contrôler l'accès au service Queue.
Lors de l'écriture de stratégies, notez que le service Queue prend en charge l'authentification à l'aide des méthodes suivantes :
- Nom utilisateur et jeton d'authentification : pris en charge pour l'API REST et le protocole STOMP.
- Principal d'instance : pris en charge pour l'API REST uniquement (l'instance de calcul doit être affectée à un groupe dynamique).
Présentation de la syntaxe de stratégie
La syntaxe générale d'une instruction de stratégie est la suivante :
allow <subject> to <verb>
<resource-type> in <location> where <condition>
Voici des exemples de ce que vous pouvez indiquer :
-
Un groupe ou un groupe dynamique par son nom ou son OCID en tant que
<subject>. Vous pouvez également utiliserany-userpour couvrir tous les utilisateurs dans la location. -
inspect,read,useetmanageen tant que<verb>pour accorder à<subject>des droits d'accès.Lorsque vous passez de
inspectàread, puis àuse, puis àmanage, le niveau d'accès augmente généralement et les droits d'accès octroyés sont cumulés. Par exemple,useinclutreadet autorise en plus la mise à jour. -
Une famille de ressources telle que
virtual-network-familypourresource-type. Vous pouvez également indiquer une ressource individuelle d'une famille telle quevcnsousubnets. -
Un compartiment par son nom ou son OCID en tant que
<location>. Vous pouvez également utilisertenancypour couvrir l'intégralité de la location. -
Des conditions dans
<condition>, qui doivent être remplies pour que l'accès soit accordé. Pour les conditions multiples, vous pouvez utiliseranyouall.Une condition se compose de variables. Une variable peut être pertinente pour la demande elle-même (par exemple,
request.operation) ou pour la ressource faisant l'objet d'une action dans la demande (par exemple,target.queue.id). Par exemple, pour autoriser un groupe à gérer un espace de travail spécifique et aucun autre espace de travail :allow group <group-name> to manage queues in compartment <compartment-name> where target.queue.id = '<queue-ocid>'Sinon, pour autoriser un groupe à gérer toutes les ressources Queue dans la location, utilisez la commande suivante :
allow group <group-name> to manage queues in tenancy
Pour plus d'informations sur la création de stratégies, reportez-vous à Introduction aux stratégies et à Référence de stratégie.
Types de ressource
Pour accorder aux utilisateurs l'accès aux ressources Queue, créez des stratégies IAM avec des types de ressource Queue.
Pour accéder à toutes les ressources Queue, utilisez le type de ressource queues.
Si vous ne voulez pas que les utilisateurs gèrent les files d'attente mais que vous voulez qu'ils génèrent des messages vers une file d'attente ou qu'ils utilisent des messages d'une file d'attente, servez-vous des types individuels de ressource suivants :
-
queue-push -
queue-pull
Pour plus d'informations, reportez-vous à Exemples de stratégie.
Variables prises en charge
Le service Queue prend en charge toutes les variables générales ainsi que celles répertoriées ici.
Pour plus d'informations sur les variables générales prises en charge par les services OCI, reportez-vous à Variables générales pour toutes les demandes.
| Variable | Type de variable | Source |
|---|---|---|
target.queue.id
|
Entité (OCID) | Demande |
target.queue.name
|
Chaîne (String) | Demande |
Détails des combinaisons de verbe et de type de ressource
Vous pouvez utiliser différents verbes et types de ressource Oracle Cloud Infrastructure pour créer une stratégie.
Les tableaux suivants indiquent les droits d'accès et les opérations d'API couverts par chaque verbe pour Queue. Le niveau d'accès est cumulatif à mesure que vous passez d'un verbe à l'autre, dans l'ordre suivant : inspect, read, use, manage. Le signe plus (+) dans une cellule du tableau indique un accès incrémentiel par rapport à la cellule directement au-dessus, alors que la mention "aucun élément supplémentaire" n'indique aucun accès incrémentiel.
| Verbes | Droits d'accès | API entièrement couvertes | API partiellement couvertes |
|---|---|---|---|
| inspect |
QUEUE_INSPECT |
|
aucune |
| read |
INSPECT + QUEUE_READ |
INSPECT +
|
aucune |
| use |
READ + QUEUE_UPDATE QUEUE_PRODUCE QUEUE_CONSUME |
READ +
|
aucune |
| manage |
USE + QUEUE_CREATE QUEUE_DELETE QUEUE_MOVE |
USE +
|
aucune |
| Verbes | Droits d'accès | API entièrement couvertes | API partiellement couvertes |
|---|---|---|---|
| inspect |
aucune |
aucune |
aucune |
| read |
aucune |
aucune |
aucune |
| use |
QUEUE_PRODUCE |
|
aucune |
| manage |
aucune |
aucune |
aucune |
| Verbes | Droits d'accès | API entièrement couvertes | API partiellement couvertes |
|---|---|---|---|
| inspect |
aucune |
aucune |
aucune |
| read |
aucune |
aucune |
aucune |
| use |
QUEUE_CONSUME |
|
aucune |
| manage |
aucune |
aucune |
aucune |
Droits d'accès requis pour chaque opération d'API
Le tableau suivant répertorie les opérations d'API pour Queue dans un ordre logique, regroupées par type de ressource.
Les types de ressource sont queues, queue-push et queue-pull.
Pour plus d'informations sur les droits d'accès, reportez-vous à Droits d'accès.
| Opération d'API | Droits d'accès requis pour utiliser l'opération |
|---|---|
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 |
CreateConsumerGroup |
QUEUE_CONSUMER_GROUP_CREATE |
DeleteConsumerGroup | QUEUE_CONSUMER_GROUP_DELETE |
GetConsumerGroup | QUEUE_CONSUMER_GROUP_READ |
UpdateConsumerGroup | QUEUE_CONSUMER_GROUP_UPDATE |
ListConsumerGroups | QUEUE_CONSUMER_GROUP_INSPECT |
Stratégies pour les groupes de destinataires
Définissez les autorisations afin que différentes personnes ou applications puissent utiliser les files d'attente et les groupes de consommateurs comme elles le souhaitent.
Vous devez autoriser différentes équipes ou applications à travailler avec des groupes de consommateurs et de fans de file d'attente. Voici quelques exemples .
Autoriser la gestion complète des files d'attente et des groupes de destinataires
Utilisez ceci si quelqu'un a besoin de tout faire. faire des files d'attente, activer fanout et gérer tous les groupes de consommateurs de ressources.
allow group QueueAdmins to manage queues in compartment <compartment-name>
allow group QueueAdmins to manage queue-consumer-groups in compartment <compartment-name>
Autorisations accordées :
- QUEUE_CONSUMER_GROUP_CREATE
- QUEUE_CONSUMER_GROUP_UPDATE
- QUEUE_CONSUMER_GROUP_DELETE
- QUEUE_CONSUMER_GROUP_READ
- QUEUE_CONSUMER_GROUP_INSPECT
Autoriser l'accès en lecture seule aux groupes de destinataires
Utilisez cette option lorsque vous voulez que quelqu'un ne regarde que les groupes de consommateurs de ressources et leurs paramètres, aucune modification n'est autorisée.
allow group QueueAuditors to inspect queue-consumer-groups in compartment <compartment-name>
allow group QueueAuditors to read queue-consumer-groups in compartment <compartment-name>
Autorisations accordées :
- QUEUE_CONSUMER_GROUP_INSPECT
- QUEUE_CONSUMER_GROUP_READ
Autoriser la gestion des groupes de destinataires mais pas des files d'attente
Utilisez-le pour les équipes qui organisent et configurent des groupes de consommateurs de ressources et des filtres, mais qui ne doivent pas gâcher les files d'attente elles-mêmes.
allow group FanoutOperators to manage queue-consumer-groups in compartment <compartment-name>
Autorisations accordées :
- QUEUE_CONSUMER_GROUP_CREATE
- QUEUE_CONSUMER_GROUP_UPDATE
- QUEUE_CONSUMER_GROUP_DELETE
- QUEUE_CONSUMER_GROUP_READ
- QUEUE_CONSUMER_GROUP_INSPECT
Autoriser les émetteurs à envoyer des messages aux files d'attente (aucun accès au groupe de destinataires)
Utilisez ceci pour les applications qui ont juste besoin d'envoyer des messages (push) dans une file d'attente, mais ne lisent pas ou ne voient pas les détails du groupe.
allow dynamic-group QueueProducers to use queue-push in compartment <compartment-name>
Autorisations accordées :
- QUEUE_PRODUCE
Autoriser les consommateurs à consommer à partir d'un groupe de consommateurs spécifique
Utilisez-le pour les applications ou les équipes qui ne doivent extraire que les messages d'un certain groupe de destinataires et ne pas en voir d'autres.
allow dynamic-group AppConsumers to use queue-pull in compartment <compartment-name>
where target.consumer-group.id = '<consumer_group_ocid>'
Autorisations accordées :
- QUEUE_CONSUME
Autoriser les consommateurs à consommer à partir de n'importe quel groupe de consommateurs dans un compartiment
Utilisez cette option lorsqu'une application ou un service doit extraire des messages de n'importe quel groupe du même compartiment.
allow dynamic-group SharedConsumers to use queue-pull in compartment <compartment-name>
Autorisations accordées :
- QUEUE_CONSUME
Autoriser les opérateurs à inspecter les files d'attente mais à gérer entièrement les groupes de destinataires
Utilisez ces stratégies pour les personnes qui ont besoin de voir les détails de la file d'attente et qui souhaitent également organiser entièrement les groupes de consommateurs de ressources et les filtres.
allow group FanoutOperators to inspect queues in compartment <compartment-name>
allow group FanoutOperators to manage queue-consumer-groups in compartment <compartment-name>
Autorisations accordées :
- Inspecter les files d'attente
- QUEUE_CONSUMER_GROUP_CREATE
- QUEUE_CONSUMER_GROUP_UPDATE
- QUEUE_CONSUMER_GROUP_DELETE
- QUEUE_CONSUMER_GROUP_READ
- QUEUE_CONSUMER_GROUP_INSPECT
Autoriser les propriétaires de file d'attente à activer la ventilation mais déléguer la gestion des groupes de consommateurs de ressources
Utilisez cette option pour les équipes où les propriétaires de file d'attente gèrent les files d'attente, mais où les équipes d'application gèrent la configuration des groupes de consommateurs de ressources.
Propriétaires de la file d'attente :
allow group QueueOwners to manage queues in compartment <compartment-name>
Equipes d'application :
allow group AppTeams to manage queue-consumer-groups in compartment <compartment-name>
Autorisations accordées :
- QUEUE_CONSUMER_GROUP_CREATE
- QUEUE_CONSUMER_GROUP_UPDATE
- QUEUE_CONSUMER_GROUP_DELETE
- QUEUE_CONSUMER_GROUP_READ
- QUEUE_CONSUMER_GROUP_INSPECT
Meilleures pratiques
- Donnez à chaque équipe ou application uniquement les autorisations dont elle a besoin.
- Utilisez
target.consumer-group.idpour limiter les utilisateurs autorisés à lire à partir d'un groupe. - Si possible, séparez les rôles de producteur, de consommateur et de fan-out manager.
- N'accordez un accès complet à la gestion des files d'attente qu'à ceux qui en ont besoin.
- Les groupes dynamiques sont utiles pour les applications ou les services automatisés nécessitant des autorisations spéciales.
Exemples de stratégie
Découvrez les stratégies IAM pour Queue à l'aide d'exemples.
Pour les administrateurs. La stratégie suivante permet au groupe spécifié d'effectuer toutes les opérations relatives aux files d'attente et aux ressources associées du service Queue :
Allow QueueManagers to manage queues in compartment <compartment_name>
Utilisez les stratégies suivantes pour permettre à un groupe spécifié de générer des messages vers une file d'attente ou d'utiliser des messages d'une file d'attente :
Allow QueueProducers to use queue-push in compartment <compartment_name>
Allow QueueConsumers to use queue-pull in compartment <compartment_name>
Utilisez la stratégie suivante pour permettre à un groupe spécifié d'inspecter et de lire les détails d'une file d'attente :
Allow QueueReaders to read queues in compartment <compartment_name>