Condições
Condições de sintaxe que podem ser usadas em políticas.
Especifique uma ou mais condições. Use any
ou all
com várias condições para um OR ou AND lógico, respectivamente.
Sintaxe de uma única condição: variable =|!= value
Sintaxe de várias condições: any|all {<condition>,<condition>,...}
A correspondência de condição não faz distinção entre maiúsculas e minúsculas. Isso é importante lembrar ao gravar condições de tipos de recursos que permitem a nomeação com distinção entre maiúsculas e minúsculas. Por exemplo, o serviço Object Storage permite que você crie um bucket chamado "BucketA" e um bucket chamado "bucketA" no mesmo compartimento. Se você gravar uma condição que especifica "BucketA", ela também será aplicada ao "bucketA", pois a correspondência de condições não faz distinção entre maiúsculas e minúsculas.
Para obter uma lista de variáveis suportadas por todos os serviços, consulte Variáveis Gerais para Todas as Solicitações. Consulte também os detalhes de cada serviço na Referência de Política. Estes são os tipos de valores que você pode usar nas condições:
Tipo | Exemplos |
---|---|
String |
(é obrigatório o uso de aspas simples no valor) |
Padrão |
|
Exemplos:
Nos exemplos a seguir, as instruções que especificam a condição não permitem que o GroupAdmins liste todos os usuários e grupos; portanto, as instruções que incluem o verbo
inspect
são adicionadas para integralidade. Para entender por que isso é necessário, consulte Variáveis que não se Aplicam a um Resultado da Solicitação em uma Solicitação Recusada. - Uma única condição.
A política a seguir permite que o grupo GroupAdmins crie, atualize ou exclua quaisquer grupos com nomes que comecem com "A-Users-":
Allow group GroupAdmins to manage groups in tenancy where target.group.name = /A-Users-*/ Allow group GroupAdmins to inspect groups in tenancy
A política a seguir permite que o grupo GroupAdmins gerencie a associação de qualquer grupo além do grupo Administradores. (Observe que você deverá incluir instruções separadas para o acesso
inspect
porque a variáveltarget.group.name
não é usada pelas operações ListUsers e 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'
A política a seguir permite que o grupo NetworkAdmins gerencie redes na nuvem em qualquer compartimento, exceto o especificado:Allow group NetworkAdmins to manage virtual-network-family in tenancy where target.compartment.id != 'ocid1.compartment.oc1..aaaaaaaayzfqeibduyox6icmdol6zyar3ugly4fmameq4h7lcdlihrvur7xq'
- Condições múltiplas.
A política a seguir permite que o GroupAdmins crie, atualize ou exclua quaisquer grupos cujos nomes comecem com "A-", exceto o próprio grupo 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