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

Мы запускаем сервер на AWS, который будет использовать несколько констант. Эти константы могут быть конфиденциальными деталями, такими как несколько токенов API, секреты клиента и даже учетные данные БД. Мы сохранили эти данные в одном из наших файлов на самом сервере (скажем, Credentials.js). Так,

  1. Каков наилучший способ безопасного хранения этих учетных данных?
  2. Мы также планировали перейти на хранилище параметров AWS SSM. Стоит ли это рассматривать? Он также обеспечивает шифрование KMS конфиденциальных параметров.
  3. Даже если мы переключимся на хранилище параметров AWS SSM, нам придется вызывать их несколько раз, когда мы делаем запросы к сторонним серверам приложений (поскольку нам потребуются токены API для этих приложений). Оправдывает ли это стоимость, которую мы будем платить за SSM (учитывая, что мы берем стандартный магазин с высокой пропускной способностью)?

Кроме того, дайте мне знать, есть ли альтернативы для безопасного хранения этих параметров.

Спасибо.


person Raghav Mishra    schedule 29.01.2021    source источник
comment
Предоставляет ли AWS Secrets Manager то, что вам нужно? - aws.amazon.com/secrets-manager Я считаю, что это предназначено для хранения секретов, которые используются в вашей среде.   -  person James Wilson    schedule 29.01.2021
comment
SSM Param Store предоставляется бесплатно, если вы используете стандартный уровень. Сколько запросов вы хотите сделать?   -  person Marcin    schedule 29.01.2021
comment
Спасибо @JamesWilson. Сравнивая SSM Param Store и Secrets Manager, я считаю, что Param store - лучший вариант, верно? Поскольку это бесплатно для стандартного уровня.   -  person Raghav Mishra    schedule 29.01.2021
comment
Привет, @Marcin, я могу сделать 50000 вызовов API к SSM для извлечения учетных данных. Спасибо за ваш ответ. По сравнению с менеджером секретов, я считаю, что магазин Param - лучший выбор. Что сказать?   -  person Raghav Mishra    schedule 29.01.2021


Ответы (1)


Секретный менеджер

Secrets Manager позволяет вам заменить жестко запрограммированные учетные данные в вашем коде, включая пароли, на вызов API в Secrets Manager для получения секрета программным способом. Это помогает гарантировать, что секрет не может быть скомпрометирован кем-либо, исследующим ваш код, потому что секрет больше не существует в коде. Кроме того, вы можете настроить диспетчер секретов на автоматическую ротацию секрета по заданному расписанию. Это позволяет заменить долгосрочные секреты краткосрочными, что значительно снижает риск компрометации.

Чтобы получить представление о том, как это выглядит, см. AWS Secrets Manager: безопасное хранение, распространение и ротация учетных данных.

Расходы

См. Цены. 0,40 доллара США за секрет в месяц и 0,05 доллара США за 10 000 вызовов API.

Документы

Создайте секрет через консоль AWS или с помощью SDK. См. Создание секрета. Секрет - это пара ключ / значение, значение которой находится в формате JSON.

Альтернативы

Хашикорп Хранилище

Лямбда

Используйте лямбда-выражение, которое принимает доступ только от тех, у кого есть определенная роль / разрешение IAM, прикрепленное к профилю IAM экземпляра EC2, для запуска вашего приложения.

Другие

Просто погуглил в хранилище параметров для управления секретами, в котором было много статей и инструкций. Пожалуйста, сначала проведите исследование.

person mon    schedule 29.01.2021
comment
Спасибо @mon Просто хотел узнать, можем ли мы рассматривать хранилище параметров SSM как хорошую альтернативу The Secrets Manager? Поскольку Param Store бесплатен для стандартного уровня, и мне придется заплатить только за высокую пропускную способность на 10 000 вызовов API. Кроме того, все секреты являются константами, и мы не хотим, чтобы они менялись, - person Raghav Mishra; 29.01.2021
comment
Привет, @RaghavMishra, похоже, вы ищете подтверждения того, что Parameter Store предназначен для управления секретами. Я полагаю, что было бы лучше открыть другой вопрос, чтобы обсудить плюсы / минусы использования хранилища параметров для управления секретами. Secret Manager специально создан для управления секретами, и если вы предпочитаете не использовать его, возможно, этот вопрос может быть неправильным. - person mon; 29.01.2021
comment
@RaghavMishra, Parameter Store также может стоить 0,05 доллара США за 10 000 взаимодействий с API хранилища параметров, если вам нужна более высокая пропускная способность. - person mon; 30.01.2021
comment
Привет, @mon, спасибо. понятно. :) - person Raghav Mishra; 30.01.2021