Назад | Перейти на главную страницу

Настройка учетных данных при развертывании Amazon EC2

Я создал собственный Linux AMI со всем, что мне нужно для запуска моего PHP-приложения (в основном это узел, который выполняет пакетную обработку изображений / видео / аудио). Одновременно может быть запущено n экземпляров. Пока разворачивается и работает нормально.

Меня беспокоит только то, что мне пришлось жестко закодировать несколько учетных данных MySQL DB, пароли FTP и другие вещи, которые могут измениться в будущем. У меня есть другие серверы, на которых эти учетные данные могут быть доступны (за пределами сети Amazon), но я не уверен, что могу получить эти учетные данные в инстансе EC2 после его запуска. Это должно быть легко и безопасно для нового экземпляра EC2, но не для кого-либо еще.

Вкратце, вот что вы можете сделать:

  1. Создайте роль IAM для использования вашими инстансами EC2
  2. Загрузите свои учетные данные в один или несколько объектов S3 и предоставьте своей новой роли доступ для чтения.
  3. Измените свой Linux AMI, чтобы запустить программу или сценарий, чтобы получить учетные данные от S3 и поместить их в нужное место при запуске. Для этого потребуется использовать учетные данные роли, которые хранятся в профиле экземпляра. AWS PHP SDK может сделать это за вас.
  4. Когда вы запускаете свои экземпляры, убедитесь, что вы указали, что хотите использовать свою новую роль.

Я начал использовать CloudFormation что кажется немного лучше для моих нужд, но требует дополнительных настроек.

AMI Amazon Linux поддерживает настройку сценария «пользовательские данные», который будет безопасно передаваться виртуальной машине при ее запуске.

Цитата из Вот:

AMI Amazon Linux содержит настроенную версию cloud-init. Он позволяет вам указать действия, которые должны произойти с вашим экземпляром во время загрузки. Вы можете передать желаемые действия в cloud-init через поля данных пользователя при запуске экземпляра. Это означает, что вы можете использовать общие AMI для многих случаев использования и динамически настраивать их при запуске.

Итак, когда вы запускаете экземпляр, вы передаете сценарий пользовательских данных. Например:

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

В вашем случае вы можете передать необходимые учетные данные в файле пользовательских данных и сохранить их в известном месте на экземпляре. Ваше приложение может забрать их оттуда.