0% acharam este documento útil (0 voto)
55 visualizações7 páginas

Políticas IAM na OCI: Autorização e Sintaxe

IAM policies definem permissões granulares para recursos na OCI. Elas podem ser anexadas a compartimentos ou a toda a tenancy, controlando o acesso apenas aos recursos desse local ou de tudo dentro da tenancy, respectivamente. Por padrão, tudo é negado, então políticas precisam ser escritas para permitir ações específicas.

Enviado por

ugomarley
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
55 visualizações7 páginas

Políticas IAM na OCI: Autorização e Sintaxe

IAM policies definem permissões granulares para recursos na OCI. Elas podem ser anexadas a compartimentos ou a toda a tenancy, controlando o acesso apenas aos recursos desse local ou de tudo dentro da tenancy, respectivamente. Por padrão, tudo é negado, então políticas precisam ser escritas para permitir ações específicas.

Enviado por

ugomarley
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

AuthZ

Na OCI, a autorização é feita por meio do que chamamos de IAM policies (ou politicas de serviço).
Pense nas IAM policies como declarações legíveis humanas para definir permissões granulares.
Veja o exemplo:

Lembre-se de que as IAM policies podem ser anexadas a um compartment ou a uma tenancy.
• Se estiverem vinculados a uma tenancy, isso se aplica a tudo dentro dessa tenancy.
• Se for aplicado a um compartment, aplica-se apenas aos recursos desse compartment.
- Tudo é negado por padrão, portanto, você não precisa realmente escrever politica de proibição.
- Você não pode gravar uma política em usuários individuais, sempre operando em nível de
grupo.

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

Allow <group_name> to <verb> <resource-type> in <location> where


<conditions>
Group_name: Especifique um ou mais grupos separados por vírgulas por nome ou OCID. Ou
especifique any-user para abranger todos os usuários na tenancy.
Sintaxe: group <group_name> | group id <group_ocid> | dynamic-group <dynamic-group_name> | dynamic-
group id<dynamic-group_ocid> | any-user

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 usuário na tenancy:

Allow any-user to inspect users in tenancy

Verb
Especifique um único verbo

Verbos Tipos de acesso Publico alvo


inspect Capacidade de listar recursos, Auditores de Terceiros
sem acesso a informações
confidenciais ou a metadados
especificados pelo usuário que
possam fazer parte desses
recursos.
Importante: A operação para
listar políticas inclui o conteúdo
das próprias políticas e as
operações de lista dos tipos de
recurso de Rede retornam
todas as informações (por
exemplo, o conteúdo das listas
de segurança e tabelas de
roteamento).

read Inclui inspect mais a Auditores internos


capacidade de obter
metadados especificados pelo
usuário e o recurso real
propriamente dito.

use Inclui read mais a capacidade Usuários finais de


de trabalhar com recursos recursos no dia a dia
existentes (as ações variam
por tipo de recurso). Inclui a
capacidade de atualizar o
recurso, exceto para os tipos
de recursos em que a
operação "update" tem o
mesmo impacto efetivo que a
operação "create" (por
exemplo, UpdatePolicy,
UpdateSecurityList etc.), em
cujo caso capacidade de
"update" só está disponível
com o verbo manage. Em
geral, esse verbo não inclui a
capacidade de criar ou excluir
esse tipo de recurso.

manage Inclui todas as permissões para Administradores


o recurso.

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.
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 compartiment ou caminho do compartiment por nome ou OCID. Ou
especifique tenancy para abranger toda a tenancy.
Lembre-se de que usuários, grupos e compartiment residem na tenancy. As políticas podem residir
(ou seja, estar associadas) na tenancy ou em um compartiment filho.
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 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.
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>,...}
OBS: 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.
Estes são os tipos de valores que você pode usar nas condições
Tipo Exemplo
String '[email protected]'

'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:
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

Você também pode gostar