O que é o IAM
O IAM (Identity and Access Management) é onde você decide quem pode fazer o quê na plataforma. É a tela em que você convida pessoas, agrupa cada uma pela função que exerce e escolhe qual parte da sua infraestrutura ela alcança.
Toda decisão de acesso responde a duas perguntas separadas: qual ação está sendo executada e onde ela vale. Quem pode reiniciar uma máquina virtual em um VDC não ganha automaticamente o direito de reiniciar outra em um VDC diferente. A ação e o lugar são concedidos juntos, e os dois precisam bater.
Os dois eixos
- Permissão é a ação em si, escrita como uma chave, por exemplo
vm:poweroubackup:restore. Ela diz o que pode ser feito, nunca sobre qual recurso. - Escopo é a parte da sua infraestrutura em que aquela permissão vale. Ele diz onde.
Como o recurso vive no escopo e não na chave, não existe uma permissão do tipo "ver a VM 42". Deixar alguém enxergar as VMs de um único VDC é a permissão vm:view concedida no escopo daquele VDC.
Escopos
Você trabalha com dois escopos, do mais amplo ao mais restrito:
| Escopo | O que é |
|---|---|
| Customer | A sua organização na plataforma. É o nível administrativo: as pessoas do seu time, o faturamento e a própria gestão de acesso. É o maior escopo que você tem, e ele cobre todos os VDCs abaixo dele. |
| VDC | Um virtual datacenter, o cloud console onde a sua infraestrutura de fato vive: máquinas, discos, redes, backups. |
Uma permissão concedida no nível de customer vale para todos os VDCs daquele customer. Concedida em um único VDC, vale só ali.
O customer abrange a sua organização inteira, então não precisa de alvo. O VDC vale para um datacenter específico, então você escolhe qual no momento da concessão.
Grupos e concessões diretas
Existem duas formas de alguém acabar com uma permissão.
| Grupo | Concessão direta | |
|---|---|---|
| O que é | Um conjunto nomeado de permissões, dado a uma pessoa em um escopo | Uma única permissão, dada a uma pessoa em um escopo |
| Use para | Acesso do dia a dia, qualquer coisa que mais de uma pessoa precise | Exceções e acesso temporário |
| Expira | Não | Sempre, a data de expiração é obrigatória |
| Como remover | Remover a atribuição | Revogar a concessão |
Grupos são o caminho normal. Um grupo reúne as permissões de uma função, por exemplo operar um VDC, e você dá esse grupo a uma pessoa em um escopo. O mesmo grupo pode ser dado a pessoas diferentes em VDCs diferentes, e é isso que mantém a lista de acessos administrável conforme o time cresce. O acesso por grupo não expira sozinho: ele vale até alguém remover.
Concessões diretas são a válvula de escape, para quando uma pessoa precisa de uma permissão a mais por um período curto. Elas exigem data de expiração futura, de modo que o acesso temporário continue temporário em vez de virar permanente sem ninguém perceber. Se você se pegar dando a mesma concessão a várias pessoas, esse é o sinal de que o caso pede um grupo.
Grupos padrão
A sua organização já vem com dois grupos prontos:
| Grupo | Escopo | Para |
|---|---|---|
CUSTOMER-ADMIN | Customer | Tudo na sua organização: operar todos os VDCs e gerenciar quem tem acesso a eles |
VDC-OPERATOR | VDC | Operar um único VDC (computação, storage, rede, backup), com acesso somente leitura ao IAM |
Os dois carregam as mesmas permissões de infraestrutura. O CUSTOMER-ADMIN as aplica em todos os VDCs e ainda soma a gestão completa de acesso, então é o grupo de quem toca a operação no dia a dia.
Você também pode criar seus próprios grupos quando nenhum dos dois servir.
Permissões efetivas
As permissões efetivas de uma pessoa são tudo que ela possui, vindo de todos os grupos e de todas as concessões diretas, somado, cada item acompanhado do escopo de onde veio.
Permissões apenas se somam. Dar um segundo grupo pode ampliar o acesso de alguém, mas nunca reduzi-lo, e não existe regra de negação que retire uma permissão. Para diminuir o que uma pessoa pode fazer, remova o grupo ou revogue a concessão que dá aquilo.
A aba Permissions mostra essa visão somada para qualquer usuário, incluindo a origem de cada item. É o caminho mais rápido para responder "por que essa pessoa consegue fazer isso?".
Como ler as chaves de permissão
As chaves são escritas como seção:recurso:ação, por exemplo vm:snapshot:rollback. O primeiro segmento é a área do produto e corresponde à seção da barra lateral onde o recurso fica.
Algumas convenções valem a pena conhecer:
- Leitura é ampla. Uma única chave
<seção>:viewcobre listar e ver tudo daquela seção. Leituras sensíveis ganham chave própria, comovm:console:vieweiam:audit:view. - Ações destrutivas têm chave própria, para que
backup:restoreouvm:disk:destroypossam ser negadas a quem, no restante, opera o recurso normalmente. - Uma chave terminada em
:*cobre tudo abaixo dela, em qualquer profundidade.storage:*inclui tantostorage:viewquantostorage:object_storage:bucket:delete. É conveniente, mas também absorve permissões adicionadas em versões futuras, então prefira chaves específicas quando o acesso for sensível.
Quando as mudanças passam a valer
As permissões são lidas no login e renovadas periodicamente enquanto a pessoa trabalha, então uma alteração nem sempre aparece na hora. Ela vale a partir da próxima renovação, em cerca de cinco minutos. Sair e entrar de novo aplica imediatamente.
Se alguém disser que um acesso recém-concedido não está funcionando, normalmente é isso.