← Cloudflare Secrets Store / secrets-store / integrations
Интеграция с Workers
Cloudflare Secrets Store это безопасное централизованное хранилище, где создаются и управляются секреты уровня аккаунта. Секреты надёжно шифруются и хранятся во всех дата-центрах Cloudflare.
Ознакомьтесь с шагами ниже, чтобы узнать, как использовать значения из хранилища секретов вашего аккаунта с Cloudflare Workers.
Перед началом работы
-
Если с помощью панели управления, убедитесь, что у вас уже есть приложение Workers. См. Начало работы с Workers для рекомендаций.
-
У вас также должно быть хранилище, созданное в Secrets Store на вкладке в панели управления. Первое хранилище в вашем аккаунте создаётся автоматически, когда пользователь с Роль Super Administrator или Secrets Store Admin взаимодействует с ним.
- Если в вашем аккаунте ещё нет хранилища и у вас есть необходимые права доступа, вы можете использовать команда Wrangler
secrets-store store create <name> --remoteчтобы создать ваше первое хранилище.
- Если в вашем аккаунте ещё нет хранилища и у вас есть необходимые права доступа, вы можете использовать команда Wrangler
1. Настройте секреты аккаунта в Secrets Store
Чтобы создать секреты, выполните шаги ниже. Для этого необходимо иметь Роль Super Administrator или Secrets Store Admin в вашем аккаунте Cloudflare.
Используйте команда Wrangler secrets-store secret create.
Чтобы использовать этот пример, замените ID хранилища и имя секрета своими фактическими данными. Найти и скопировать ID хранилища можно на вкладка Secrets Store ↗ в панели управления или использовать wrangler secrets-store store list.
Учтите, что имя секрета не может содержать пробелы.
npx wrangler secrets-store secret create <STORE_ID> --name MY_SECRET_NAME --scopes workers --remote✓ Enter a secret value: › ***
🔐 Creating secret... (Name: MY_SECRET_NAME, Value: REDACTED, Scopes: workers, Comment: undefined)
✓ Select an account: › My account
✅ Created secret! (ID: 13bc7498c6374a4e9d13be091c3c65f1)-
На панели управления Cloudflare перейдите к разделу Secrets Store страницу.
Перейдите в Secrets Store ↗ -
Выберите Create secret.
-
Заполните обязательные поля, выбрав Workers в качестве Область действия разрешения. После сохранения секрета его значение больше нельзя будет просмотреть.
-
(Необязательно) Выберите Добавление дополнительного секрета чтобы создать более одного секрета за раз.
-
Выберите Save для подтверждения.
Найти и скопировать ID хранилища можно на вкладка Secrets Store ↗ в панели управления или использовать команда Wrangler. Также убедитесь, что ваш секрет name не содержит пробелов.
См. Secrets Store API с полной документацией по API.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Secrets Store Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/secrets_store/stores/$STORE_ID/secrets" \
--request POST \
--header "X-Auth-Email: $CLOUDFLARE_EMAIL" \
--header "X-Auth-Key: $CLOUDFLARE_API_KEY" \
--json '[
{
"name": "<MY_SECRET_NAME>",
"value": "<SECRET_VALUE>",
"scopes": [
"workers"
],
"comment": ""
},
{
"name": "<MY_SECRET_NAME_2>",
"value": "<SECRET_VALUE>",
"scopes": [
"workers"
],
"comment": ""
}
]'См. управлять секретами аккаунта для дополнительных параметров.
2. Привяжите секрет аккаунта к вашему Worker
Bindings позволяют вашему Worker взаимодействовать с ресурсами в вашем аккаунте Cloudflare.
Чтобы привязать секрет аккаунта к Worker, необходимо иметь одну из следующих ролей в вашем аккаунте Cloudflare:
- Super Administrator
- Secrets Store Deployer
Через Wrangler
- Добавьте привязку Secrets Store к вашему конфигурационный файл Wrangler:
binding: понятное имя для вашей привязки. Оно будет использоваться в приложении Workers, когда доступа к секрету наenvобъект.store_id: соответствующий ID Secrets Store, где был создан секрет вашего аккаунта.secret_name: уникальное имя секрета, заданное при создании секрета вашего аккаунта.
{
"main": "./src/index.js",
"secrets_store_secrets": [
{
"binding": "<BINDING_VARIABLE>",
"store_id": "<STORE_ID>",
"secret_name": "<MY_SECRET_NAME>"
}
]
}main = "./src/index.js"
[[secrets_store_secrets]]
binding = "<BINDING_VARIABLE>"
store_id = "<STORE_ID>"
secret_name = "<MY_SECRET_NAME>"Через панель управления
-
В панели управления Cloudflare перейдите в Workers & Pages.
Перейдите в Workers & Pages ↗ -
Выберите приложение Workers.
-
Перейдите в Настройки > Bindings и выберите Add.
-
На Добавление привязки ресурса на боковой панели выберите Secrets Store.
-
Заполните обязательные поля:
- Имя переменной: имя привязки. Оно будет использоваться вашим Worker для доступа к секрету (шаг 3 ниже).
- Имя секрета: выберите из списка доступных секретов аккаунта, созданных в шаг 1.
- (Необязательно, только для администраторов) Если нужный секрет ещё не существует, выберите Create secret. Это добавит секрет уровня аккаунта так же, как если бы вы создали его в Secrets Store.
-
Выберите Развернуть чтобы развернуть привязку. При развёртывании доступны два варианта:
- Развёртывание: Сразу развернуть привязку для 100% аудитории.
- Сохранение версии: Сохранить версию привязки, которую можно развернуть позже.
3. Обратитесь к секрету на env объект
Bindings находятся на env объект. Для доступа к секрету сначала нужно выполнить асинхронный вызов.
Вызовите get() для переменной привязки
export default {
async fetch(request, env) {
// Example of using the secret safely in an API request
const APIkey = await env.<BINDING_VARIABLE>.get()
const response = await fetch("https://api.example.com/data", {
headers: { "Authorization": `Bearer ${APIKey}` },
});
if (!response.ok) {
return new Response("Failed to fetch data", { status: response.status });
}
const data = await response.json();
return new Response(JSON.stringify(data), {
headers: { "Content-Type": "application/json" },
});
},
};