← Pulumi / pulumi / tutorial
Управление секретами с помощью Pulumi ESC
В этом руководстве вы получите пошаговые инструкции по использованию Pulumi ESC (Environments, Secrets, and Configuration), надежного и безопасного решения для управления секретами.
В этом руководстве вы узнаете, как разрабатывать с помощью Wrangler, соблюдая рекомендации по безопасности.
В частности, вы узнаете, как управлять своими CLOUDFLARE_API_TOKEN для входа в аккаунт Cloudflare, передачи секретов, хранящихся в ESC, в Workers и программной загрузки .dev.vars файл.
Перед началом работы
Убедитесь, что у вас есть:
- Аккаунт Cloudflare. Зарегистрируйте аккаунт Cloudflare ↗.
- Аккаунт Pulumi Cloud. Зарегистрируйте аккаунт Pulumi Cloud ↗.
- Pulumi ESC CLI ↗ установлен.
- Проект Wrangler. Чтобы создать его, следуйте Шаг создания нового проекта Worker.
1. Настройте новый Environment
A Pulumi ESC Environment ↗, или Environment, представляет собой YAML-файл с конфигурациями и секретами для вашего приложения и инфраструктуры. Доступ к ним можно получить несколькими способами, включая команды оболочки. Все ESC Environments хранятся в вашем аккаунте Pulumi Cloud.
a. Войдите в Pulumi Cloud
Используйте Pulumi ESC CLI, чтобы войти в свой аккаунт Pulumi Cloud.
esc loginLogged in to pulumi.com as ....b. Создайте новое окружение
ESC_ENV=wrangler/my-dev-environment
esc env init $ESC_ENVEnvironment created.2. Войдите в Cloudflare
После создания Pulumi ESC Environment его можно использовать разными способами. Например, для входа в учетную запись Cloudflare без необходимости заранее задавать учетные данные в оболочке.
a. Добавьте учетные данные
Благодаря безопасному внешнему хранению ваших CLOUDFLARE_API_TOKEN, вы можете управлять доступом и обновлять значение токена. Мы выполним wrangler в неинтерактивном режиме, для которого требуется:
- Ваш Cloudflare ID аккаунта
- Действительный API Cloudflare токен
Замените заполнитель 123abc с соответствующими значениями:
esc env set $ESC_ENV environmentVariables.CLOUDFLARE_ACCOUNT_ID 123abc
esc env set $ESC_ENV environmentVariables.CLOUDFLARE_API_TOKEN 123abc --secretb. Выйдите из системы
Убедитесь, что вы не выполнили вход в свою учетную запись Cloudflare.
npx wrangler logoutNot logged in, exiting...c. Войдите в систему
Передайте учетные данные Cloudflare, хранящиеся в ESC, в Wrangler.
esc run ${ESC_ENV} npx wrangler whoamiGetting User settings...
👋 You are logged in with an API Token.Когда вы используете esc run команду, она открывает Environment и задаёт указанные переменные Environment во временном окружении. После этого эти переменные используются в контексте wrangler команду. Это особенно полезно при выполнении wrangler команд в среде CI/CD, если вы хотите избежать хранения учётных данных непосредственно в конвейере.
3. Добавьте секреты Worker
Pulumi ESC централизованно хранит секреты, а Wrangler можно использовать для их передачи в Workers и другие ресурсы Cloudflare. Вы будете использовать wrangler secret put команду для этой цели.
a. Добавьте секрет
esc env set ${ESC_ENV} environmentVariables.TOP_SECRET "aliens are real" --secretb. Передайте секрет своему Worker
esc run -i ${ESC_ENV} -- sh -c 'echo "$TOP_SECRET" | npx wrangler secret put TOP_SECRET'Если использовать внешнее решение для управления секретами, часто используемые секреты Worker можно хранить в одном общем Environment, к которому имеют доступ соответствующие Workers. Вы можете использовать команды оболочки с esc чтобы включить сценарии и встроить их в конвейеры развёртывания или make команд. Используйте esc [command] --help чтобы узнать больше о различных командах, доступных в CLI.
4. Загрузите .dev.vars
На этом шаге вы настроите Environment для загрузки .dev.vars файл программным способом.
С выделенным окружением ESC для хранения всех .dev.vars секретов можно использовать dotenv флаг export.
a. Создайте окружение
E=wrangler/my-devvars
esc env init $EEnvironment created.b. Добавьте секрет
esc env set $E environmentVariables.TOP_SECRET "the moon is made of cheese" --secretc. Сгенерируйте .dev.vars файл
esc env open ${E} --format dotenv > .dev.varsКак .dev.vars файлы часто содержат секреты, поэтому их не следует помещать в систему контроля версий. Хранение секретов отдельно позволяет без потерь загружать их в новое окружение разработки.
Следующие шаги
Вы настроили окружения Pulumi ESC для загрузки секретов в команды Wrangler, что повышает безопасность при разработке с Wrangler. Вынесенные во внешнее хранилище секреты теперь можно использовать повторно в разных Workers. Подробнее о возможностях и интеграциях Pulumi ESC ↗ или следуйте Развертывание Worker с помощью Pulumi руководство.