← Cloudflare Workers / workers / configuration
Tajné klíče
Kontext
Secrets jsou typ vazby, která umožňuje připojit k vašemu Workeru šifrované textové hodnoty. Secrets slouží k ukládání citlivých informací, jako jsou klíče API a přihlašovací tokeny.
V kódu Workeru můžete k secrets přistupovat pomocí:
-
envparametr předaný do vašeho Workerufetchobslužná rutina události. - Import
envzcloudflare:workerspro přístup k secrets odkudkoli ve vašem kódu. process.envve Workers, které mají Kompatibilita s Node.js zapnuté.
Přistupujte ke svým secrets pomocí Workers
K Secrets lze z Workers přistupovat stejně jako k jakékoli jiné proměnné prostředí. Pokud máte například DB_CONNECTION_STRING secret, můžete k němu přistupovat v kódu svého Workeru prostřednictvím env parametr:
import postgres from "postgres";
export default {
async fetch(request, env, ctx) {
const sql = postgres(env.DB_CONNECTION_STRING);
const result = await sql`SELECT * FROM products;`;
return new Response(JSON.stringify(result), {
headers: { "Content-Type": "application/json" },
});
},
};Můžete také importovat env z cloudflare:workers pro přístup k secrets odkudkoli ve vašem kódu, včetně míst mimo request handlery:
import { env } from "cloudflare:workers";
import postgres from "postgres";
// Initialize the database client at the top level using a secret
const sql = postgres(env.DB_CONNECTION_STRING);
export default {
async fetch(request) {
const result = await sql`SELECT * FROM products;`;
return new Response(JSON.stringify(result), {
headers: { "Content-Type": "application/json" },
});
},
};import { env } from "cloudflare:workers";
import postgres from "postgres";
// Initialize the database client at the top level using a secret
const sql = postgres(env.DB_CONNECTION_STRING);
export default {
async fetch(request: Request): Promise<Response> {
const result = await sql`SELECT * FROM products;`;
return new Response(JSON.stringify(result), {
headers: { "Content-Type": "application/json" },
});
},
};Podrobnosti o přístupu k env globálně, viz Import env jako globální.
Lokální vývoj s tajnými klíči
Uložte secrets pro použití při lokálním vývoji buď do .dev.vars soubor nebo .env soubor ve stejném adresáři jako konfigurační soubor Wrangleru.
Tyto soubory by měly být formátovány pomocí dotenv ↗ syntax. Například:
SECRET_KEY="value"
API_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"Chcete-li nastavit různé tajné klíče pro každé prostředí Cloudflare, vytvořte soubory s názvem .dev.vars.<environment-name> nebo .env.<environment-name>.
Když v lokálním vývoji vyberete prostředí Cloudflare, načte se nejprve soubor specifický pro dané prostředí, a to před obecným .dev.vars (nebo .env) soubor.
- Při použití
.dev.vars.<environment-name>soubory, všechny secrets musí být definovány pro každé prostředí zvlášť. Pokud.dev.vars.<environment-name>existuje, načte se jen ten;.dev.varssoubor se nenačte. - Naproti tomu všechny odpovídající
.envsoubory se načtou a hodnoty se sloučí. Pro každou proměnnou se použije hodnota z nejspecifičtějšího souboru, a to v tomto pořadí priority:.env.<environment-name>.local(nejvíce specifické).env.local.env.<environment-name>.env(nejméně specifické)
Secrets u nasazených Workers
Ověřte tajné klíče před nasazením
Názvy secrets, které váš Worker vyžaduje, můžete deklarovat pomocí secrets konfigurační vlastnost ve vaší konfiguraci Wrangler. Pokud je definováno, wrangler deploy a wrangler versions upload selže se srozumitelnou chybou, pokud nejsou na Workeru nastaveny všechny požadované tajné klíče.
Přidávání tajných klíčů do projektu
Pomocí nástroje Wrangler
Secrets lze přidat prostřednictvím wrangler secret put nebo wrangler versions secret put příkazy.
wrangler secret put vytvoří novou verzi Workeru a okamžitě ji nasadí.
npx wrangler secret put <KEY>Při použití postupná nasazení, místo toho použijte wrangler versions secret put příkaz. Tím se pouze vytvoří nová verze Workeru, kterou pak lze nasadit pomocí wrangler versions deploy.
npx wrangler versions secret put <KEY>Pomocí dashboardu
Chcete-li přidat secret přes dashboard:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
V Přehled, vyberte svého Workera > Nastavení.
-
V části Proměnné a tajné klíče, vyberte Přidat.
-
Vyberte typ Secret, zadejte Název proměnné, a zadejte jeho Hodnota. Tento secret bude ve Workeru k dispozici, ale jeho hodnota zůstane skrytá ve Wrangleru i v dashboardu.
-
(Optional) To add more secrets, select Přidat proměnnou.
-
Vyberte Nasadit k implementaci vašich změn.
Nahrávání tajných hodnot spolu s kódem
Secrets můžete nahrát současně s kódem svého Workeru pomocí --secrets-file příznak na wrangler deploy nebo wrangler versions upload. Přijímá cestu k JSON nebo .env soubor, ve stejných formátech, jaké přijímá wrangler secret bulk. V jednom hromadném požadavku můžete pro danou verzi nahrát až 100 secrets.
npx wrangler deploy --secrets-file .env.productionnpx wrangler versions upload --secrets-file secrets.jsonSecrets, které nejsou zahrnuty v souboru, zůstávají zachovány z předchozí verze. To se hodí v pipeline CI/CD, kde chcete nasadit kód a zároveň aktualizovat secrets v rámci jedné operace.
Odstranit tajemství z vašeho projektu
Pomocí nástroje Wrangler
Secrets lze odstranit prostřednictvím wrangler secret delete nebo wrangler versions secret delete příkazy.
wrangler secret delete vytvoří novou verzi Workeru a okamžitě ji nasadí.
npx wrangler secret delete <KEY>Při použití postupná nasazení, místo toho použijte wrangler versions secret delete příkaz. Tím se pouze vytvoří nová verze Workeru, kterou pak lze nasadit pomocí wrangler versions deploy.
npx wrangler versions secret delete <KEY>Pomocí dashboardu
Chcete-li odstranit secret z projektu Worker přes dashboard:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
V Přehled, vyberte svého Workera > Nastavení.
-
V části Proměnné a tajné klíče, vyberte Úprava.
-
V Úprava panelu vyberte X vedle tajného klíče, který chcete odstranit.
-
Vyberte Nasadit k implementaci vašich změn.
-
(Optional) Instead of using the edit drawer, you can click the delete icon next to the secret.
Porovnání secretů a proměnných prostředí
Tajné klíče jsou proměnné prostředí. Rozdíl je v tom, že hodnoty secret nejsou po nastavení viditelné ve Wrangler ani v Cloudflare dashboardu. Citlivá data, včetně hesel nebo API tokenů, by proto měla být vždy šifrovaná, aby nedošlo k jejich úniku. Pro váš Worker není mezi proměnnou prostředí a secret žádný rozdíl. Hodnota secret se předává tak, jak byla definována.
Související zdroje
- Příkazy Wrangleru pro secrets - Projděte si příkazy Wrangler pro vytváření, mazání a výpis secrets.
secretskonfigurační vlastnost - Deklarujte požadované názvy secrets v konfiguraci Wrangler. Používá se k validaci při lokálním vývoji a nasazení a jako zdroj pravdy pro generování typů.- Cloudflare Secrets Store - Šifrujte a ukládejte citlivé informace jako secrets, které lze bezpečně opakovaně používat v celém účtu.