← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / configure-tunnels
Oprávnění tunelu
Ke spuštění vzdáleně spravovaného tunelu stačí token tunelu. Tunel bude moct spustit kdokoli, kdo bude mít k tomuto tokenu přístup.
Získání tokenu tunelu
Chcete-li získat token pro vzdáleně spravovaný tunel:
-
V Cloudflare dashboardu přejděte na Sítě > Tunnels.
Přejděte na Tunnels ↗ -
Vyberte tunel a otevřete jeho stránku s podrobnostmi.
-
Na Přehled kartě vyberte Přidejte repliku a zobrazit instalační příkaz. Zkopírujte příkaz do textového editoru (příkaz nespouštějte). Token je
eyJ...řetězec.
Vytvořte GET požadavek na Token Cloudflare Tunnel koncový bod:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/token" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{
"success": true,
"errors": [],
"messages": [],
"result": "eyJhIjoiNWFiNGU5Z..."
}Hodnotu tokenu najdete v result.
data "cloudflare_zero_trust_tunnel_cloudflared_token" "tunnel_token" {
account_id = var.cloudflare_account_id
tunnel_id = cloudflare_zero_trust_tunnel_cloudflared.example_tunnel.id
}Pokud váš hostitelský počítač není spravován v Terraformu nebo chcete tunel nainstalovat ručně, můžete hodnotu tokenu vypsat do CLI.
Příklad: výstup do CLI
- Výstup tokenu tunelu do souboru stavu Terraformu:
output "tunnel_token" { value = data.cloudflare_zero_trust_tunnel_cloudflared_token.tunnel_token.token sensitive = true } - Použijte konfiguraci:
terraform apply - Přečtěte si token tunelu:
terraform output -raw tunnel_tokeneyJhIj...
Případně předejte data.cloudflare_zero_trust_tunnel_cloudflared_token.tunnel_token.token přímo do konfigurace Terraform vašeho hostitele, nebo token uložit do nástroje pro správu tajných klíčů.
Příklad: uložení do HashiCorp Vault
resource "vault_generic_secret" "tunnel_token" {
path = "kv/cloudflare/tunnel_token"
data_json = jsonencode({
"TUNNEL_TOKEN" = data.cloudflare_zero_trust_tunnel_cloudflared_token.tunnel_token.token
})
}Otočte token bez přerušení služby
Cloudflare doporučuje pravidelně měnit tunel token, aby se snížilo riziko jeho kompromitace. Token můžete obměnit s minimálním dopadem na uživatele, pokud tunel obsluhují alespoň dva cloudflared repliky. Abyste zajistili dostupnost služby, doporučujeme provádět rotace tokenů mimo pracovní dobu nebo v rámci údržbového okna.
Chcete-li obměnit token tunelu:
-
Obnovte token na Cloudflare:
-
V Cloudflare dashboardu přejděte na Sítě > Tunnels.
Přejděte na Tunnels ↗ -
Vyberte tunel a otevřete jeho stránku s podrobnostmi.
-
Na Přehled kartě vyberte Obnovovací token.
-
Zkopírujte
cloudflaredinstalační příkaz pro váš operační systém. Tento příkaz obsahuje nový token.
-
Vygenerujte náhodný řetězec base64 (minimální velikost 32 bajtů), který použijete jako tunnel secret:
openssl rand -base64 32AQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIAQIDBAUGBwg= -
Vytvořte
PATCHpožadavek na Cloudflare Tunnel koncový bod:
Alespoň jeden z následujících oprávnění tokenu je povinné:Požadovaná oprávnění API tokenu
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Aktualizujte Cloudflare Tunnelcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID" \ --request PATCH \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "Example tunnel", "tunnel_secret": "AQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIAQIDBAUGBwg=" }'{ "success": true, "errors": [], "messages": [], "result": { "id": "f70ff985-a4ef-4643-bbbc-4a0ed4fc8415", "account_tag": "699d98642c564d2e855e9661899b7252", "created_at": "2024-12-04T22:03:26.291225Z", "deleted_at": null, "name": "Example tunnel", "connections": [], "conns_active_at": null, "conns_inactive_at": "2024-12-04T22:03:26.291225Z", "tun_type": "cfd_tunnel", "metadata": {}, "status": "inactive", "remote_config": true, "token": "eyJhIjoiNWFiNGU5Z..." } } -
Zkopírujte
tokenhodnota zobrazená ve výstupu.
Po obnovení tokenu
cloudflareduž nemůže pomocí starého tokenu navazovat nová připojení k Cloudflare. Stávající konektory ale zůstanou aktivní a tunel bude nadále obsluhovat provoz. -
-
U poloviny vašich
cloudflaredreplik, přeinstalujtecloudflaredslužby s novým tokenem. Například na hostiteli Linux:sudo cloudflared service uninstall sudo cloudflared service install <NEW_TOKEN> -
Ověřte, že se služba spustila správně:
sudo systemctl status cloudflaredZatímco se tyto repliky připojují ke Cloudflare pomocí nového tokenu, provoz se automaticky směruje přes ostatní repliky.
-
Počkejte 10 minut, než se provoz přesměruje přes nové konektory.
-
Opakujte kroky 2, 3 a 4 pro druhou polovinu replik.
Token tunelu je nyní zcela otočen. Starý token se již nepoužívá.
Otočte kompromitovaný token
Pokud dojde ke kompromitaci tokenu tunelu, doporučujeme provést následující kroky:
-
Obnovte token pomocí dashboardu nebo API. Postupujte podle kroku 1 v Otočte token bez přerušení služby.
-
Odstraňte všechna připojení mezi
cloudflareda Cloudflare:
Alespoň jeden z následujících oprávnění tokenu je povinné:Požadovaná oprávnění API tokenu
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Vyčištění připojení Cloudflare Tunnelcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/connections" \ --request DELETE \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Tím se vyčistí veškerá neautorizovaná připojení a uživatelům se zabrání v připojení k vaší síti.
-
Na každém
cloudflaredreplika, aktualizujtecloudflaredk použití nového tokenu. Například na hostiteli se systémem Linux:sudo cloudflared service uninstall sudo cloudflared service install <NEW_TOKEN> -
Ověřte, že se služba spustila správně:
sudo systemctl status cloudflared
Token tunelu je nyní zcela otočen. Starý token se již nepoužívá.
Role v rozsahu účtu
Minimální oprávnění potřebná k vytváření, mazání a konfiguraci tunelů pro účet:
Další oprávnění potřebná k směrovat provoz na veřejný hostname a aby bylo možné provést cloudflared login:
Oprávnění vázaná na prostředek
Oprávnění můžete také omezit na jednotlivé Cloudflare Tunnel instance namísto udělení přístupu pro celý účet. Více informací najdete v Podrobná oprávnění pro Tunnels a Mesh nodes.