Sintaxe da Política

A sintaxe geral de uma instrução de política é a seguinte:

Allow <subject> to <verb> <resource-type> in <location> where <conditions>

Os espaços sobressalentes ou quebras de linha na instrução não têm efeito.

Para saber os limites sobre o número de políticas e instruções, consulte Limites de Serviço.

Assunto

Especifique um ou mais grupos separados por vírgulas por nome ou OCID. Ou especifique any-group para abranger todos os usuários, principais de instância e principais de recursos na tenancy.

Sintaxe:{{ group <group_name> | group id <group_ocid> | dynamic-group <dynamic-group_name> | dynamic-group id <dynamic-group_ocid>| any-group | any-user}}

Observação

Qualquer usuário concederá acesso a todos os usuários, controladores de recursos e controladores de instância em sua tenancy e controlador de serviços. Recomendamos não usar any-user e, em vez disso, usar any-group. Como alternativa, você pode especificar o tipo de recurso para evitar que princpals desnecessários tenham acesso. Por exemplo, {request.principal.type='disworkspace'}.

Exemplos:

  • Para especificar um único grupo por nome:
    Allow 
    
    group A-Admins
    
     to manage all-resources in compartment Project-A
  • Para especificar vários grupos por nome (um espaço após a vírgula é opcional):
    Allow 
    
    group A-Admins, B-Admins
    
     to manage all-resources in compartment Projects-A-and-B
  • Para especificar um único grupo por OCID (o OCID é reduzido para agilizar):
    Allow group 
    
     id ocid1.group.oc1..aaaaaaaaqjihfhvxmum...awuc7i5xwe6s7qmnsbc6a 
    
    to manage all-resources in compartment Project-A
  • Para especificar vários grupos por OCID (os OCIDs são reduzidos para agilizar):
    Allow group 
    
     id ocid1.group.oc1..aaaaaaaaqjihfhvxmumrl...wuc7i5xwe6s7qmnsbc6a,
     id ocid1.group.oc1..aaaaaaaavhea5mellwzb...66yfxvl462tdgx2oecyq 
    
    to manage all-resources in compartment Projects-A-and-B
  • Para especificar qualquer grupo ou controlador de instâncias na tenancy ou especificar qualquer grupo para inspecionar usuários em uma tenancy:
    Allow any-group to inspect users in tenancy

Verbo

Especifique um único verbo. Para obter uma lista de verbos, consulte Verbos. Exemplo:

Allow group A-Admins to manage all-resources in compartment Project-A

Tipo de Recurso

Especifique um único tipo de recurso, que pode ser um dos seguintes:

  • Um tipo de recurso individual (por exemplo, vcns, subnets, instances, volumes etc.)
  • Um tipo de recurso da família (por exemplo, virtual-network-family, instance-family, volume-family etc.)
  • all-resources: abrange todos os recursos do compartimento (ou tenancy).

Um tipo de recurso de família abrange diversos componentes que são geralmente usados juntos. Isso facilita a gravação de uma política que dá a alguém acesso para trabalhar com vários aspectos da sua rede em nuvem.

Para obter uma lista dos tipos de recursos disponíveis, consulte Tipos de Recursos.

Sintaxe: <resource_type> | all-resources

Exemplos:

  • Para especificar um único tipo de recurso:
    Allow group HelpDesk to manage users in tenancy
  • Para especificar vários tipos de recursos, use instruções separadas:
    Allow group A-Users to manage instance-family in compartment Project-A
    
    Allow group A-Users to manage volume-family in compartment Project-A
    
  • Para especificar todos os recursos no compartimento (ou tenancy):
    Allow group A-Admins to manage all-resources in compartment Project-A

Local

Especifique um único compartimento ou caminho do compartimento por nome ou OCID. Ou especifique tenancy para abranger toda a tenancy. Lembre-se de que usuários, grupos e compartimentos residem na tenancy. As políticas podem residir (ou seja, estar associadas) na tenancy ou em um compartimento filho.

Nota

Concedendo Acesso a Regiões Específicas ou domínio de disponibilidade s

Para criar uma política que dá acesso a uma região ou domínio de disponibilidade específico, use a variável request.region ou request.ad com uma condição. Consulte Condições.

O local é necessário na instrução. Se quiser anexar uma política a um compartimento, você deverá estar nesse compartimento quando criar a política. Para obter mais informações, consulte Anexação de Políticas.

Para especificar um compartimento que não seja filho direto do compartimento ao qual você está anexando a política, especifique o caminho ao compartimento usando dois-pontos (:) como separador. Para obter mais informações, consulte Políticas e Hierarquias de Compartimento.

Sintaxe: [ tenancy | compartment <compartment_name> | compartment id <compartment_ocid> ]

Exemplos:

  • Para especificar um compartimento por nome:
    Allow group A-Admins to manage all-resources in compartment Project-A
  • Para especificar um compartimento por OCID:
    Allow group
     id ocid1.group.oc1..aaaaaaaaexampleocid to manage all-resources in compartment id ocid1.compartment.oc1..aaaaaaaaexampleocid
  • Para especificar vários compartimentos, use instruções separadas:
    Allow group InstanceAdmins to manage instance-family in compartment Project-A
    
    Allow group InstanceAdmins to manage instance-family in compartment Project-B
    
    
  • Para especificar vários compartimentos por OCID, use instruções separadas:
    Allow group id ocd1.group.oc1..aaaaaaaavheexampleocid to manage all-resources in compartment id ocid1.compartment.oc1..aaaaaaaayzexampleocid
    
    Allow group id ocd1.group.oc1..aaaaaaaaexampleocid to manage all-resources in compartment id ocid1.compartment.oc1..aaaaaexampledocid
  • Para especificar um compartimento que não seja um filho direto do compartimento no qual você está anexando a política, especifique o caminho:

    Allow group InstanceAdmins to manage instance-family in compartment Project-A:Project-A2

Condições

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

Operadores adicionais podem ser usados com variáveis baseadas em tempo. Consulte Restringindo o Acesso a Recursos com Base no Período.

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 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..aaaaaaaaexampleocid'
  • 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