INTEGRITY Dokumentace

Časté zásady

Následující zásady Cloudflare Access se běžně používají k zabezpečení aplikací.

Viz Stránka zásad Access pro úplný seznam dostupných akcí, typů pravidel a selektorů. Informace o vytváření a správě zásad najdete v Spravovat zásady Access.

Povolit zaměstnance podle e-mailové domény

Nejzákladnější zásada Access uděluje přístup komukoli, kdo se ověří pomocí e-mailové adresy patřící vaší organizaci. Toto je dobrý výchozí bod, pokud poprvé zabezpečujete aplikaci pomocí Access a chcete ji omezit na zaměstnance používající vaši firemní poskytovatel identity.

Akce Typ pravidla Selektor Hodnota
Allow Include E-maily končící na @example.com

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Allow employees by email domain",
		"decision": "allow",
		"include": [
				{
						"email_domain": {
								"domain": "example.com"
						}
				}
		]
	}'

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "allow_employees_by_email_domain" {
  account_id = var.cloudflare_account_id
  name       = "Allow employees by email domain"
  decision   = "allow"
  include = [{
    email_domain = {
      domain = "example.com"
    }
  }]
}

Do pravidla Include můžete přidat více e-mailových domén, pokud vaše organizace používá více než jednu doménu (například @example.com a @example.co.uk).

Povolit zaměstnance z konkrétních zemí

Organizace působící v konkrétních regionech nebo organizace, které musí splňovat požadavky na rezidenci dat, mohou omezit přístup k aplikaci na uživatele ze schválených zemí. Tato zásada se hodí, pokud chcete omezit, odkud se mohou zaměstnanci připojovat, a zároveň chcete povolit výjimky pro jednotlivé uživatele, například pro vedoucí pracovníky na cestách.

Protože pravidla Require používají logiku AND, nelze do jednoho pravidla Require přidat více zemí najednou: vyžadovalo by to, aby se uživatel nacházel ve všech zemích současně. Místo toho nejprve vytvořte skupina pravidel který uvádí schválené země:

Typ pravidla Selektor Hodnota
Include Země United States, Portugal

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Organizations, Identity Providers, and Groups Write
Vytvořit skupinu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/groups" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Approved countries",
		"include": [
				{
						"geo": {
								"country_code": "US"
						}
				},
				{
						"geo": {
								"country_code": "PT"
						}
				}
		]
	}'

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_group prostředek:

resource "cloudflare_zero_trust_access_group" "approved_countries" {
  account_id = var.cloudflare_account_id
  name       = "Approved countries"
  include = [
    {
      geo = {
        country_code = "US"
      }
    },
    {
      geo = {
        country_code = "PT"
      }
    },
  ]
}

Poté v zásadě Access odkažte na skupinu pravidel:

Akce Typ pravidla Selektor Hodnota
Allow Include E-maily končící na @example.com
Require Skupina pravidel Approved countries
Vyloučit E-mail [email protected], [email protected]

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Allow employees from specific countries",
		"decision": "allow",
		"include": [
				{
						"email_domain": {
								"domain": "example.com"
						}
				}
		],
		"require": [
				{
						"group": {
								"id": "<APPROVED_COUNTRIES_GROUP_ID>"
						}
				}
		],
		"exclude": [
				{
						"email": {
								"email": "[email protected]"
						}
				},
				{
						"email": {
								"email": "[email protected]"
						}
				}
		]
	}'

Nahraďte <APPROVED_COUNTRIES_GROUP_ID> hodnotou id vrácené při vytvoření skupiny pravidel výše. Chcete-li vyhledat existující skupiny, použijte List Access groups koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "allow_employees_from_specific_countries" {
  account_id = var.cloudflare_account_id
  name       = "Allow employees from specific countries"
  decision   = "allow"
  include = [{
    email_domain = {
      domain = "example.com"
    }
  }]
  require = [{
    group = {
      id = cloudflare_zero_trust_access_group.approved_countries.id
    }
  }]
  exclude = [
    {
      email = {
        email = "[email protected]"
      }
    },
    {
      email = {
        email = "[email protected]"
      }
    },
  ]
}

