Visualização do console personalizado da AWS

3

Estamos executando nossa infraestrutura interna da empresa na AWS. Atualmente, eu (como administrador de infraestrutura) sou o único que tem acesso ao console da AWS (como usuário do console raiz).

Agora, um requisito veio para permitir que determinados usuários (do departamento financeiro) possam iniciar uma instância específica do EC2 por conta própria. Eu tenho as permissões já configuradas (função do IAM personalizada com permissões somente para essa instância).

A pergunta é se existe uma maneira de criar visualizações personalizadas no console da AWS. Semelhante ao Atlassian Jira, onde você pode definir painéis personalizados com widgets configuráveis personalizados.

Idealmente, esse painel personalizado conteria apenas um único botão "Ativar" que seria conectado a uma função do AWS Lambda que ativaria a instância especificada.

O usuário do departamento financeiro entraria e veria essa versão simplificada do AWS Console sem a necessidade de rastrear o caminho pelo console padrão (por exemplo, EC2 - > Instâncias - > encontre o correto - > encontrar o comando Iniciar)

    
por Michal Boska 24.09.2018 / 14:51

2 respostas

2

Eu não acho que isso seja possível. Você tem algumas outras opções.

1) Dê a eles uma URL direta da configuração da instância

Será algo parecido com isto:

https://ap-southeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-southeast-2#Instances:instanceId=i-01234567890;sort=availabilityZone

Isso evita que eles tenham que clicar no console para encontrar a tela certa e a instância certa.

2) Iniciar / parar automaticamente a instância

Se eles precisarem que a instância seja executada em um cronograma previsível e periódico - por exemplo, durante o horário comercial, ou toda segunda-feira, ou todo primeiro dia do mês - você pode iniciar e parar automaticamente para eles.

Aqui está um modelo simples do CloudFormation que faz exatamente isso: link

Modifique para se adequar às suas necessidades. Você provavelmente desejará apontá-lo para uma Instância existente em vez de criar uma nova; no entanto, o agendador e o Lambda devem ser reutilizáveis.

3) Crie um aplicativo simples de início / parada

Se você quiser dar a eles um único botão iniciar / parar em uma tela, você terá que escrever um aplicativo para ele. Pode ser um script PHP trivial sendo executado em um t2.nano , em que essa instância terá a função IAM apropriada com permissões para iniciar / parar a instância do EC2 de destino.

Ou se você quiser ir completamente sem servidor, escreva seu aplicativo em jQuery , Reagir , Angular ou algo parecido, armazene-o no S3 e fazê-lo falar com um back-end do Lambda que iniciará e interromperá a instância do departamento financeiro. Novamente, o Lambda terá a função IAM apropriada com permissões para iniciar / parar a instância do EC2 de destino.

Em ambos os casos, você desejará manipular a autenticação do usuário de alguma forma. Pode ser uma senha simples e compartilhada até uma autenticação completa do AD por meio do AWS Cognito ou similar.

4) Crie um script de início / parada em seu laptop

Como Tim sugere instalar o aws-cli em um de seus laptops e criar um simples script start-instance e stop-instance . No entanto, se eles usam o Windows (como eles provavelmente fazem) eles podem surtar se você pedir para eles usarem uma linha de comando:)

5) Crie um sistema de menu de autoatendimento

Em uma instância t2.nano EC2, crie um usuário local cujo script de login apresente duas opções:

Finance department server is currently: running

[1] Reboot
[2] Stop
[Q] Quit

Your choice [1/2/Q]: _

Eles podem usar o SSH, por exemplo do PuTTY (pode ser tudo pré-configurado) e simplesmente escolher o que eles querem. Eu tive um sistema semelhante para nossos usuários que ocasionalmente precisavam reiniciar um determinado aplicativo, mas eu não queria dar a eles acesso ao shell.

Espero que alguns funcionem para você:)

BTW Toda vez que eles escolherem Parar , você também pode querer criar um instantâneo, por via das dúvidas ...

    
por 25.09.2018 / 00:21
2

Se você não puder agendar a instância como sugerido acima, a maneira mais simples é provavelmente configurar o AWS CLI no PC e ter arquivos em lotes para iniciar e parar a instância. Você pode criar atalhos para os arquivos em lote em sua área de trabalho para que eles possam clicar duas vezes para iniciar ou interromper sua instância.

Aqui estão os passos aproximados para conseguir isso.

Crie um usuário do IAM

Crie um usuário do IAM com um acesso e uma chave secreta. Você pode dar acesso ao console, se quiser, mas não é necessário.

Certifique-se de que o usuário do IAM tenha apenas as permissões necessárias para iniciar / interromper essa instância.

Instale o AWS CLI no PC deles

Passos para instalar o CLI (use o link como será mais atual do que esta resposta):

  1. Faça o download do instalador .

  2. Instale o Python

  3. Configurar caminhos (veja o link acima para mais detalhes)

  4. Configure as credenciais de acesso

Execute o comando "aws configure" e insira suas chaves e região.

> aws configure

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

Crie dois arquivos em lote

Inicie a instância

aws ec2 start-instances --instance-ids i-1234567890abcdef0

Pare a instância

aws ec2 stop-instances --instance-ids i-1234567890abcdef0
    
por 25.09.2018 / 02:23