INTEGRITY Dokumentace

Integrace Workers

Cloudflare Secrets Store je zabezpečené centralizované úložiště, ve kterém se ukládají a spravují tajemství na úrovni účtu. Tajemství jsou bezpečně šifrována a uložena ve všech datových centrech Cloudflare.

Postup níže ukazuje, jak použít hodnoty z úložiště tajemství vašeho účtu s Cloudflare Workers.

Než začnete

1. Nastavte tajemství účtu v Secrets Store

Chcete-li vytvořit tajemství, postupujte podle kroků níže. Musíte mít role Super Administrator nebo role Secrets Store Admin ve vašem účtu Cloudflare.

Použijte Příkaz Wrangler secrets-store secret create.

Chcete-li použít následující příklad, nahraďte ID úložiště a název tajemství skutečnými hodnotami. ID úložiště najdete a zkopírujete na Karta Secrets Store ↗ na dashboardu, nebo použijte wrangler secrets-store store list.

Název tajemství nesmí obsahovat mezery.

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)
  1. V dashboardu Cloudflare přejděte na Secrets Store stránce.

    Přejděte na Secrets Store ↗
  2. Vyberte Create secret.

  3. Vyplňte povinná pole a zvolte Workers jako Rozsah oprávnění. Jakmile je tajemství uloženo, jeho hodnota již nebude možné zobrazit.

  4. (Volitelné) Vyberte Add additional secret k vytvoření více tajemství najednou.

  5. Vyberte Save a potvrďte.

ID úložiště najdete a zkopírujete na Karta Secrets Store ↗ na dashboardu, nebo použijte Příkaz Wrangler. Také se ujistěte, že vaše tajemství name neobsahuje mezery.

Viz Secrets Store API pro úplnou dokumentaci API.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Secrets Store Write
Vytvoření tajemství
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": ""
		}
	]'

Viz spravovat tajemství účtu pro další možnosti.

2. Přiřaďte tajemství účtu k vašemu Workeru

Bindings umožňují vašemu Workeru interagovat s prostředky ve vašem účtu Cloudflare.

Chcete-li navázat tajemství účtu na váš Worker, musíte mít jednu z následujících role ve vašem účtu Cloudflare:

Pomocí nástroje Wrangler

  1. Přidejte binding Secrets Store k vašemu Konfigurační soubor Wrangler:
    • binding: popisný název vašeho bindingu. Použije se v aplikaci Workers, když přístup k vašemu tajemství na env objekt.
    • store_id: odpovídající ID Secrets Store, ve kterém bylo vaše tajemství účtu vytvořeno.
    • secret_name: jedinečný název tajemství, definovaný při vytvoření tajemství účtu.
{
	"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>"

Přes dashboard

  1. V Cloudflare dashboardu přejděte na Workers & Pages.

    Přejděte na Workers & Pages ↗
  2. Vyberte aplikaci Workers.

  3. Přejděte na Nastavení > Bindings a vyberte Přidat.

  4. Na Přidat binding k prostředku v postranním panelu vyberte Secrets Store.

  5. Vyplňte povinná pole:

    • Název proměnné: název bindingu. Použije se k tomu, aby váš Worker mohl přistupovat k tajemství (krok 3 níže).
    • Název tajemství: vyberte ze seznamu dostupných tajemství účtu vytvořených v krok 1.
    • (Volitelné, pouze pro administrátory) Pokud tajemství, které potřebujete, ještě neexistuje, vyberte Create secret. Tím se přidá tajemství na úrovni účtu stejným způsobem, jako kdybyste vytvořili ho v Secrets Store.
  6. Vyberte Nasadit k nasazení vašeho bindingu. Při nasazení máte dvě možnosti:

    • Nasadit: Binding okamžitě nasaďte pro 100 % vašeho publika.
    • Uložit verzi: Uložte verzi bindingu, kterou budete moci nasadit později.

3. Přistupte k tajemství na env objekt

Bindings se nacházejí na env objekt. Abyste získali přístup k tajemství, musíte nejprve provést asynchronní volání.

Zavolejte get() na proměnné bindingu

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" },
    });
  },
};