cloudflare_zero_trust_access_group.approved_countries odkaz ukazuje na cloudflare_zero_trust_access_group prostředek vytvořený výše.

Vyžadovat stav zařízení u citlivých aplikací

U aplikací obsahujících citlivá data můžete ověřit, že se uživatelé připojují ze spravovaných zařízení splňujících bezpečnostní standard vaší organizace. Následující příklad kombinuje ověření identity s kontroly stavu zařízení zajistit, že zařízení používá podporovanou Verze OS a je připojeno prostřednictvím Cloudflare One Client, což je vynucováno Vyžadovat kontrolu Gateway.

Akce Typ pravidla Selektor Hodnota
Allow Include Okta Groups Full-Time Employees
Require Gateway Gateway
Require Verze OS Latest version of Windows

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Require device posture for sensitive apps",
		"decision": "allow",
		"include": [
				{
						"okta": {
								"name": "Full-Time Employees",
								"identity_provider_id": "<OKTA_IDP_ID>"
						}
				}
		],
		"require": [
				{
						"device_posture": {
								"integration_uid": "<GATEWAY_CHECK_ID>"
						}
				},
				{
						"device_posture": {
								"integration_uid": "<OS_VERSION_CHECK_ID>"
						}
				}
		]
	}'

Nahraďte okta pravidlo s příslušné pravidlo pro vašeho poskytovatele identity. Chcete-li získat ID svého poskytovatele identity, použijte List Access identity providers endpoint. Chcete-li získat UID integrace pro kontroly stavu zařízení, použijte Seznam kontrol stavu zařízení koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "require_device_posture" {
  account_id = var.cloudflare_account_id
  name       = "Require device posture for sensitive apps"
  decision   = "allow"
  include = [{
    okta = {
      name                 = "Full-Time Employees"
      identity_provider_id = cloudflare_zero_trust_access_identity_provider.okta.id
    }
  }]
  require = [
    {
      device_posture = {
        integration_uid = cloudflare_zero_trust_device_posture_rule.gateway_check.id
      }
    },
    {
      device_posture = {
        integration_uid = cloudflare_zero_trust_device_posture_rule.os_version_check.id
      }
    },
  ]
}

Chcete-li tyto požadavky na zařízení znovu použít napříč více aplikacemi, vytvořte skupina pravidel s názvem „Corporate device requirements“, která obsahuje kontroly stavu zařízení. Tuto skupinu pravidel pak můžete odkázat v poli Require libovolné zásady.

Vyžadovat MFA u vysoce zabezpečených aplikací

U aplikací, které zpracovávají finanční data, produkční infrastrukturu nebo jiné vysoce cenné prostředky, můžete uživatelům uložit povinnost ověřit se kromě přihlašovacích údajů od poskytovatele identity také pomocí vícefaktorového ověřování (MFA). Díky tomu samotné kompromitované heslo k získání přístupu nestačí.

Access podporuje dva přístupy k vynucování MFA:

MFA založené na poskytovateli identity

Pokud váš poskytovatel identity hlásí metodu ověření použitou při přihlášení, můžete přidat Metoda ověřování selektor a vyžadujte konkrétní metodu MFA, například hardwarový bezpečnostní klíč.

Akce Typ pravidla Selektor Hodnota
Allow Include Okta Groups Employees
Require Metoda ověřování Security key
Require Gateway (povoleno)

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Require MFA for high-security apps",
		"decision": "allow",
		"include": [
				{
						"okta": {
								"name": "Employees",
								"identity_provider_id": "<OKTA_IDP_ID>"
						}
				}
		],
		"require": [
				{
						"auth_method": {
								"auth_method": "swk"
						}
				},
				{
						"device_posture": {
								"integration_uid": "<GATEWAY_CHECK_ID>"
						}
				}
		]
	}'

