INTEGRITY Dokumentace

Konfigurace webhooků

Existuje řada služeb, které můžete k Cloudflare připojit pomocí webhooků a přijímat tak oznámení z vašeho účtu Cloudflare. Informace o tom, jak účet Cloudflare připojit ke službě oblíbené služby pro webhooky.

Konfigurace webhooků

  1. V dashboardu Cloudflare přejděte na Oznámení stránce.

    Přejděte na Oznámení ↗
  2. Přejděte na Cíle.

  3. V Webhooks kartě vyberte Vytvořit.

  4. Webhooku přidělte název, podle kterého ho později snadno identifikujete.

  5. V URL pole zadejte adresu URL služby třetí strany, kterou jste dříve nastavili a kterou chcete propojit se svým účtem Cloudflare.

  6. V případě potřeby vložte Secret. Tajné klíče slouží k šifrování webhooků a liší se podle služby, kterou ke Cloudflare připojujete.

  7. Vyberte Save and Test abyste dokončili nastavení webhooku.

Nový webhook se zobrazí v Webhooks kartě.

Úprava webhooků

U webhooků můžete pouze upravit název, případně je smazat.

  1. V dashboardu Cloudflare přejděte na Oznámení stránce.

    Přejděte na Oznámení ↗
  2. Přejděte na Cíle.

  3. V Webhooks kartě vyberte Úprava u webhooku, který chcete upravit.

  4. Aktualizujte název webhooku a vyberte Save.

Webhook můžete smazat po výběru Úprava nebo výběrem Smazat v seznamu webhooků zobrazeném v Cíle kartě.

Nastavení firewallu

Oznámení webhooku se odesílají z Rozsahy IP adres Cloudflare ↗. Pokud je váš koncový bod webhooku chráněn firewallem, musíte tyto IP adresy zařadit na seznam povolených, abyste mohli oznámení přijímat.

Chcete-li programově získat aktuální seznam IP adres Cloudflare, použijte Cloudflare API.

Obecné webhooky

Pokud používáte službu, kterou aktuálně dostupné webhooky Cloudflare nepokrývají, můžete nakonfigurujte si vlastní, a zadejte platnou adresu URL webhooku.

Pro obecné webhooky se vždy doporučuje používat tajný klíč (secret). Cloudflare tento tajný klíč odesílá v cf-webhook-auth hlavičku každého odeslaného požadavku. Pokud tato hlavička chybí nebo neodpovídá vámi zadané hodnotě, měli byste webhook odmítnout.

Po výběru Save and Test, měl by být váš webhook nyní nakonfigurován jako cíl, který můžete připojit k zásadám.

Když vám Cloudflare odešle webhook, bude mít následující schéma:

Příklad schématu
{
	"text": "Hello World! This is a test message sent from https://cloudflare.com. If you can see this, your webhook is configured properly."
}

Úplnou strukturu payloadu a příklady pro jednotlivé typy výstrah najdete v referenční dokumentace schématu datové části webhooku.

Omezení obecných webhooků

Obecná oznámení webhooku Cloudflare se odesílají pouze na veřejně dostupnou adresu IP na portu 80 nebo 443.

Pokud chcete oznámení z obecného webhooku přijímat na privátní IP adrese nebo na jiném portu, můžete oznámení přijmout a přeposlat pomocí Workers nebo nastavte Cloudflare Tunnel abyste je směrovali do vaší připojené aplikace.

Použití obecných webhooků s Workers

Pomocí Cloudflare Workers a obecného webhooku můžete doručovat oznámení do libovolné služby, která webhooky přijímá.

Cloudflare má ukázkový nástroj ↗ abyste pochopili, jak můžete používat Workers a obecné webhooky. Uvedený příklad převádí odpověď obecného webhooku tak, aby ji bylo možné doručit do Rocket.Chat. Poskytnutý kód obsahuje podrobné komentáře, které vám pomohou příklad přizpůsobit vašim potřebám.

Google Chat

Pro Google Chat ↗:

Slack

Pro Slack ↗:

DataDog

Pro DataDog ↗:

Discord

Pro Discord ↗:

OpsGenie

Pro OpsGenie ↗:

Splunk

Pro Splunk ↗:

Feishu

Pro Feishu ↗:

Týmy

Pro Týmy ↗:

ServiceNow

Pro ServiceNow ↗:

Obecný webhook

U obecného webhooku:

Konfigurace tajných klíčů

Při vytváření webhooku pro Google Chat, Slack, Discord nebo Feishu je tajný klíč součástí adresy URL. Tajný klíč můžete z adresy URL odstranit a hodnotu secret než aby ji Cloudflare automaticky extrahoval.

To se hodí, pokud svou webhook infrastrukturu definujete jako kód pomocí Terraformu, protože Cloudflare adresu URL nebude měnit.

Příklad pro Terraform
resource "cloudflare_notification_policy_webhooks" "example" {
  account_id = "<ACCOUNT_ID>"
  name       = "Slack Webhook"
  url        = "https://hooks.slack.com/services/T00000000/B00000000"
  secret     = "<secret>"
}