Как безопасно хранить/ссылаться на пароли

Terraform — это мощный инструмент «инфраструктура как код» (IaC), который помогает создавать, изменять и версионировать инфраструктуру. У него есть плюсы и минусы, как и у всего остального, но главное преимущество заключается в том, что он не зависит от облака, то есть его можно использовать с несколькими облачными провайдерами.

В этой лабораторной работе мы будем использовать AWS для Windows в качестве поставщика облачных услуг. Компоненты, над которыми мы будем работать, включают:

  1. AWS Secrets Manager: сервис управления секретами, который помогает защитить доступ к вашим приложениям, сервисам и ИТ-ресурсам. Он будет использоваться для хранения и извлечения учетных данных базы данных.
  2. Amazon RDS для PostgreSQL: сервис реляционной базы данных, предоставляющий на выбор шесть знакомых механизмов баз данных, включая Amazon Aurora, PostgreSQL, MySQL и т. д.
  3. Экземпляр EC2: Amazon Elastic Compute Cloud (Amazon EC2) — это веб-служба, предоставляющая безопасные вычислительные ресурсы с изменяемым размером в облаке.

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

Хранение простых текстовых паролей в исходном коде — ужасная идея, поэтому это важная концепция.

Предпосылки

Прежде чем приступить к этой лабораторной работе, убедитесь, что у вас есть:

  1. Установил Terraform на локальную машину.
  2. Установил AWS CLI и настроил его с помощью своих учетных данных AWS.
  3. Установлен текстовый редактор, например VS Code, Atom или Sublime Text. Я бы также рекомендовал установить расширение Terraform в ваш редактор кода.

Приведенные ниже команды/шаги были выполнены в Windows, если вы используете Mac/Linux, синтаксис терминала, скорее всего, будет немного другим. Однако шаги и ссылки из Terraform одинаковы.

Шаг 1. Создайте новый каталог и инициализируйте Terraform

Откройте терминал в редакторе кода и создайте каталог для нашего проекта:

mkdir terraform-aws-secrets && cd terraform-aws-secrets