auth_method hodnota používá RFC 8176 referenční hodnoty metody ověřování. Například swk představuje softwarově zabezpečený klíč (bezpečnostní klíč). Nahraďte okta pravidlo s příslušné pravidlo pro vašeho poskytovatele identity. Chcete-li získat ID svého poskytovatele identity, použijte List Access identity providers endpoint. Chcete-li získat <GATEWAY_CHECK_ID>, použijte Seznam kontrol stavu zařízení koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "require_mfa" {
  account_id = var.cloudflare_account_id
  name       = "Require MFA for high-security apps"
  decision   = "allow"
  include = [{
    okta = {
      name                 = "Employees"
      identity_provider_id = cloudflare_zero_trust_access_identity_provider.okta.id
    }
  }]
  require = [
    {
      auth_method = {
        auth_method = "swk"
      }
    },
    {
      device_posture = {
        integration_uid = cloudflare_zero_trust_device_posture_rule.gateway_check.id
      }
    },
  ]
}

auth_method hodnota používá RFC 8176 referenční hodnoty metody ověřování. Například swk představuje softwarově zabezpečený klíč (bezpečnostní klíč).

Independent MFA

Pokud chcete vynucovat MFA přímo v Access bez spoléhání na IdP, můžete použít independent MFA. Nezávislé MFA se nekonfiguruje pomocí selektorů zásad. Místo toho nejprve zapnutí nezávislého MFA na úrovni organizace a poté ji povolit pro konkrétní aplikace nebo zásady v panelu nastavení. Access vyzve uživatele k zadání druhého faktoru (například bezpečnostního klíče, autentizační aplikace nebo biometrie) poté, co se ověří u vašeho IdP.

Podrobnosti o obou přístupech najdete v Vynuťte MFA.

Povolit přístup dodavatelům pomocí ověřování e-mailem

Když spolupracujete s externími dodavateli nebo partnery, kteří nejsou součástí vašeho firemního poskytovatele identity, můžete jim udělit přístup pomocí jednorázový PIN (OTP). OTP odešle na e-mailovou adresu dodavatele krátce platný kód, díky kterému se může ověřit bez nutnosti mít účet ve vašem IdP.

Akce Typ pravidla Selektor Hodnota
Allow Include E-maily končící na @contractor-a.com, @contractor-b.com
Require Metody přihlášení One-time PIN

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Allow contractor access with OTP",
		"decision": "allow",
		"include": [
				{
						"email_domain": {
								"domain": "contractor-a.com"
						}
				},
				{
						"email_domain": {
								"domain": "contractor-b.com"
						}
				}
		],
		"require": [
				{
						"login_method": {
								"id": "<OTP_IDENTITY_PROVIDER_ID>"
						}
				}
		]
	}'

Chcete-li získat ID svého poskytovatele identity OTP, použijte List Access identity providers koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "allow_contractor_access_with_otp" {
  account_id = var.cloudflare_account_id
  name       = "Allow contractor access with OTP"
  decision   = "allow"
  include = [
    {
      email_domain = {
        domain = "contractor-a.com"
      }
    },
    {
      email_domain = {
        domain = "contractor-b.com"
      }
    },
  ]
  require = [{
    login_method = {
      id = cloudflare_zero_trust_access_identity_provider.otp.id
    }
  }]
}

Chcete-li nakonfigurovat cloudflare_zero_trust_access_identity_provider prostředek pro OTP (nakonfigurovaný pomocí type = "onetimepin"), viz Jednorázový PIN.

Izolovat přístup dodavatelů k interním aplikacím

Pokud dodavatelé nebo jiní externí uživatelé potřebují zobrazovat interní aplikace, ale nemají mít možnost stahovat, kopírovat nebo přenášet data do svých nespravovaných zařízení, můžete aplikaci zpřístupnit v vzdálený prohlížeč. Externím uživatelům to poskytuje viditelnost do aplikace pouze pro čtení, přičemž citlivá data neopustí vaše prostředí.

Akce Typ pravidla Selektor Hodnota
Allow Include E-maily končící na @contractor-a.com, @contractor-b.com

Další nastavení: Zapnutí Izolovat aplikaci.

Nejprve ve svém účtu povolte Clientless Web Isolation, pokud jste tak ještě neučinili:

Patch konfigurace účtu Zero Trust
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/configuration" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"settings": {
				"browser_isolation": {
						"url_browser_isolation_enabled": true
				}
		}
	}'

