INTEGRITY Документация

Управление секретами с помощью Pulumi ESC

В этом руководстве вы получите пошаговые инструкции по использованию Pulumi ESC (Environments, Secrets, and Configuration), надежного и безопасного решения для управления секретами.

В этом руководстве вы узнаете, как разрабатывать с помощью Wrangler, соблюдая рекомендации по безопасности.

В частности, вы узнаете, как управлять своими CLOUDFLARE_API_TOKEN для входа в аккаунт Cloudflare, передачи секретов, хранящихся в ESC, в Workers и программной загрузки .dev.vars файл.

Перед началом работы

Убедитесь, что у вас есть:

1. Настройте новый Environment

A Pulumi ESC Environment ↗, или Environment, представляет собой YAML-файл с конфигурациями и секретами для вашего приложения и инфраструктуры. Доступ к ним можно получить несколькими способами, включая команды оболочки. Все ESC Environments хранятся в вашем аккаунте Pulumi Cloud.

a. Войдите в Pulumi Cloud

Используйте Pulumi ESC CLI, чтобы войти в свой аккаунт Pulumi Cloud.

esc login
Logged in to pulumi.com as  ....

b. Создайте новое окружение

ESC_ENV=wrangler/my-dev-environment
esc env init $ESC_ENV
Environment created.

2. Войдите в Cloudflare

После создания Pulumi ESC Environment его можно использовать разными способами. Например, для входа в учетную запись Cloudflare без необходимости заранее задавать учетные данные в оболочке.

a. Добавьте учетные данные

Благодаря безопасному внешнему хранению ваших CLOUDFLARE_API_TOKEN, вы можете управлять доступом и обновлять значение токена. Мы выполним wrangler в неинтерактивном режиме, для которого требуется:

Замените заполнитель 123abc с соответствующими значениями:

esc env set $ESC_ENV environmentVariables.CLOUDFLARE_ACCOUNT_ID 123abc
esc env set $ESC_ENV environmentVariables.CLOUDFLARE_API_TOKEN  123abc --secret

b. Выйдите из системы

Убедитесь, что вы не выполнили вход в свою учетную запись Cloudflare.

npx wrangler logout
Not logged in, exiting...

c. Войдите в систему

Передайте учетные данные Cloudflare, хранящиеся в ESC, в Wrangler.

esc run ${ESC_ENV} npx wrangler whoami
Getting 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" --secret

b. Передайте секрет своему 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 $E
Environment created.

b. Добавьте секрет

esc env set $E environmentVariables.TOP_SECRET  "the moon is made of cheese" --secret

c. Сгенерируйте .dev.vars файл

esc env open ${E} --format dotenv > .dev.vars

Как .dev.vars файлы часто содержат секреты, поэтому их не следует помещать в систему контроля версий. Хранение секретов отдельно позволяет без потерь загружать их в новое окружение разработки.

Следующие шаги

Вы настроили окружения Pulumi ESC для загрузки секретов в команды Wrangler, что повышает безопасность при разработке с Wrangler. Вынесенные во внешнее хранилище секреты теперь можно использовать повторно в разных Workers. Подробнее о возможностях и интеграциях Pulumi ESC ↗ или следуйте Развертывание Worker с помощью Pulumi руководство.