Configure as credenciais no depósito do Amazon EC2

1

Eu criei uma AMI Linux personalizada com tudo o que preciso para executar meu aplicativo PHP (basicamente um nó que faz processamento em lote de imagens / vídeo / áudio). Pode haver uma quantidade de instâncias em execução ao mesmo tempo. Até agora implanta e funciona bem.

Minha única preocupação é ter que codificar algumas credenciais de banco de dados MySQL, senhas de FTP e outras coisas que possam mudar no futuro. Eu tenho outros servidores em que essas credenciais podem ser disponibilizadas (fora da rede da Amazon), mas não tenho certeza se vou conseguir essas credenciais na instância do EC2 depois de iniciá-lo. Isso deve ser fácil e seguro para uma nova instância do EC2, mas não para ninguém.

    
por Julian 03.01.2013 / 21:46

2 respostas

1

Em resumo, isso é o que você pode fazer:

  1. Crie uma função do IAM para uso por suas instâncias do EC2
  2. Envie suas credenciais para um ou vários objetos do S3 e atribua acesso de leitura à nova função.
  3. Altere sua AMI do Linux para executar um programa ou script para obter as credenciais do S3 e colocá-las onde quiser na inicialização. Isso precisará usar as credenciais da função, que são armazenadas no perfil da instância. O AWS PHP SDK pode fazer isso por você.
  4. Quando você inicia suas instâncias, certifique-se de indicar que deseja usar sua nova função.

Comecei a usar o CloudFormation , que parece um pouco melhor para minhas necessidades, mas requer mais configurações.

    
por 07.01.2013 / 22:17
0

O Amazon Linux AMI suporta a configuração de um script 'user-data' que será passado com segurança para a VM quando ela for iniciada.

Citações de aqui :

The Amazon Linux AMI contains a customized version of cloud-init. It enables you to specify actions that should happen to your instance at boot time. You can pass desired actions to cloud-init through the user data fields when launching an instance. This means you can use common AMIs for many use cases and configure them dynamically at startup.

Então, quando você inicia sua instância, você passa o script de dados do usuário. Por exemplo:

ec2-run-instances --key KEYPAIR --user-data-file custom-env-file ami-xxxxxx

No seu caso, você pode passar as credenciais necessárias no arquivo de dados do usuário e salvá-las em um local conhecido na instância. Seu aplicativo pode buscá-los a partir daí.

    
por 09.01.2013 / 16:59