← Cloudflare Cache / cache / interaction-cloudflare-products
Řízení přístupu k mezipaměti pomocí WAF a Snippets
Když zpřístupníte R2 bucket veřejně pro účely ukládání do mezipaměti (pomocí Custom Domain), k obsahu má přístup kdokoli, kdo zná adresu URL. Chcete-li přístup omezit, můžete použít WAF ověřit požadavky předtím, než se dostanou do mezipaměti nebo do vašeho bucketu.
Následující diagram znázorňuje průchod požadavku přes WAF, Cache a R2. Vlastní pravidla WAF se spouštějí před pravidly mezipaměti v pipeline požadavků, takže neplatné požadavky se zablokují dříve, než spotřebují prostředky cache.
flowchart LR
accTitle: Connections with Cloudflare
A[User's request] --> B[WAF] --> C[Cache] --> D[R2]
Presigned URLs
Předpodepsaná adresa URL (presigned URL) je běžná adresa URL, k níž je připojen kryptografický token. Tento token obsahuje kód HMAC (hash-based message authentication code) vypočítaný z cesty URL, časového razítka a tajného klíče sdíleného mezi podepisující službou a validátorem. Kdokoli, kdo danou adresu URL má, může k obsahu přistupovat až do vypršení platnosti tokenu, token ale nelze znovu použít pro jinou cestu URL.
URL adresy můžete predpodepsat (presign) podobně jako S3 ↗, což vám umožní sdílet přímý přístup k vašemu obsahu s přidruženým časovým limitem. Tento postup lze implementovat pomocí kombinace Snippets, Rules nebo Cloudflare Workers.
Pro optimální výkon doporučujeme oddělit proces vytváření od procesu ověřování:
- Snippets pro vytvoření HMAC (podepsání URL)
- WAF custom rules pro ověření HMAC (ověření tokenu při každém požadavku)
V dokumentaci k Workers Podepisování požadavků příklad ukazuje, jak pomocí HMAC vygenerovat i ověřit podepsané požadavky. Implementace ve Workers je kompatibilní s WAF is_timed_hmac_valid_v0() validační funkce, takže můžete podepisovat pomocí Workers a ověřovat pomocí vlastních pravidel WAF, nebo obojí zpracovat ve Workers.