Como as Políticas Funcionam

Este tópico descreve como as políticas funcionam e os recursos básicos.

Visão Geral das Políticas

Uma política é um documento que especifica quem e de que forma pode acessar os recursos do Oracle Cloud Infrastructure que sua empresa tem. Uma política simplesmente permite que um grupo  trabalhe de determinadas formas com tipos específicos de recursos  em um compartimento específico. Se você não estiver familiarizado com usuários, grupos ou compartimentos, consulte Visão Geral do Identity and Access Management.

Em geral, aqui está o processo que um administrador do serviço IAM da sua organização precisa seguir:

  1. Defina usuários, grupos e um ou mais compartimentos para armazenar os recursos de nuvem da sua organização.
  2. Crie uma ou mais políticas, cada uma gravada na linguagem da política. Consulte Políticas Comuns.
  3. Coloque os usuários nos grupos apropriados, dependendo dos compartimentos e recursos com os quais eles precisam trabalhar.
  4. Forneça aos usuários as senhas únicas de que eles precisam para acessar a Console e trabalhar com os compartimentos. Para obter mais informações, consulte Credenciais do Usuário.

Depois que o administrador concluir essas etapas, os usuários poderão acessar a Console, alterar suas senhas únicas e trabalhar com recursos específicos da nuvem, conforme indicado nas políticas.

Fundamentos de Políticas

Para controlar seus recursos, sua empresa terá pelo menos uma política. Cada política consiste em uma ou mais instruções da política que seguem esta sintaxe básica:

Allow group <group_name> to <verb> <resource-type> in compartment <compartment_name>

Observe que as instruções sempre começam com a palavra Allow. As políticas só permitem acesso; elas não podem negá-lo. Em vez disso, há uma negação implícita, o que significa, por padrão, que os usuários não podem fazer nada e precisam receber acesso por meio de políticas. (Há uma exceção a esta regra; consulte Os usuários podem fazer alguma coisa sem que um administrador grave uma política para eles?)

Um administrador em sua organização define os grupos e os compartimentos em sua tenancy. O sistema Oracle define os possíveis verbos e tipos de recursos que você pode usar em políticas (consulte Verbos e Tipos de Recursos).

Em alguns casos, você quer que a política se aplique à tenancy e não a um compartimento na tenancy. Nesse caso, altere o final da instrução da política da seguinte forma:

Allow group <group_name> to <verb> <resource-type> in tenancy

Para obter mais detalhes sobre a sintaxe, consulte Sintaxe de Política.

Para obter informações sobre quantas políticas você pode ter, consulte Limites de Serviço.

Alguns Exemplos

Digamos que o administrador crie um grupo chamado HelpDesk cuja função seja gerenciar usuários e suas credenciais. Aqui está uma política que permite:

Allow group HelpDesk to manage users in tenancy

Observe que, como os usuários residem na tenancy (o compartimento raiz), a política simplesmente informa a palavra tenancy, sem a palavra compartment na frente dela.

Em seguida, digamos que você tenha um compartimento chamado Projeto-A e um grupo chamado A-Admins cuja função é gerenciar todos os recursos do Oracle Cloud Infrastructure no compartimento. Aqui está um exemplo de política que permite:

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

Lembre-se de que a política logo acima inclui a capacidade de gravar políticas para esse compartimento, o que significa que os A-Admins podem controlar o acesso aos recursos do compartimento. Para obter mais informações, consulte Anexação de Políticas.

Se você quiser limitar o acesso dos A-Admins para somente iniciar e gerenciar instâncias de computação e volumes de armazenamento em bloco (os volumes e seus backups) no compartimento do Projeto-A, mas a rede em si reside no compartimento Redes, então a política pode ser:

Allow group A-Admins to manage instance-family in compartment Project-A

Allow group A-Admins to manage volume-family in compartment Project-A

Allow group A-Admins to use virtual-network-family in compartment Networks

A terceira instrução com o tipo de recurso virtual-network-family ativa o processo de lançamento da instância porque a rede em nuvem está envolvida. Especificamente, o processo de acionamento cria uma nova VNIC e a anexa à sub-rede onde a instância reside.

Para obter exemplos adicionais, consulte Políticas Comuns.

Detalhes sobre a Especificação de Grupos e Compartimentos

Geralmente, você especificará um grupo ou compartimento por nome na política. Entretanto, você pode usar o OCID. Basta se certificar de adicionar "id" antes do OCID. Por exemplo:

