2014-02-05 1 views
0

У нас есть экземпляр EC2, входящий в состав конфигурации автомасштабирования. Этот экземпляр может извлекать учетные данные AWS с помощью назначенной ему роли IAM. Тем не менее, экземпляру нужна настройка , некоторые из которых чувствительны (пароли к ресурсам, отличным от EC2), а некоторые из них не являются (параметры конфигурации).Предоставление учетных данных без AWS экземпляру EC2 при запуске

Кажется, что best practice from AWS предназначен для хранения конфигурации экземпляра в IAM и получения его во время выполнения. Проблема, с которой я сталкиваюсь в этом подходе, заключается в том, что конфигурация сидит незащищенной в ведре S3 - некорректная политика может выставлять ее сторонам, которые никогда не хотели ее видеть.

Какова наилучшая практика для достижения моей цели, чтобы данные конфигурации, хранящиеся в S3, также были зашифрованы?

PS: Я прочитал this question, но это не касается моих потребностей.

ответ

0

AWS не дает четких указаний по этой ситуации, что является позором. Это, как я буду архитектор решения:

  • Разработчик окно шифрует в-конфигурацию, например блобо с использованием собственной части асимметричной пары ключей и помещает его в ведре S3.
  • Ограничить доступ к ведро S3 с использованием политики IAM.
  • Выпекать общественную часть асимметричной пары ключей в AMI.
  • Применить роль IAM к экземпляру EC2 и запустить его из AMI
  • Экземпляр EC2 может загружать конфигурацию из S3 (благодаря роли IAM) и расшифровывать ее (благодаря наличию открытого ключа).

Закрытый ключ никогда не передается в экземпляр, поэтому его не следует подвергать риску. Если открытый ключ скомпрометирован (например, если экземпляр EC2 внедрен в корневой каталог), злоумышленник может расшифровать содержимое ведра S3 (но в этот момент у них уже есть корневой доступ к экземпляру и может читать конфигурацию непосредственно из текущей службы) ,

0

[...] Неверная политика может раскрывать ее сторонам, которые никогда не хотели видеть это.

Ну, тогда важно убедиться, что политика установлена ​​правильно. :) Лучше всего автоматизировать развертывание на S3, чтобы не было места человеческим ошибкам.

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

+0

+1 «правильно установить политику», но вся точка зашифрованных учетных данных должна иметь глубину защиты. Как бы вы расшифровали данные в экземпляре, когда он закручивается? Как ключ дешифрования попадает туда? Имейте в виду, что экземпляр возник из-за автомасштаба, поэтому вмешательство человека не происходит. –

+1

AWS Security рекомендовала использовать их непосредственно для экземпляров через SSH в прошлом. Хотя, вероятно, они не думали о автоматическом масштабировании. Что, если вы поместите ключ дешифрования в файл в развертывание приложения? –

+0

Райан, помещая ключ дешифрования на коробке - это путь. –