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>,...}

Importante:

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

'johnsmith@example.com'

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

(é obrigatório o uso de aspas simples no valor)

Padrão

/HR*/ (corresponde às strings que começam com "HR")

/*HR/ (corresponde às strings que terminam com "HR")

/*HR*/ (corresponde às strings que contêm "HR")

Exemplos:

Observação:

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ável target.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