Allow group

 id ocid1.group.oc1..aaaaaaaaqjihfhvxmumrl3isyrjw3n6c4rzwskaawuc7i5xwe6s7qmnsbc6a

 to manage instance-family in compartment Project-A

Você pode especificar vários grupos separados por vírgulas:

Allow group A-Admins, B-Admins to manage instance-family in compartment Projects-A-and-B

Verbos

O sistema Oracle define os possíveis verbos que podem ser usados em suas políticas. Este é um resumo dos verbos, do que tem o menor acesso ao que tem mais:

Verbo Tipos de Acesso Abrangidos Usuário-Alvo
inspect Capacidade de listar recursos, 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). Auditores de Terceiros
read Inclui inspect mais a capacidade de obter metadados especificados pelo usuário e o recurso real propriamente dito. Auditores internos
use Inclui read mais a capacidade de trabalhar com recursos 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. Usuários finais de recursos no dia a dia
manage Inclui todas as permissões para o recurso. Administradores

O verbo fornece um determinado tipo geral de acesso (por exemplo, inspect permite listar e obter recursos). Quando depois você junta esse tipo de acesso a um determinado tipo de recurso em uma política (por exemplo, Allow group XYZ to inspect compartments in the tenancy), dá a esse grupo o acesso a um conjunto específico de permissões e operações de API (por exemplo, ListCompartments, GetCompartment). Para obter mais exemplos, consulte Detalhes para Verbos + Combinações de Tipo e Recurso. A Referência da Política inclui uma tabela semelhante para cada serviço, dando a você uma lista com exatamente as operações de API que são abrangidas para cada combinação de verbo e tipo de recurso.

Há algumas exceções especiais ou nuances para determinados tipos de recursos.

Usuários: O acesso ao manage users e a manage groups permite que você faça qualquer coisa com usuários e grupos, incluindo a criação e a exclusão de usuários e grupos, além de adicionar/remover usuários de grupos. Para adicionar/remover usuários de grupos sem acesso à criação e à exclusão de usuários e grupos, somente use users e use groups são obrigatórios. Consulte Políticas Comuns.

Políticas: A capacidade de atualizar uma política está disponível somente com manage policies, não com use policies, porque a atualização de uma política tem o mesmo efeito que a criação de uma nova política (você pode substituir as instruções de política existentes). Além disso, inspect policies permite que você obtenha o conteúdo completo das políticas.

Objetos do serviço Object Storage: inspect objects permite listar todos os objetos de um bucket e executar uma operação HEAD para um objeto específico. Em comparação, read objects permite que você faça download do objeto em si.

Recursos de Balanceador de Carga: Lembre-se de que inspect load-balancers permite que você obtenha todas as informações sobre seus balanceadores de carga e componentes relacionados ( conjuntos de backend etc.).

Recursos do Serviço Networking:

Esteja ciente de que o verbo inspect não só retorna informações gerais sobre os componentes da rede na nuvem (por exemplo, o nome e o OCID de uma lista de segurança ou de uma tabela de roteamento). Ele também inclui o conteúdo do componente (por exemplo, as regras reais na lista de segurança, os roteamentos na tabela de roteamento etc.).

Além disso, os seguintes tipos de capacidades estão disponíveis apenas com o verbo manage, não o verbo use:

  • Atualizar (ativar/desativar) internet-gateways
  • Atualizar security-lists
  • Atualizar route-tables
  • Atualizar dhcp-options
  • Anexar um gateway de roteamento dinâmico (DRG) a uma rede virtual na nuvem (VCN)
  • Criar uma conexão do IPSec entre um DRG e o CPE (Customer Premises Equipment)
  • Parear VCNs
Importante:

Cada VCN tem vários componentes que afetam diretamente o comportamento da rede (tabelas de roteamento, listas de segurança, opções de DHCP, Gateway de Internet etc.). Quando você cria um desses componentes, você estabelece uma relação entre esse componente e a VCN, o que significa que você deve ter permissão em uma política para criar o componente e gerenciar a própria VCN. No entanto, a capacidade de atualizar esse componente (para alterar as regras de roteamento, as regras de lista de segurança etc.) NÃO requer permissão para gerenciar a própria VCN, mesmo que a alteração desse componente possa afetar diretamente o comportamento da rede. Essa discrepância tem a intenção de dar flexibilidade para conceder menos privilégio aos usuários, e não requer que você conceda acesso excessivo à VCN apenas para que o usuário possa gerenciar outros componentes da rede. Lembre-se de que ao conceder a alguém a capacidade de atualizar um determinado tipo de componente, você estará confiando implicitamente a essa pessoa o controle do comportamento da rede.

