Todo recurso da OCI é criado dentro de um compartimento, e o formulário de criação da instância pede essa informação logo no início. O compartimento organiza os recursos e, junto com as políticas, define quem pode mexer em cada um.
A tenancy
No cadastro, a Oracle cria a tenancy, a conta da organização na OCI. A tenancy é também o compartimento raiz, que guarda todos os recursos da nuvem, como a pasta raiz de um sistema de arquivos. O compartimento raiz não tem relação com o usuário root do Linux.
Os compartimentos
Os compartimentos são divisões lógicas que organizam e isolam os recursos, como pastas. Algumas regras definem o uso:
- é possível criar compartimentos dentro de compartimentos, com até seis níveis abaixo do compartimento raiz;
- os compartimentos valem para a tenancy inteira, em todas as regiões inscritas;
- dois compartimentos com o mesmo pai não podem ter o mesmo nome;
- todo recurso é criado em um compartimento, informado no momento da criação;
- a maioria dos recursos pode ser movida para outro compartimento depois, e mover um compartimento leva junto todo o seu conteúdo;
- os compartimentos, assim como os usuários, os grupos e as políticas, só são criados e alterados na região principal.
Recursos ligados entre si podem ficar em compartimentos diferentes. A instância pode estar em um compartimento, e a rede que ela usa, em outro.
Para estudar, a Oracle recomenda um compartimento de testes, em inglês sandbox, que dá às pessoas um espaço próprio para experimentar. Nas notas desta pasta, o exemplo é um compartimento chamado laboratorio, que guarda a VM e a rede dela.
O OCID
A maioria dos recursos recebe da Oracle um identificador único, o OCID, sigla de Oracle Cloud Identifier, no formato:
ocid1.<TIPO DO RECURSO>.<REALM>.[REGIÃO][.USO FUTURO].<ID ÚNICO>
O exemplo de instância da documentação começa com ocid1.instance.oc1.phx., seguido de uma longa sequência de letras e números. O nome exibido da maioria dos recursos não precisa ser único, e é o OCID que identifica cada recurso com certeza, nas ferramentas de linha de comando, nas APIs e em alguns campos do console, como o que aceita o OCID de uma sub-rede. Os nomes de usuários, grupos e políticas são exceção: precisam ser únicos e não podem ser alterados.
Quem pode fazer o quê: grupos e políticas
O acesso aos recursos é controlado pelo IAM, sigla em inglês para gestão de identidades e acessos. Os usuários fazem parte de grupos, e as políticas concedem acesso aos grupos, em um compartimento ou na tenancy inteira. Uma política é um documento que diz quem pode acessar quais recursos e de que forma, com declarações neste formato:
Allow <sujeito> to <verbo> <tipo de recurso> in <local> where <condições>
O sujeito costuma ser um grupo. O tipo de recurso pode ser um tipo individual, uma família de tipos ou all-resources. O local é a tenancy ou um compartimento, e a parte where é opcional. Os verbos vão do menor para o maior acesso:
- inspect: lista os recursos, sem mostrar informações confidenciais, e é pensado para auditores externos;
- read: inclui o inspect e permite ver os detalhes e o próprio recurso;
- use: inclui o read e permite trabalhar com os recursos existentes, mas, em geral, não permite criar nem excluir;
- manage: concede todas as permissões sobre o recurso.
Um exemplo da documentação dá a um grupo de administradores de projeto o controle total sobre o compartimento do projeto:
Allow group ProjectA_Admins to manage all-resources in compartment ProjectA
As políticas só concedem acesso, e não existe uma declaração para negar. O acesso concedido na tenancy vale em todos os compartimentos dentro dela. Toda tenancy tem o grupo Administrators, do qual o primeiro administrador faz parte, e uma política que dá a esse grupo acesso a todos os recursos. Essa política não pode ser alterada nem excluída.
A diferença entre comprovar quem é e definir o que se pode fazer está em Autenticação e autorização.
No suporte
Para estudos, convém criar um compartimento próprio, como laboratorio, em vez de colocar tudo no compartimento raiz. A Oracle recomenda um compartimento de testes, e uma política pode dar a um grupo acesso só a ele, sem tocar no restante da conta.
Para guardar
- A tenancy é a conta na OCI e também o compartimento raiz.
- Os compartimentos organizam os recursos, valem em todas as regiões e têm até seis níveis abaixo da raiz.
- Todo recurso é criado em um compartimento, e a maioria pode ser movida depois.
- O OCID identifica cada recurso de forma única.
- As políticas concedem acesso a grupos, com os verbos inspect, read, use e manage, e o acesso na tenancy vale em todos os compartimentos.
Um grupo recebeu a política Allow group Estudos to use instance-family in compartment laboratorio. Os usuários desse grupo conseguem criar uma VM nesse compartimento?
Em geral, não. O verbo use permite trabalhar com os recursos existentes, mas normalmente não inclui criar nem excluir. Criar recursos pede, em geral, o verbo manage.
Uma política anexada à tenancy dá ao grupo Estudos o verbo manage sobre all-resources na tenancy. Esse grupo pode excluir uma VM do compartimento laboratorio?
Pode. O acesso concedido na tenancy vale automaticamente em todos os compartimentos dentro dela, e o verbo manage concede todas as permissões. Para limitar o grupo ao compartimento de estudos, a política deve indicar in compartment laboratorio.
Fontes
O material está em inglês.
- Oracle, configurar a tenancy: o compartimento raiz, o limite de seis níveis e o compartimento de testes;
- Oracle, trabalhar com compartimentos: a validade em todas as regiões, os nomes e a movimentação de recursos;
- Oracle, gerenciar regiões: os compartimentos e as políticas definidos na região principal;
- Oracle, identificadores dos recursos: o formato do OCID e os nomes únicos do IAM;
- Oracle, como as políticas funcionam: os grupos, a herança e o grupo Administrators;
- Oracle, sintaxe das políticas: a forma das declarações;
- Oracle, verbos das políticas: o que permitem inspect, read, use e manage;
- Oracle, primeiros passos com políticas: a ausência de declarações para negar;
- Oracle, criar uma instância: os recursos de outros compartimentos no formulário.