Poté vytvořte zásadu Access s isolation_required nastaveno na true:

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Isolate contractor access",
		"decision": "allow",
		"include": [
				{
						"email_domain": {
								"domain": "contractor-a.com"
						}
				},
				{
						"email_domain": {
								"domain": "contractor-b.com"
						}
				}
		],
		"isolation_required": true
	}'

Nejprve nakonfigurujte cloudflare_zero_trust_gateway_settings prostředek pro povolení Clientless Web Isolation ve vašem účtu, pokud jste tak ještě neučinili:

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Zero Trust Write
resource "cloudflare_zero_trust_gateway_settings" "gateway_settings" {
  account_id = var.cloudflare_account_id
  settings = {
    browser_isolation = {
      url_browser_isolation_enabled = true
    }
  }
}

Poté nakonfigurujte cloudflare_zero_trust_access_policy prostředek s isolation_required nastaveno na true:

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write
resource "cloudflare_zero_trust_access_policy" "isolate_contractor_access" {
  account_id         = var.cloudflare_account_id
  name               = "Isolate contractor access"
  decision           = "allow"
  isolation_required = true
  include = [
    {
      email_domain = {
        domain = "contractor-a.com"
      }
    },
    {
      email_domain = {
        domain = "contractor-b.com"
      }
    },
  ]
}

Chcete-li omezit, co mohou uživatelé dělat uvnitř izolované relace, vytvořte doprovodnou Zásada Gateway HTTP která odpovídá provozu směřujícímu na doménu aplikace. Nastavte akci na Isolate a zakažte interaktivní ovládací prvky v nastavení zásady.

Příklad zásady Gateway HTTP

Selektor Operátor Hodnota Akce
Doména v wiki.example.com Isolate

Nastavení zásady:

Nastavení Hodnota
Copy Nepovolit
Vložit Nepovolit
Klávesnice Nepovolit
Stahování souborů Nepovolit
Nahrávání souborů Nepovolit
Tisk Nepovolit

Další informace najdete v tématu Izolovat samostatně hostovanou aplikaci.

Blokovat požadavky z vysoce rizikových zemí

Pokud vaše organizace omezuje přístup z určitých zemí kvůli interním zásadám nebo regulačním požadavkům, jako je Sankce OFAC nebo předpisy ITAR, můžete vytvořit zásadu Block, která odepře přístup z těchto regionů. Přidání firemního allowlistu IP adres jako pravidla Exclude zajistí, že zaměstnanci připojující se z důvěryhodných kancelářských sítí nebudou neúmyslně blokováni.

Akce Typ pravidla Selektor Hodnota
Block Include Země Russian Federation
Vyloučit Seznam IP adres Corporate IP allowlist

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Block requests from high-risk countries",
		"decision": "deny",
		"include": [
				{
						"geo": {
								"country_code": "RU"
						}
				}
		],
		"exclude": [
				{
						"ip_list": {
								"id": "<CORPORATE_IP_ALLOWLIST_ID>"
						}
				}
		]
	}'

Chcete-li získat ID svého seznamu IP adres, použijte Seznam seznamů Zero Trust koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "block_high_risk_countries" {
  account_id = var.cloudflare_account_id
  name       = "Block requests from high-risk countries"
  decision   = "deny"
  include = [{
    geo = {
      country_code = "RU"
    }
  }]
  exclude = [{
    ip_list = {
      id = cloudflare_zero_trust_list.corporate_ip_allowlist.id
    }
  }]
}

Chcete-li nakonfigurovat cloudflare_zero_trust_list prostředek uvedený výše (nakonfigurovaný pomocí type = "IP"), viz Seznamy.

Zásady blokování se nejlépe používají společně s Zásady povolení a vytvořte výjimky. Protože Access ve výchozím nastavení odepírá všechny požadavky, uživatelé, kteří neodpovídají zásadě Block, jsou i nadále odepřeni, pokud neodpovídají zásadě Allow.

Vyloučit vysoce rizikové uživatele

Pokud vaše organizace používá Cloudflare User Risk Scores k označování uživatelů s anomálním chováním, můžete vyloučit vysoce rizikové uživatele z přístupu k citlivým aplikacím. To slouží jako dynamické zabezpečení, které automaticky omezí přístup, jakmile chování uživatele vyvolá změnu úrovně rizika, aniž by byl nutný manuální zásah.

