Резюме

Управление секретами в приложении может быть головной болью. У вас могут быть свои секреты во всем приложении, и вы не хотите вносить хаос в рабочий процесс DevOps. Doppler научит вас управлять своими секретами. В этом уроке мы рассмотрим, как мы можем использовать допплер для управления и защиты наших секретов.

Цели

В этой статье у нас есть магазин электронной коммерции, подключенный к firebase, и система чата для связи между покупателем и продавцом, обе эти службы нуждаются в ключах API для работы приложения. Мы рассмотрим, как настроить проект в доплеровском режиме, переместить наши секреты из традиционного файла .env в нашем проекте в доплеровский режим и установить запасной вариант для секретов.

Секретное управление

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

Потребность в секретных менеджерах

Безусловно, наиболее важным компонентом стратегии безопасности любой организации являются пароли и ключи, которые используются для аутентификации и установки контроля доступа к критически важным системам и службам. Из-за того, насколько важно для организаций убедиться, что третьи стороны не имеют доступа к бизнес-данным или информации о клиентах, вызывают рост секретных менеджеров.

Доплер как секретный менеджер

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

Doppler CLI - это мощный инструмент, который дает разработчикам централизованное представление о конфигурации своего приложения в любой среде. Это позволяет им легко получить доступ ко всем своим секретам и предоставляет им единую простую в использовании информационную панель.

Благодаря поддержке всех языков Doppler Secret Manager разработан для бесперебойной работы со всеми типами приложений. Еще одна удивительная особенность доплеровского сервиса - это многочисленные интеграции с другими сервисами, такими как AWS, цифровой океан и другие сторонние сервисы развертывания, что способствует хорошему опыту разработчиков.

Пример использования в реальном мире: приложение Market Place

У нас есть реальный сайт электронной коммерции, и в этом разделе мы рассмотрим, как мы можем управлять секретами в этом приложении. На нашем сайте электронной коммерции мы использовали Firebase в качестве серверной части для авторизации пользователей и в качестве базы данных для хранения данных приложения.

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

Структура приложения

     ┣ cometchat-pro-vue-chat-ui-kit 
     ┣ src
     ┃ ┣ Services
     ┃ ┃ ┗ productService.js
     ┃ ┣ assets
     ┃ ┣ components
     ┃ ┃ ┣ Navigation.vue
     ┃ ┃ ┗ Product.vue
     ┃ ┣ router
     ┃ ┃ ┗ index.js
     ┃ ┣ views
     ┃ ┃ ┣ Home.vue
     ┃ ┃ ┣ Login.vue
     ┃ ┃ ┣ NewProduct.vue
     ┃ ┃ ┣ ProductShow.vue
     ┃ ┃ ┗ Register.vue
     ┃ ┣ App.vue
     ┃ ┗ main.js
     ┣ .browserslistrc
     ┣ .editorconfig
     ┣ .env
     ┣ .eslintrc.js
     ┣ .gitignore
     ┣ README.md
     ┣ babel.config.js
     ┣ mockData.json
     ┣ package.json
     ┣ postcss.config.js
     ┣ tailwind.config.js
     ┣ vue.config.js
     ┗ yarn.lock

Выше у нас есть наша файловая структура, и основное внимание здесь уделяется нашему файлу .env, который содержит все секреты для нашего приложения для подключения как к firebase, так и к сервису cometchat. В файле .env у нас есть

VUE_APP_COMETCHAT_APP_ID=192762995a541380
VUE_APP_COMETCHAT_API_KEY=685396b8625e38046f36b7a272b938cedfb4d756
VUE_APP_COMETCHAT_REGION=us
VUE_APP_FIREBASE_API_KEY=AIzaSyDaxAj6IDIXz3Fi13yycyJtwTE3S2XMI70
VUE_APP_FIREBASE_AUTH_DOMAIN=etsy-clone-faf39.firebaseapp.com
VUE_APP_FIREBASE_PROJECT_ID=etsy-clone-faf39
VUE_APP_FIREBASE_STORAGE_BUCKET=etsy-clone-faf39.appspot.com
VUE_APP_FIREBASE_MESSAGING_SENDER_ID=828703135046
VUE_APP_FIREBASE_APP_ID=1:828703135046:web:b9aec5771661dafaef0147

Настройка Доплера

Чтобы использовать Doppler, мы сначала создаем учетную запись. После создания учетной записи нам будет предложено создать рабочую область, которую вы можете назвать как хотите. Затем Doppler предоставляет удобное пошаговое руководство, чтобы показать вам, где и каковы некоторые функции.

Создание проекта

Создать проект с Doppler очень просто. Хотя doppler поставляется с уже настроенным примером проекта, вы можете щелкнуть значок плюса, чтобы создать новый проект. В моем случае я назову проект etsy-ecommerce.

Как только вы создадите проект, Doppler сразу же предоставит вам три среды, которые являются

  • Разработка
  • Постановка
  • Производство

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

Установка Доплера

В этом разделе мы поговорим о том, как начать использовать Doppler CLI и управлять своими секретами. В Руководстве по установке Doppler есть разные команды оболочки для установки CLI. Я использую Ubuntu, поэтому команда для установки будет отличаться.

# Install pre-reqs
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
# Add Doppler's GPG key
curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | sudo apt-key add -
# Add Doppler's apt repo
echo "deb https://packages.doppler.com/public/cli/deb/debian any-version main" | sudo tee /etc/apt/sources.list.d/doppler-cli.list
# Fetch and install latest doppler cli
sudo apt-get update && sudo apt-get install doppler

После выполнения приведенных выше команд мы можем проверить, успешно ли установлен CLI, запустив

doppler --version

Нам нужен способ аутентификации нашей локальной машины с помощью допплера для получения секретов. Мы можем сделать это, запустив

doppler login

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

Все, что нам нужно сделать сейчас, это выбрать нашу рабочую область, и если мы проверим наш терминал, мы увидим, что получили приветственное сообщение.

Использование Doppler для управления секретом нашего приложения

Мы хотим заменить файл .env в нашем проекте, поэтому мы копируем весь контент, который есть в файле .env, и вставляем его в качестве нашего секрета в сборку разработки в doppler и сохраняем его.

Теперь секреты успешно зарегистрированы, и теперь мы можем удалить файл .env в нашем проекте.

В нашем терминале запускаем команду setup для настройки доплера

doppler setup

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

doppler run -- yarn serve

Эта команда извлекает последние секреты, которые мы сохранили в doppler, и вводит их в качестве переменных среды в процесс node.js. Теперь мы можем удалить файл .env из нашего проекта, и все работает отлично.

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

Заключение

Мы подошли к концу урока. Мы рассмотрели, как настроить проект в доплеровском режиме, перенести наши секреты из традиционного файла .env в нашем проекте в доплеровский режим и, обновив наши секреты.