Tipos de Recursos

O sistema Oracle também define os tipos de recursos que você pode usar em suas políticas. Primeiro, há tipos individuais. Cada tipo individual representa um tipo específico de recurso. Por exemplo, o tipo de recurso vcns é especificamente para redes virtuais na nuvem (VCNs).

Para facilitar a gravação da política, há tipos de família que incluem vários tipos de recursos individuais que geralmente são gerenciados juntos. Por exemplo, o tipo virtual-network-family traz uma variedade de tipos relacionados ao gerenciamento de VCNs (por exemplo, vcns, subnets, route-tables, security-lists etc.). Se precisar gravar uma política mais granular que forneça acesso apenas a um tipo de recurso individual, você poderá. Mas você também pode gravar facilmente uma política para conceder acesso a uma ampla gama de recursos.

Em outro exemplo: Block Volume tem volumes, volume-attachments e volume-backups. Se você precisar fornecer acesso somente para fazer backups de volumes, poderá especificar o tipo de recurso volume-backups na sua política. Mas se precisar conceder um amplo acesso a todos os recursos do serviço Block Volume, você pode especificar o tipo de família chamado volume-family. Para obter uma lista completa dos tipos de recursos da família, consulte Tipos de Recursos.

Importante:

Se um serviço introduzir novos tipos de recursos individuais, eles geralmente serão incluídos no tipo de família desse serviço. Por exemplo, se o serviço Networking introduzir um novo tipo de recurso individual, ele será automaticamente incluído na definição do tipo de recurso virtual-network-family. Para obter mais informações sobre alterações futuras nas definições dos tipos de recursos, consulte Políticas e Atualizações de Serviço.

Observe que há outras formas de tornar as políticas mais granulares, como a capacidade de especificar condições nas quais o acesso é concedido. Para obter mais informações, consulte Recursos Avançados da Política.

Importante

Se um serviço introduzir novas permissões para um tipo de recurso existente, atualize a instrução de política do tipo de recurso existente para que as novas permissões tenham efeito. Consulte esta Novas permissões em resource-types não são propagadas para obter mais informações.

Acesso que Exige Vários Tipos de Recursos

Algumas operações da API exigem acesso a vários tipos de recursos. Por exemplo, LaunchInstance requer a capacidade de criar instâncias e trabalhar com uma rede na nuvem. A operação CreateVolumeBackup requer acesso ao volume e ao backup de volume. Isso significa que você terá instruções separadas para fornecer acesso a cada tipo de recurso (por exemplo, consulte Permitir que os administradores de backup de volume gerenciem apenas os backups). Essas instruções individuais não precisam estar na mesma política. E um usuário pode obter o acesso necessário estando em grupos distintos. Por exemplo, George pode estar em um grupo que dá o nível necessário de acesso ao tipo de recurso volumes e em outro grupo que dá o acesso necessário ao tipo de recurso volume-backups. A soma das instruções individuais, independentemente de sua localização no conjunto geral de políticas, dá a George acesso a CreateVolumeBackup.

Herança de Política

Um recurso básico de políticas é o conceito de herança: Compartimentos herdam qualquer política de seu compartimento pai. O exemplo mais simples é o grupo Administradores, que vem automaticamente com sua tenancy (consulte O Grupo e a Política de Administradores). Há uma política interna que permite ao grupo Administradores fazer qualquer coisa na tenancy:

Allow group Administrators to manage all-resources in tenancy

Devido à herança da política, o grupo Administradores também pode fazer tudo em qualquer um dos compartimentos na tenancy.

Para ilustrar ainda mais, considere uma tenancy com três níveis de compartimentos: CompartmentA, CompartmentB e ComparmentC, mostrada aqui:

A imagem mostra o CompartmentA. CompartmentB, hierarquia do CompartmentC

As políticas que se aplicam a recursos no CompartmentA também se aplicam a recursos no CompartmentB e no CompartmentC. Portanto, esta política:

Allow group NewtworkAdmins to manage virtual-network-family in compartment CompartmentA

permite que o grupo NetworkAdmins gerencie VCNs no CompartmentA, no CompartmentB e no CompartmentC.

Anexação de Políticas