Akce Typ pravidla Selektor Hodnota
Allow Include E-maily končící na @example.com
Vyloučit Rizikové skóre uživatele Vysoká

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Exclude high-risk users",
		"decision": "allow",
		"include": [
				{
						"email_domain": {
								"domain": "example.com"
						}
				}
		],
		"exclude": [
				{
						"user_risk_score": {
								"user_risk_score": [
										"high"
								]
						}
				}
		]
	}'

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "exclude_high_risk_users" {
  account_id = var.cloudflare_account_id
  name       = "Exclude high-risk users"
  decision   = "allow"
  include = [{
    email_domain = {
      domain = "example.com"
    }
  }]
  exclude = [{
    user_risk_score = {
      user_risk_score = ["high"]
    }
  }]
}

V tomto příkladu je uživatel s vysokým rizikovým hodnocením vyloučen i v případě, že odpovídá pravidlu Include. Informace o tom, jak se počítají risk scores a jak nakonfigurovat risk behaviors, najdete v Rizikové skóre uživatele.

Ověřte službu pomocí tokenu služby

Automatizované služby, jako jsou pipeline CI/CD, monitorovací systémy a backendová rozhraní API, potřebují přistupovat k chráněným aplikacím bez interaktivního přihlášení. Zásady Service Auth umožňují komunikaci typu stroj-stroj ověřováním požadavků, které obsahují platné token služby hlavičky. Pro vyšší zabezpečení můžete token omezit na požadavky z konkrétních rozsahů IP adres, čímž zajistíte, že jej bude možné použít pouze ze známé infrastruktury.

Akce Typ pravidla Selektor Hodnota
Service Auth Include Service Token My service token
Require IP rozsahy 192.0.2.0/24

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Authenticate service with service token",
		"decision": "non_identity",
		"include": [
				{
						"service_token": {
								"token_id": "<SERVICE_TOKEN_ID>"
						}
				}
		],
		"require": [
				{
						"ip": {
								"ip": "192.0.2.0/24"
						}
				}
		]
	}'

Chcete-li získat ID svého service tokenu, použijte Seznam tokenů služby koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "authenticate_service_with_token" {
  account_id = var.cloudflare_account_id
  name       = "Authenticate service with service token"
  decision   = "non_identity"
  include = [{
    service_token = {
      token_id = cloudflare_zero_trust_access_service_token.my_service_token.id
    }
  }]
  require = [{
    ip = {
      ip = "192.0.2.0/24"
    }
  }]
}

Chcete-li nakonfigurovat cloudflare_zero_trust_access_service_token prostředek uvedený výše, viz Service tokens.

Ověřte službu pomocí vzájemného TLS

Pro prostředí, která vyžadují ověřování založené na certifikátech, můžete použít vzájemné TLS (mTLS) k ověření, že připojující se klient předkládá platný certifikát s očekávanou identitou. mTLS se hodí pro ověřování automatizovaných systémů a zařízení IoT, která nepoužívají poskytovatele identity, nebo jako doplňkový ověřovací faktor pro členy týmu, kteří se přihlašují také přes IdP.

Chcete-li omezit přístup na konkrétního klienta, použijte Obecný název selektor a porovnejte identitu v klientském certifikátu:

Akce Typ pravidla Selektor Hodnota
Service Auth Include Obecný název John Doe

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Authenticate service with mTLS",
		"decision": "non_identity",
		"include": [
				{
						"common_name": {
								"common_name": "John Doe"
						}
				}
		]
	}'

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "authenticate_service_with_mtls" {
  account_id = var.cloudflare_account_id
  name       = "Authenticate service with mTLS"
  decision   = "non_identity"
  include = [{
    common_name = {
      common_name = "John Doe"
    }
  }]
}

Chcete-li povolit libovolného klienta, který předloží platný certifikát podepsaný vaší certifikační autoritou (CA), použijte Platný certifikát selektor. Tento selektor se hodí, pokud důvěřujete všem certifikátům vydaným vaší CA a nepotřebujete kontrolovat konkrétní Common Name.

