INTEGRITY Dokumentace

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:

  1. V Cloudflare dashboardu přejděte na Sítě > Tunnels.

    Přejděte na Tunnels ↗
  2. Vyberte tunel a otevřete jeho stránku s podrobnostmi.

  3. 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 Write
  • Cloudflare One Connector: cloudflared Write
  • Cloudflare Tunnel Write
Získání tokenu Cloudflare Tunnel
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

  1. Výstup tokenu tunelu do souboru stavu Terraformu:
    output "tunnel_token" {
    	value       = data.cloudflare_zero_trust_tunnel_cloudflared_token.tunnel_token.token
    	sensitive   = true
    }
  2. Použijte konfiguraci:
    terraform apply
  3. Přečtěte si token tunelu:
    terraform output -raw tunnel_token
    eyJhIj...

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:

  1. Obnovte token na Cloudflare:

    1. V Cloudflare dashboardu přejděte na Sítě > Tunnels.

      Přejděte na Tunnels ↗
    2. Vyberte tunel a otevřete jeho stránku s podrobnostmi.

    3. Na Přehled kartě vyberte Obnovovací token.

    4. Zkopírujte cloudflared instalační příkaz pro váš operační systém. Tento příkaz obsahuje nový token.

    1. Vygenerujte náhodný řetězec base64 (minimální velikost 32 bajtů), který použijete jako tunnel secret:

      openssl rand -base64 32
      AQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIAQIDBAUGBwg=
    2. Vytvořte PATCH požadavek na 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 Write
      • Cloudflare One Connector: cloudflared Write
      • Cloudflare Tunnel Write
      Aktualizujte Cloudflare Tunnel
      curl "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..."
      	}
      }
    3. Zkopírujte token hodnota zobrazená ve výstupu.

    Po obnovení tokenu cloudflared už 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.

  2. U poloviny vašich cloudflared replik, přeinstalujte cloudflared služby s novým tokenem. Například na hostiteli Linux:

      sudo cloudflared service uninstall
    sudo cloudflared service install <NEW_TOKEN>
  3. Ověřte, že se služba spustila správně:

    sudo systemctl status cloudflared

    Zatímco se tyto repliky připojují ke Cloudflare pomocí nového tokenu, provoz se automaticky směruje přes ostatní repliky.

  4. Počkejte 10 minut, než se provoz přesměruje přes nové konektory.

  5. 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:

  1. Obnovte token pomocí dashboardu nebo API. Postupujte podle kroku 1 v Otočte token bez přerušení služby.

  2. Odstraňte všechna připojení mezi cloudflared a Cloudflare:

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

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Cloudflare One Connectors Write
    • Cloudflare One Connector: cloudflared Write
    • Cloudflare Tunnel Write
    Vyčištění připojení Cloudflare Tunnel
    curl "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.

  3. Na každém cloudflared replika, aktualizujte cloudflared k použití nového tokenu. Například na hostiteli se systémem Linux:

      sudo cloudflared service uninstall
    sudo cloudflared service install <NEW_TOKEN>
  4. 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.