Безопасное хранение учетных данных AWS на персональном компьютере

10

Как безопасно хранить учетные данные AWS на персональных компьютерах?

В деталях:

Всем в нашей команде требуются учетные данные безопасности AWS для выполнения административных задач (учетные данные разделены по ролям). Эти учетные данные обычно хранятся в виде открытого текста в некоторых файлах конфигурации на диске. Я думаю, что это очень небезопасно, особенно если учесть, что учетные данные распределяются по членам команды, в конечном итоге в резервном копировании и т. Д.

Я бы предпочел хранить эти учетные данные в зашифрованном виде (например, как ключи ssh). Есть ли какой-нибудь автоматизированный способ сделать это? Или мне нужно взломать какой-нибудь bash-скрипт, который использует, например, openssl для шифрования данных?

В Интернете много информации о том, как защитить учетные данные в экземпляре EC2. Есть даже эта функция ролей Amazon IAM , но она также применима только к EC2.

arnuschky
источник
1
Это отличный вопрос, и я очень заинтересован в ответах.
ceejayoz

Ответы:

4

https://github.com/realestate-com-au/credulous, возможно, стоит изучить. Из описания проекта:

credulous - инструмент командной строки, который безопасно управляет учетными данными AWS (IAM) . Цель состоит в том, чтобы зашифровать учетные данные с использованием открытого ключа SSH пользователя, чтобы их мог видеть и использовать только пользователь, имеющий соответствующий закрытый ключ SSH . Кроме того, инструмент также позволит пользователю легко вращать свои текущие учетные данные, не нарушая текущий рабочий процесс пользователя.

На http://techblog.realestate.com.au есть вступительная статья блога/ protecting-your-aws-keys-with-credulous/ .

mvermaes
источник
Удивительно, это именно то , что я искал (и что мне не удалось найти самостоятельно ...)
arnuschky
См. Также github.com/99designs/aws-vault
Ив М.
4

Отличный вопрос - и в зависимости от того, кто ответит, у вас, вероятно, будет несколько маршрутов. Я дам вам пример того, что мы используем:

  1. Создание ролей IAM на основе пользователя (разработчик, инфраструктура, безопасность, аудит и т. Д.). Настройте политику, чтобы разрешить или запретить определенные действия на основе доступа пользователя.

Пример: разрешить все действия ec2 для администратора. Или разрешить доступ только на основе тега или подсети для разработчика и т. Д.

  1. Запустите ec2 Linux экземпляры, используя определенные роли IAM. Запустите экземпляр для каждой конкретной роли или пользователя (отрегулируйте размер / тип экземпляра в соответствии с потребностями, бюджетом и т. Д.)

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

  3. Установите пользовательский пароль / пароль для SSH или присоединитесь к домену.

  4. Каждый пользователь должен войти в систему или использовать SSH для экземпляра Linux, назначенного его роли или доступу пользователя.

  5. Ключи API и доступ теперь наследуются от самой роли IAM экземпляра, что делает ненужным хранение пользовательских ключей. Просто убедитесь, что заблокировали группу безопасности, предоставьте доступ только определенным пользователям на Linux. Пользователь должен иметь возможность писать скрипты с использованием API AWS / использовать функциональные возможности инструментов API как обычно.

Мы использовали этот метод уже около года - с дополнительными настройками безопасности, такими как арендованное время доступа, купленными в AWS HSM, и он прекрасно работает.

Надеюсь, это поможет вам или кому-то еще там.

Скотт Мур
источник
Хорошая идея, спасибо! Не думал об этом. На данный момент у нас нет выбора из-за сопутствующих затрат, но я буду об этом помнить.
arnuschky