Akce Typ pravidla Selektor
Service Auth Include Platný certifikát

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Authenticate service with valid certificate",
		"decision": "non_identity",
		"include": [
				{
						"certificate": {}
				}
		]
	}'

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "authenticate_service_with_valid_certificate" {
  account_id = var.cloudflare_account_id
  name       = "Authenticate service with valid certificate"
  decision   = "non_identity"
  include = [{
    certificate = {}
  }]
}

Vyžadovat odůvodnění účelu u citlivých aplikací

U aplikací, jako jsou nástroje pro správu databází, produkční konzole nebo HR systémy, můžete uživatelům uložit povinnost při každém přístupu k aplikaci uvést písemné zdůvodnění. Vzniká tak auditní stopa, která bezpečnostním týmům pomáhá pochopit, proč byl přístup vyžádán. Obrazovka s odůvodněním se zobrazí po ověření uživatele a předtím, než se dostane k aplikaci. Další informace najdete v Vyžadovat odůvodnění účelu.

Akce Typ pravidla Selektor Hodnota
Allow Include Okta Groups IT Administrators
Require Gateway Gateway
Require Verze OS Latest version of Windows

Další nastavení: Zapnutí Zdůvodnění účelu.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Require purpose justification for sensitive apps",
		"decision": "allow",
		"include": [
				{
						"okta": {
								"name": "IT Administrators",
								"identity_provider_id": "<OKTA_IDP_ID>"
						}
				}
		],
		"require": [
				{
						"device_posture": {
								"integration_uid": "<GATEWAY_CHECK_ID>"
						}
				},
				{
						"device_posture": {
								"integration_uid": "<WINDOWS_VERSION_CHECK_ID>"
						}
				}
		],
		"purpose_justification_required": true,
		"purpose_justification_prompt": "Please enter a justification for accessing this application."
	}'

Nahraďte okta pravidlo s příslušné pravidlo pro vašeho poskytovatele identity. Chcete-li získat ID svého poskytovatele identity, použijte List Access identity providers endpoint. Chcete-li získat UID integrace pro kontroly stavu zařízení, použijte Seznam kontrol stavu zařízení koncový bod.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "require_purpose_justification" {
  account_id                      = var.cloudflare_account_id
  name                            = "Require purpose justification for sensitive apps"
  decision                        = "allow"
  purpose_justification_required  = true
  purpose_justification_prompt    = "Please enter a justification for accessing this application."
  include = [{
    okta = {
      name                 = "IT Administrators"
      identity_provider_id = cloudflare_zero_trust_access_identity_provider.okta.id
    }
  }]
  require = [
    {
      device_posture = {
        integration_uid = cloudflare_zero_trust_device_posture_rule.gateway_check.id
      }
    },
    {
      device_posture = {
        integration_uid = cloudflare_zero_trust_device_posture_rule.windows_version.id
      }
    },
  ]
}

Odůvodnění účelu můžete kombinovat s dočasné ověření a vyžadujte navíc schválení od určeného recenzenta před udělením přístupu.

Obejít veřejný endpoint

Některé aplikace mají endpointy, které musí být veřejně dostupné, například OAuth callback URL, příjemce webhooků nebo cesty pro health check. Můžete vytvořit zásadu Bypass omezenou na konkrétní cesta k aplikaci zakázat vynucování Access pouze pro daný endpoint. Pokud je například vaše aplikace app.example.com, můžete vytvořit samostatnou aplikaci Access pro app.example.com/oauth/callback a aplikujte následující zásadu Bypass:

Akce Typ pravidla Selektor Hodnota
Bypass Include Všichni Everyone

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Apps and Policies Write
Vytvořit opakovaně použitelnou zásadu Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/policies" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Bypass public endpoint",
		"decision": "bypass",
		"include": [
				{
						"everyone": {}
				}
		]
	}'

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

Alespoň jeden z následujících oprávnění tokenu je povinné:

  • Access: Apps and Policies Write

Nakonfigurujte cloudflare_zero_trust_access_policy prostředek:

resource "cloudflare_zero_trust_access_policy" "bypass_public_endpoint" {
  account_id = var.cloudflare_account_id
  name       = "Bypass public endpoint"
  decision   = "bypass"
  include = [{
    everyone = {}
  }]
}