Conditions

Conditions de syntaxe que vous pouvez utiliser dans les stratégies.

Indiquez des conditions. Utilisez any ou all avec les conditions multiples pour un opérateur logique OR ou AND, respectivement.

Syntaxe pour une condition unique : variable =|!= value

Syntaxe pour des conditions multiples : any|all {<condition>,<condition>,...}

Important

La mise en correspondance de conditions ne tient pas compte de la casse. Gardez ce point à l'esprit lorsque vous écrivez des conditions pour les types de ressource qui utilisent la dénomination avec respect de la casse. Par exemple, le service Object Storage permet de créer un bucket nommé "BucketA" et un bucket nommé "bucketA" dans le même compartiment. Si vous écrivez une condition indiquant "BucketA", elle s'appliquera également à "bucketA" car la mise en correspondance de conditions ne fait pas la distinction entre les majuscules et les minuscules.

Pour obtenir la liste des variables prises en charge par tous les services, reportez-vous à Variables générales pour toutes les demandes. Reportez-vous également aux détails de chaque service dans la référence de stratégie. Voici les types de valeur que vous pouvez utiliser dans les conditions :

Type Exemples
Chaîne

'johnsmith@example.com'

'ocid1.compartment.oc1..aaaaaaaaph...ctehnqg756a'

(les apostrophes sont requises autour de la valeur)

Modèle

/HR*/ (correspond aux chaînes qui commencent par "HR")

/*HR/ (correspond aux chaînes qui se terminent par "HR")

/*HR*/ (correspond aux chaînes qui contiennent "HR")

Exemples :

Remarque

Dans les exemples suivants, les instructions qui indiquent la condition ne permettent pas à GroupAdmins de répertorier l'ensemble des utilisateurs et des groupes. Par conséquent, les instructions comprenant le verbe inspect sont ajoutées à des fins d'exhaustivité. Pour comprendre pourquoi cela est requis, reportez-vous à Variables non applicables à une demande donnant lieu au refus de la demande.
  • Une seule condition.

    La stratégie suivante permet au groupe GroupAdmins de créer, de mettre à jour ou de supprimer des 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 stratégie suivante permet au groupe GroupAdmins de gérer l'appartenance de n'importe quel groupe, à l'exception du groupe Administrators. (Vous devez inclure des instructions distinctes pour l'accès inspect car la variable target.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 stratégie suivante permet au groupe NetworkAdmins de gérer les réseaux cloud dans n'importe quel compartiment, à l'exception de celui indiqué :
    Allow group NetworkAdmins to manage virtual-network-family in tenancy where target.compartment.id != 'ocid1.compartment.oc1..aaaaaaaayzfqeibduyox6icmdol6zyar3ugly4fmameq4h7lcdlihrvur7xq'
  • Plusieurs conditions.

    La stratégie suivante permet à GroupAdmins de créer, de mettre à jour ou de supprimer tous les groupes dont le nom commence par "A-", à l'exception du groupe A-Admins :

    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