Entra alguém novo na empresa e precisa de "acesso à AWS". O rápido é criar um utilizador, dar-lhe AdministratorAccess e seguir com o dia. É também o que transforma um erro de um estagiário, ou uma palavra-passe roubada, numa conta vazia ou numa fatura de milhares de euros. Quase todos os sustos com a AWS em empresas pequenas começam com alguém que tinha muito mais permissões do que precisava.
A regra é simples: cada pessoa pode fazer apenas o que precisa para o seu trabalho, e nada mais. Chama-se privilégio mínimo e não exige perceber de segurança. Exige pensar um minuto no que essa pessoa vai fazer: ver? ligar e desligar máquinas? criar e apagar coisas? Com essa resposta, a AWS já tem as permissões preparadas e só é preciso escolhê-las.
Este guia usa grupos em vez de dar permissões a cada utilizador um a um. É a diferença entre decidir uma vez por cada função e decidir sempre que entra alguém.
Antes de começar: o que significa cada coisa
- IAM
- O serviço da AWS onde se criam utilizadores, se agrupam e se lhes dão permissões. É gratuito e existe em todas as contas.
- Utilizador IAM
- Uma identidade dentro da sua conta da AWS, com nome, palavra-passe e, se quiser, chaves para programas. Um por pessoa, nunca partilhado.
- Grupo IAM
- Uma pasta de utilizadores que partilham permissões. As permissões dão-se ao grupo; quem entra no grupo herda-as. Uma pessoa pode estar em vários grupos.
- Política
- Um documento que diz que ações estão permitidas ou proibidas e sobre que coisas. A AWS traz centenas já escritas (políticas "geridas pela AWS") e também pode escrever as suas.
- Privilégio mínimo
- Dar a cada pessoa ou programa só as permissões de que precisa para a sua tarefa. Se precisa de ver, que veja; se precisa de desligar, que desligue; mas não que apague.
- AdministratorAccess
- A política gerida que permite tudo salvo o que está reservado à conta raiz. É a que não se deve distribuir.
- ReadOnlyAccess
- A política gerida que permite ver tudo mas não mudar nada. É o ponto de partida para quase toda a gente.
- Duplo fator (MFA)
- Um segundo passo ao entrar: um código do telemóvel além da palavra-passe. Sem ele, uma palavra-passe que se escape é a conta inteira.
- Chave de acesso
- Utilizador e palavra-passe para programas, não para pessoas. Só se devem criar se um programa precisar delas, e nunca partilhá-las por e-mail ou chat.
Passo a passo
Decida que função tem a pessoa
Antes de tocar na consola, responda a uma pergunta: o que é que esta pessoa tem de fazer na AWS? Para uma empresa pequena, quase tudo cabe em três funções:
- Ver: ver o estado das máquinas, consultar a fatura, ler registos. É o que precisa quem dá suporte, quem trata da contabilidade ou um chefe que quer "ver como vai".
- Operar: além de ver, ligar, desligar e reiniciar máquinas, fazer instantâneos, restaurar. É o que precisa quem trata do dia a dia do servidor.
- Administrar: criar e apagar máquinas, mudar redes, gerir utilizadores. Isto só uma ou duas pessoas precisam, e deviam ser as que mais sabem.
Se hesitar entre duas, comece pela de menos permissões. Subir é um clique; descobrir que alguém apagou algo que não devia, não.
Crie os três grupos no IAM
Abra o IAM, menu da esquerda Grupos de utilizadores, botão Criar grupo. Faça três, com nomes que qualquer pessoa perceba:
ver,operareadministrar. Ao criar cada grupo, no bloco Anexar políticas de permissões procure e marque a política que lhe cabe:- Grupo
ver: ReadOnlyAccess. Permite consultar qualquer serviço sem mudar nada. Se só quiser que vejam a fatura, existe AWSBillingReadOnlyAccess, mais limitada. - Grupo
operar: ReadOnlyAccess e, além dela, uma política própria com as ações de arrancar, parar e reiniciar (passo seguinte). Para o Lightsail não há uma política gerida intermédia, por isso vai escrevê-la você; para o EC2 também não há uma que só ligue e desligue. - Grupo
administrar: PowerUserAccess, que permite quase tudo salvo gerir utilizadores e permissões. Deixe AdministratorAccess para uma única pessoa, a que também tem a conta raiz guardada.
Os grupos criam-se uma vez. A partir daí, dar acesso a alguém é metê-lo no grupo adequado.
- Grupo
Escreva a política do grupo "operar"
Em IAM, Políticas, Criar política. Clique no separador JSON e cole isto, que permite ligar, desligar e reiniciar máquinas do Lightsail e do EC2, e fazer instantâneos, mas não criar nem apagar máquinas:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lightsail:StartInstance", "lightsail:StopInstance", "lightsail:RebootInstance", "lightsail:CreateInstanceSnapshot", "ec2:StartInstances", "ec2:StopInstances", "ec2:RebootInstances", "ec2:CreateSnapshot" ], "Resource": "*" } ] }Clique em Seguinte, chame-lhe
operar-maquinase crie-a. Depois, em Grupos de utilizadores, entre emoperar, separador Permissões, Adicionar permissões, Anexar políticas, e marqueoperar-maquinas.Repare que não aparece nenhuma ação com "Delete" nem "Terminate". É a diferença entre poder desligar uma máquina e poder fazê-la desaparecer. Se quiser limitá-la além disso a umas máquinas concretas, em
Resourcepode pôr o identificador de cada uma em vez do asterisco; para o EC2 é simples, para o Lightsail é preciso usar o ARN de cada instância.Crie o utilizador e meta-o num grupo
IAM, Utilizadores, Criar utilizador. Nome: o da pessoa (
maria.lopez), nunca algo partilhado comosoporte. Marque Fornecer acesso à Consola de Gestão da AWS, escolha Quero criar um utilizador do IAM e deixe marcado que deve mudar a palavra-passe ao iniciar sessão.No ecrã de permissões escolha Adicionar utilizador ao grupo e marque só o grupo que decidiu no passo 1. Não anexe políticas diretamente ao utilizador: daqui a seis meses ninguém se lembrará porque é que tem essa permissão solta. Crie o utilizador e aponte o endereço de início de sessão (leva o número da sua conta) para lho enviar juntamente com a palavra-passe temporária por canais diferentes: o endereço por e-mail, a palavra-passe em pessoa ou por uma mensagem que caduque.
Se a pessoa não vai usar programas que falem com a AWS, não crie chaves de acesso. Podem acrescentar-se no dia em que forem precisas.
Torne obrigatório o duplo fator
Peça à pessoa que, no seu primeiro acesso, vá ao menu do seu nome, Credenciais de segurança, e associe um dispositivo MFA com a aplicação do telemóvel. Mas não o deixe à boa vontade: em IAM, Políticas, crie uma política que negue tudo salvo configurar o MFA quando o utilizador não entrou com duplo fator, e anexe-a aos três grupos. A AWS tem-na como exemplo na sua documentação com o nome "permitir aos utilizadores gerir o seu próprio MFA"; copie o JSON de lá tal e qual.
O efeito: quem entra sem MFA só vê o ecrã para o ativar. Tudo o resto aparece bloqueado até que o faça. É a única forma de toda a gente o ter mesmo.
Reveja o que ninguém deve ter
Antes de dar o registo por fechado, repasse em IAM, Utilizadores, coluna das políticas anexadas:
- AdministratorAccess em mais de uma ou duas pessoas: está a mais. Ninguém que só opere máquinas precisa dele.
- IAMFullAccess em alguém que não gere utilizadores: com essa permissão pode dar a si próprio qualquer outra.
- Permissões anexadas diretamente ao utilizador em vez de através de grupos: mova-as para o grupo ou apague-as.
- Chaves de acesso em utilizadores de pessoas que não programam nada.
Se encontrar algo disto em utilizadores antigos, aproveite para o corrigir. É o momento em que é mais fácil.
Prepare a saída desde o primeiro dia
No dia em que alguém se vai embora, o seu acesso à AWS deve desaparecer nesse mesmo dia, antes de entregar o computador. Em IAM, Utilizadores, selecione o utilizador: primeiro desative o acesso à consola e as chaves de acesso (separador Credenciais de segurança), espere uma ou duas semanas para confirmar que nada dependia dessa pessoa, e depois elimine o utilizador.
Aponte-o na lista de tarefas de saída juntamente com o e-mail e as chaves do escritório. E uma vez por trimestre, descarregue o Relatório de credenciais do IAM: diz-lhe de cada utilizador quando entrou pela última vez, se tem MFA e se as suas chaves se usam. Um utilizador que não entra há três meses é um utilizador que provavelmente já não devia existir.
O que pode correr mal
A pessoa diz que não consegue fazer algo de que precisa
É o normal ao começar com privilégio mínimo, e é bom sinal: significa que os limites funcionam. Pergunte o que tentava fazer exatamente; no ecrã de erro da AWS aparece a ação negada (por exemplo lightsail:CreateInstance). Decida se faz mesmo parte do seu trabalho. Se sim, acrescente essa ação à política do grupo; se não, explique porquê. Não resolva o aviso dando-lhe AdministratorAccess "para não chatear".
Alguém com ReadOnlyAccess vê dados que não devia
O ReadOnlyAccess permite ler quase tudo, incluindo nomes de máquinas, bases de dados e o conteúdo de alguns buckets do S3. Se na sua conta há informação sensível, substitua o ReadOnlyAccess por políticas de só leitura dos serviços concretos (AmazonEC2ReadOnlyAccess, por exemplo) ou acrescente uma política que negue o acesso ao que não devem ver. Uma negação ganha sempre a uma permissão.
Um funcionário foi-se embora e ninguém tirou o seu utilizador
Faça-o agora: desative consola e chaves. Depois, em CloudTrail, Histórico de eventos, filtre por esse nome de utilizador e veja o que fez nas suas últimas semanas. Se tinha chaves de acesso, dê por certo que podem estar no seu portátil pessoal e apague-as; se alguma coisa deixar de funcionar, era um programa que as usava e precisa de uma identidade própria.
Há um programa que usa o utilizador de uma pessoa
Uma cópia de segurança, um script, um site que carrega ficheiros para o S3... com as chaves da Marta. No dia em que a Marta se for embora, ou as rodar, parte-se tudo. Crie um utilizador IAM só para esse programa (app-copias), com uma política das ações estritamente necessárias, e dê-lhe as suas próprias chaves. Melhor ainda se o programa corre numa máquina da AWS: use um role de instância e não haverá chaves para guardar.
No Simplio
No Simplio o privilégio mínimo não exige escrever políticas: cada utilizador tem uma casa por ação (ver, arrancar, parar, reiniciar, fazer instantâneo, restaurar, abrir portas...) e por máquina, por isso "a Marta pode desligar o site da loja mas não o da faturação" configura-se marcando casas. O duplo fator é obrigatório para todos, e desligar, apagar ou restaurar volta a pedi-lo na hora.
As chaves da AWS regista-as uma única vez o administrador e ficam guardadas cifradas; o resto da equipa nunca as vê, por isso não há nada para levar ao sair. Ao dar baixa a um utilizador, o seu acesso desaparece de imediato e o registo de atividade conserva quem fez o quê, quando e de onde.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Dar acesso a uma pessoa nova | Criar utilizador, grupo, política JSON, forçar MFA com outra política: 7 passos, 25 minutos | Criar utilizador e marcar casas por ação e por máquina: 2 minutos |
| Limitar a umas máquinas concretas | Escrever o ARN de cada instância na política | Escolher as máquinas de uma lista |
| Obrigar ao duplo fator | Política de negação anexada a cada grupo | Obrigatório para todos desde o primeiro acesso |
| Dar baixa a alguém | Desativar consola, apagar chaves, eliminar utilizador, rever o CloudTrail | Desativar o utilizador; o registo de atividade conserva-se |