Outro recurso básico de políticas é o conceito de anexação. Quando você cria uma política, deve anexá-la a um compartimento (ou tenancy, que é o compartimento raiz). O local ao qual você a associa determina quem pode modificá-la ou excluí-la. Se você anexá-la à tenancy (em outras palavras, se a política estiver no compartimento raiz), qualquer pessoa com acesso para gerenciar políticas na tenancy poderá alterá-la ou excluí-la. Normalmente, é o grupo Administradores ou qualquer grupo semelhante que você cria e ao qual dá um amplo acesso. Qualquer pessoa com acesso somente a um compartimento filho não pode modificar ou excluir essa política.

Se você, em vez disso, anexar a política a um compartimento filho, todos que tenham acesso para gerenciar as políticas nesse compartimento poderão alterá-la ou excluí-la. Em termos práticos, isso significa que é fácil conceder aos administradores de compartimentos (ou seja, um grupo com acesso a manage all-resources no compartimento) para gerenciar as políticas dos seus próprios compartimentos, sem lhes dar acesso mais amplo para gerenciar políticas que residam na tenancy. Para obter um exemplo que usa esse tipo de design de administrador de compartimento, consulte Exemplo de Cenário. (Lembre-se de que, devido à herança de política, os usuários com acesso para gerenciar políticas na tenancy automaticamente têm a capacidade de gerenciar políticas em compartimentos dentro da tenancy.)

O processo de anexação da política é fácil (seja anexando a um compartimento ou à tenancy): se você estiver usando a Console, quando adicionar a política ao serviço IAM, basta certificar-se de que você está no compartimento desejado ao criar a política. Se você estiver usando a API, especifique o OCID do compartimento desejado (a tenancy ou outro compartimento) como parte da solicitação para criar a política.

Quando você anexar uma política a um compartimento, deverá estar nesse compartimento e indicar diretamente na instrução à qual ele se aplica. Se você não estiver no compartimento, receberá um erro se tentar anexar a política a outro compartimento. Observe que a anexação ocorre durante a criação da política, o que significa que uma política pode ser anexada a apenas um compartimento. Para saber como anexar uma política a um compartimento, consulte Para criar uma política.

Políticas e Hierarquias de Compartimento

Conforme descrito na seção anterior, uma instrução de política deve especificar o compartimento para o qual o acesso está sendo concedido (ou a tenancy). O local onde você cria a política determina quem pode atualizar a política. Se você anexar a política ao compartimento ou ao seu pai, poderá simplesmente especificar o nome do compartimento. Se você anexar a política ainda mais acima da hierarquia, deverá especificar o caminho. O formato do caminho é cada nome de compartimento (ou OCID) no caminho, separado por dois-pontos:

<compartment_level_1>:<compartment_level_2>: . . . <compartment_level_n>

Por exemplo, suponha que você tenha uma hierarquia de compartimento de três níveis, mostrada aqui:

A imagem mostra o CompartmentA. CompartmentB, hierarquia do CompartmentC

Você deve criar uma política para permitir que o NetworkAdmins gerencie VCNs no CompartmentC. Se quiser anexar esta política ao CompartmentC ou ao seu pai, o CompartmentB, grave esta instrução de política:

Allow group NewtworkAdmins to manage virtual-network-family in compartment CompartmentC

No entanto, se quiser anexar esta política ao CompartmentA (de forma que somente administradores do CompartmentA possam modificá-la), grave esta instrução de política que especifica o caminho:

Allow group NewtworkAdmins to manage virtual-network-family in compartment CompartmentB:CompartmentC

Para anexar essa política à tenancy, grave esta instrução de política que especifica o caminho do CompartmentA para o CompartmentC:

Allow group NewtworkAdmins to manage virtual-network-family in compartment CompartmentA:CompartmentB:CompartmentC

Políticas e Atualizações de Serviço

É possível que a definição de um verbo ou tipo de recurso mude no futuro. Por exemplo, digamos que o tipo de recurso virtual-network-family mude para incluir um novo tipo de recurso que foi adicionado ao serviço Networking. Por padrão, suas políticas permanecem automaticamente atuais com qualquer alteração na definição do serviço; assim, qualquer política na qual você tenha acesso a virtual-network-family incluiria automaticamente o acesso ao recurso recém-adicionado.

Importante

Se um serviço introduzir novas permissões para um tipo de recurso existente, atualize a instrução de política do tipo de recurso existente para que as novas permissões tenham efeito. Consulte esta Novas permissões em resource-types não são propagadas para obter mais informações.

Gravando Políticas para Cada Serviço

A Referência da Política inclui detalhes dos tipos de recursos específicos para cada serviço e qual combinação de verbo + tipo de recurso oferece acesso a quais operações de API.