← Cloudflare Workers VPC / workers-vpc / examples
Přístup k soukromému segmentu S3
Tento příklad ukazuje, jak přistupovat k privátnímu S3 bucketu, který není vystaven veřejnému internetu. V tomto návodu nakonfigurujeme Workers VPC Service pro interní úložnou službu kompatibilní s S3, vytvoříme Worker, který na tento bucket posílá požadavky, a Worker nasadíme, abychom ověřili naše změny.
Předpoklady
- Privátní úložná služba kompatibilní s S3 běžící ve vaší VPC/virtuální síti (například AWS S3 VPC endpoint, MinIO nebo podobná)
- Virtuální počítač/instance EC2 běžící ve stejné VPC jako váš S3 VPC endpoint
- Účet Workers s přístupem k Workers VPC
1. Nastavte Cloudflare Tunnel
Cloudflare Tunnel vytváří zabezpečené připojení z vaší privátní sítě ke Cloudflare. Tento tunel umožní Workers bezpečný přístup k vašim privátním prostředkům.
-
Přejděte na Dashboard Workers VPC ↗ a vyberte Tunnels kartě.
-
Vyberte Vytvořit pro vytvoření nového tunelu.
-
Zadejte název tunelu (například
s3-tunnel) a vyberte Uložit tunel. -
Vyberte svůj operační systém a architekturu. Dashboard vám poskytne konkrétní instalační pokyny pro vaše prostředí.
-
Podle uvedených příkazů stáhněte a nainstalujte
cloudflaredna vašem virtuálním počítači a spusťte instalační příkaz služby s vaším unikátním tokenem.
Dashboard potvrdí, jakmile se váš tunel úspěšně připojí. Poznamenejte si ID tunelu pro další krok.
2. Vytvořte Workers VPC Service
Nejprve vytvořte službu Workers VPC Service pro své interní úložiště S3:
npx wrangler vpc service create s3-storage \
--type http \
--tunnel-id <YOUR_TUNNEL_ID> \
--hostname s3.us-west-2.amazonaws.comWorkers VPC Service můžete vytvořit také pomocí IP adresy (například pokud používáte MinIO):
npx wrangler vpc service create s3-storage \
--type http \
--tunnel-id <YOUR_TUNNEL_ID> \
--ipv4 10.0.1.60 \
--http-port 9000Poznamenejte si ID služby vrácené pro další krok.
3. Nakonfigurujte zásady segmentu S3
Nakonfigurujte S3 bucket tak, aby umožňoval anonymní přístup z vašeho VPC endpointu. To funguje pro nešifrované objekty S3:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAnonymousAccessFromVPCE",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
],
"Condition": {
"StringEquals": {
"aws:sourceVpce": "vpce-your-endpoint-id"
}
}
}
]
}Přímé testování přístupu k S3
Přístup k S3 můžete otestovat přímo z VM, na kterém běží váš Cloudflare Tunnel, a ověřit tak, že zásada bucketu funguje správně. Tyto příkazy by měly fungovat bez jakýchkoli přihlašovacích údajů AWS:
# Test listing bucket contents
curl -i https://s3.us-west-2.amazonaws.com/your-bucket-name/
# Test downloading a specific file
curl -i https://your-bucket-name.s3.us-west-2.amazonaws.com/test-file.txt4. Nakonfigurujte svůj Worker
Upravte konfigurační soubor Wrangler:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "private-s3-gateway",
"main": "src/index.js",
// Set this to today's date
"compatibility_date": "2026-08-28",
"vpc_services": [
{
"binding": "S3_STORAGE",
"service_id": "<YOUR_SERVICE_ID>"
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "private-s3-gateway"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-28"
[[vpc_services]]
binding = "S3_STORAGE"
service_id = "<YOUR_SERVICE_ID>"5. Implementujte Worker
Ve svém kódu Workers použijte binding Workers VPC Service k odesílání požadavků do služby:
export default {
async fetch(request, env, ctx) {
try {
// Fetch a file from the private S3 bucket via VPC endpoint
const response = await env.S3_STORAGE.fetch("https://s3.us-west-2.amazonaws.com/my-bucket/data.json");
// Use the response from S3 to perform more logic in Workers, before returning the final response
return response;
} catch (error) {
return new Response("Storage unavailable", { status: 503 });
}
},
};Tento návod ukazuje, jak byste mohli z vašich Workerů přistupovat k privátnímu úložišti objektů. Pomocí Workers VPC Services můžete soubory stahovat přímo a upravovat odpovědi, což vám umožní na Workers budovat rozsáhlejší full-stack a backendovou funkcionalitu.
6. Nasaďte a otestujte
Nyní můžete nasadit a otestovat Worker, který jste vytvořili:
npx wrangler deploy# Test GET request
curl https://private-s3-gateway.workers.devDalší kroky
- Přidejte autentizace a autorizace
- Implementujte rate limiting
- Nastavení monitorování a upozorňování
- Prozkoumejte další příklady