Documentacao

Como operar o AWS Manager

O AWS Manager roda no seu ambiente, usa Postgres para persistir os dados e separa o acesso por usuario, credencial AWS e authority. A ideia e simples: primeiro voce cadastra uma credencial, depois escolhe quais usuarios podem usar aquela credencial e quais recursos cada usuario pode operar dentro dela.

Instalacao rapida

A imagem all-in-one sobe Web, API, Nginx, Postgres e aplica as migracoes automaticamente quando voce reutiliza o mesmo volume.

docker volume create aws_manager_data
docker run -d \
  --name aws-manager \
  -p 4501:80 \
  -v aws_manager_data:/var/lib/postgresql/data \
  alefepdias/aws-manager:latest

Depois acesse http://localhost:4501.

Primeiro acesso

  1. Suba o container e abra o Web em http://localhost:4501.
  2. No primeiro uso, defina a senha do usuario administrador.
  3. Entre com o usuario admin.
  4. O admin e do tipo ROOT, por isso acessa a Admin Area.

Criar uma credencial AWS

A credencial guarda o access key usado pelo AWS Manager para consultar a conta AWS. O cadastro fica restrito ao admin ROOT.

  1. Acesse Admin Area > Credentials.
  2. Clique em Add credential.
  3. Informe nome, Access Key ID e Secret Access Key.
  4. Use a descricao para identificar conta, ambiente ou time responsavel.
  5. Mantenha a credencial ativa para ela aparecer no seletor do topo.

Depois de criada, a credencial pode ser vinculada a usuarios. Sem esse vinculo, o usuario nao consegue operar recursos dessa conta.

Dar acesso a um usuario

O acesso final tem duas camadas: primeiro a credencial, depois as authorities daquela credencial.

  1. Acesse Admin Area > Users.
  2. Abra o usuario em View user.
  3. Em Credential access, selecione uma credencial e clique em Add.
  4. Na mesma area, selecione a credencial do usuario e escolha uma authority.
  5. Clique em Add para liberar aquela permissao.
  6. Use Update user para salvar os dados do usuario.

Tambem da para fazer o caminho inverso em Admin Area > Credentials: abra uma credencial, adicione usuarios nela e depois adicione authorities para cada usuario.

Selecionar credencial e regiao

O topo da aplicacao mostra as credenciais liberadas para o usuario logado. Antes de usar EC2, Security Groups, S3 ou Billing, selecione a credencial e a regiao AWS desejada.

  • EC2 usa credencial + regiao para listar instancias.
  • Security Groups usa credencial + regiao para listar grupos e regras.
  • S3 usa a credencial para operar buckets e objetos.
  • Billing usa a credencial para consultar custos da conta.

Authorities disponiveis

Todas as authorities abaixo sao de escopo CREDENTIAL. Isso significa que a permissao vale apenas para a credencial em que foi vinculada ao usuario.

AWS_INVOICE Permite consultar Billing, custos, faturas e uso da conta AWS vinculada.
AWS_EC2_LIST Permite visualizar instancias EC2, estado, tipo, IPs, DNS, AMI, VPC e subnet.
AWS_SECURITY_GROUP_LIST Permite listar Security Groups e consultar regras de entrada e saida.
AWS_SECURITY_GROUP_ADD_RULE Permite adicionar regras inbound em Security Groups.
AWS_SECURITY_GROUP_DELETE_RULE Permite remover regras inbound de Security Groups.
AWS_S3_LIST Permite listar buckets S3 da conta AWS vinculada.
AWS_S3_CREATE_BUCKET Permite criar buckets S3.
AWS_S3_EMPTY_BUCKET Permite esvaziar objetos e versoes de buckets S3.
AWS_S3_DELETE_BUCKET Permite excluir buckets S3 vazios.
AWS_S3_OBJECT_LIST Permite listar objetos dentro de buckets S3.
AWS_S3_OBJECT_PUT Permite enviar e atualizar objetos dentro de buckets S3.
AWS_S3_OBJECT_DELETE Permite excluir objetos selecionados dentro de buckets S3.
AWS_S3_OBJECT_DOWNLOAD Permite baixar objetos selecionados dentro de buckets S3.
AWS_S3_OBJECT_RENAME Permite renomear objetos e prefixos dentro de buckets S3.

Modelo mental

Pense em tres perguntas: qual usuario, qual credencial AWS e quais operacoes. O usuario so ve e executa aquilo que foi liberado na credencial dele.

Para dar acesso minimo a EC2, por exemplo, vincule o usuario a uma credencial e adicione apenas AWS_EC2_LIST. Para permitir que ele altere regras de rede, adicione tambem AWS_SECURITY_GROUP_LIST e somente as permissoes de regra necessarias.