Conditions
Conditions de syntaxe que vous pouvez utiliser dans les politiques.
Spécifiez une ou plusieurs conditions. Utilisez any
ou all
avec plusieurs conditions pour un opérateur logique OR ou AND, respectivement.
Syntaxe pour une seule condition : variable =|!= value
Syntaxe pour plusieurs conditions : any|all {<condition>,<condition>,...}
La correspondance des conditions n'est pas sensible à la casse. Il est important de s'en rappeler lors de l'écriture de conditions pour des types de ressource qui permettent une attribution de nom sensible à la casse. Par exemple, le service Stockage d'objets permet de créer à la fois un seau nommé "BucketA" et un seau nommé "bucketA" dans le même compartiment. Si vous écrivez une condition qui spécifie "BucketA", elle s'appliquera également à "bucketA" car la correspondance de condition n'est pas sensible à la casse.
Pour une liste des variables prises en charge par tous les services, voir Variables générales pour toutes les demandes. Voir aussi les informations détaillées pour chaque service sous Informations de référence sur les politiques. Voici les types de valeur que vous pouvez utiliser dans des conditions :
Type | Exemples |
---|---|
Chaîne |
(Des guillemets simples doivent encadrer la valeur) |
Modèle |
|
Exemples :
Dans les exemples suivants, comme les énoncés qui spécifient la condition ne permettent pas à GroupAdmins de lister réellement tous les utilisateurs et les groupes, les énoncés qui incluent le verbe
inspect
sont ajoutés à des fins d'exhaustivité. Pour comprendre pourquoi ces énoncés sont requis, voir Variables qui ne s'appliquent pas aux résultats d'une demande refusée. - Une seule condition.
La politique suivante permet au groupe GroupAdmins de créer, de mettre à jour ou de supprimer les groupes dont le nom commence par "A-Users-" :
Allow group GroupAdmins to manage groups in tenancy where target.group.name = /A-Users-*/ Allow group GroupAdmins to inspect groups in tenancy
La politique suivante permet au groupe GroupAdmins de gérer l'appartenance à n'importe quel groupe en plus du groupe Administrators. (Notez que vous devez inclure des énoncés distincts pour l'accès
inspect
, car la variabletarget.group.name
n'est pas utilisée par les opérations ListUsers et ListGroups) :Allow group GroupAdmins to inspect users in tenancy
Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to inspect groups in tenancy
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'
La politique suivante permet au groupe NetworkAdmins de gérer les réseaux en nuage dans n'importe quel compartiment, sauf celui spécifié :Allow group NetworkAdmins to manage virtual-network-family in tenancy where target.compartment.id != 'ocid1.compartment.oc1..aaaaaaaayzfqeibduyox6icmdol6zyar3ugly4fmameq4h7lcdlihrvur7xq'
- Conditions multiples.
La politique suivante permet à GroupAdmins de créer, mettre à jour ou supprimer des groupes dont le nom commence par "A-", à l'exception du groupe A-Admins lui-même :
Allow group GroupAdmins to manage groups in tenancy where all {target.group.name=/A-*/,target.group.name!='A-Admins'} Allow group GroupAdmins to inspect groups in tenancy