九零不老心
发布于 2025-12-12 / 9 阅读 / 0 评论 / 0 点赞

cloudflare tunnel 策略选择器简介

常用策略选择器

一、用户身份类选择器(针对人工用户)

1. Emails

  • 含义:精确匹配指定单个/多个用户邮箱

  • 使用场景:仅开放给少数核心用户(如管理员、特定项目成员)

  • 配置步骤

    1. 选择「Emails」作为选择器;

    2. 「值」填写邮箱(多个用逗号分隔,例:admin@company.com,dev@company.com)。

2. Emails ending in

  • 含义:匹配特定域名后缀的所有邮箱(企业/组织统一邮箱)

  • 使用场景:开放给整个企业/团队的所有员工

  • 配置步骤

    1. 选择「Emails ending in」;

    2. 「值」填写邮箱后缀(例:@company.com)。

3. Everyone

  • 含义:匹配所有通过Cloudflare身份验证的用户(只要登录了你的身份提供商,比如企业SSO)

  • 使用场景:企业内部通用工具(无额外权限限制)

  • 配置步骤:选择「Everyone」后,无需填写「值」。

二、网络位置类选择器(限制访问来源)

1. Country

  • 含义:基于IP定位匹配用户所在国家/地区

  • 使用场景:仅允许特定国家用户访问(如国内业务仅开放给中国IP)

  • 配置步骤

    1. 选择「Country」;

    2. 「值」填写ISO 3166-1两位国家代码(例:CN=中国、US=美国)。

2. IP ranges

  • 含义:匹配特定IP地址/IP段(支持CIDR格式)

  • 使用场景:仅允许企业办公网、数据中心等固定IP访问

  • 配置步骤

    1. 选择「IP ranges」;

    2. 「值」填写CIDR格式的IP段(例:192.168.0.0/24=办公内网、203.0.113.5/32=单个服务器IP)。

三、认证方式类选择器(限制登录手段)

1. Authentication Method

  • 含义:限制用户使用的身份验证强度(如强制双因素认证)

  • 使用场景:敏感应用要求高安全验证(如财务系统)

  • 配置步骤

    1. 选择「Authentication Method」;

    2. 「值」填写验证方式标识(例:2fa=双因素认证、password=仅密码)。

2. Login Methods

  • 含义:限制用户使用的具体登录渠道(如仅允许企业SSO,禁止Google OAuth)

  • 使用场景:统一企业登录入口,避免第三方登录

  • 配置步骤

    1. 选择「Login Methods」;

    2. 「值」填写登录渠道标识(例:okta-sso=企业Okta登录、azure-ad=微软AD登录)。

四、证书/凭证类选择器(非人工/高安全认证)

1. Common name

  • 含义:匹配用户客户端证书的通用名称(CN字段)

  • 使用场景:设备级强认证(如企业专用终端、服务器)

  • 配置步骤

    1. 先要求访问方安装你签发的客户端证书;

    2. 选择「Common name」;

    3. 「值」填写证书的CN内容(例:device-001.company.com)。

2. Valid Certificate

  • 含义:验证用户是否携带你信任的CA签发的客户端证书(不限制具体CN)

  • 使用场景:极高安全场景(如金融、涉密系统)

  • 配置步骤:选择「Valid Certificate」后,无需填值(自动验证证书是否在你的信任CA列表中)。

3. Service Token(含Any Access Service Token)

  • 含义:给非人工实体(API、脚本、自动化服务) 用的授权凭证

  • 使用场景:允许程序/服务访问应用(无需人工登录)

  • 配置步骤

    1. 先在Cloudflare Access中创建「服务令牌」,保存「客户端ID」和「密钥」;

    2. 选择「Service Token」;

    3. 「值」填写令牌名称;

    4. 访问方需在请求头携带:CF-Access-Client-Id: {客户端ID} + CF-Access-Client-Secret: {密钥}

五、集成/自定义类选择器(扩展规则)

1. External Evaluation

  • 含义:调用外部Webhook服务自定义访问规则(Cloudflare会把用户信息发给Webhook,由它返回是否允许)

  • 使用场景:结合企业内部权限系统(如仅部门经理可访问)

  • 配置步骤

    1. 配置外部Webhook端点(需返回{"allow": true/false});

    2. 选择「External Evaluation」;

    3. 「值」填写Webhook的标识名称。

2. Linked App Token

  • 含义:关联Cloudflare Zero Trust中其他应用的令牌,实现跨应用授权联动

  • 使用场景:只有通过某关联应用验证的实体,才能访问当前应用

  • 配置步骤

    1. 在Cloudflare中创建关联应用的令牌;

    2. 选择「Linked App Token」;

    3. 「值」填写关联应用的令牌标识。

六、规则复用类选择器(简化复杂配置)

Rule group

  • 含义:引用已创建的规则组(将多个规则打包,可在多个应用中复用)

  • 使用场景:多个应用需要相同访问规则(如所有内部工具都要求“企业邮箱+2FA”)

  • 配置步骤

    1. 先在Cloudflare中创建规则组(打包多个选择器);

    2. 选择「Rule group」;

    3. 「值」填写目标规则组的名称。

通用策略逻辑

  • “包括”规则:多个“包括”是“或”关系(满足任意一个即可访问);

  • “排除”规则:优先级高于“包括”(满足排除条件则直接拒绝);

  • 可搭配「目的正当性」开关:强制用户填写访问理由后再进入(用于敏感应用审计)。

综合示例:配置“企业邮箱+办公IP+2FA”策略

  1. 选择规则类型为「包括」;

  2. 第一个选择器:「Emails ending in」→ 值填@company.com

  3. 点击“+”添加第二个选择器:「IP ranges」→ 值填192.168.0.0/24

  4. 再添加第三个选择器:「Authentication Method」→ 值填2fa

  5. 开启「目的正当性」开关,填写提示语(例:“请填写访问此系统的业务理由”);

  6. 保存策略即可。

范例

Cloudflare Access 本身是零信任安全模型,默认不支持 “固定密码” 登录(出于安全考虑,避免弱密码风险),但可以用 「指定邮箱 + 邮箱一次性 PIN」 实现 “仅你 / 指定人访问” 的需求 —— 这是最简单的方式(无需第三方工具,Cloudflare 自带功能)。

最简单的操作步骤(指定人 + 邮箱验证)

步骤 1:配置 “仅指定邮箱可访问” 的策略

  1. 进入 Cloudflare Access 的「策略」页面,选择要限制的应用;

  2. 规则类型选「包括」;

  3. 选择器选「Emails」;

  4. 「值」填写你和指定人的邮箱(多个用逗号分隔,例:你的邮箱@xxx.com,指定人邮箱@xxx.com)。

步骤 2:启用 “邮箱一次性 PIN” 登录(作为验证方式)

Cloudflare 默认支持「Email One-Time PIN」身份提供商(无需额外配置):

  1. 进入 Cloudflare Zero Trust 的「设置」→「身份提供商」;

  2. 确保「Email One-Time PIN」已启用(默认是开启的)。

步骤 3:访问测试

当你或指定人访问该应用时:

  1. 输入自己的邮箱(必须是策略里填的);

  2. 邮箱会收到 Cloudflare 发送的一次性 PIN(6 位数字);

  3. 输入 PIN 即可登录。

分类速查表

分类

选择器名称

核心用途

配置要点

用户身份类

Emails

开放给指定单个/多个用户

「值」填邮箱(多个用逗号分隔,例:a@x.com,b@x.com

用户身份类

Emails ending in

开放给某域名后缀的所有用户(企业邮箱)

「值」填邮箱后缀(例:@x.com

用户身份类

Everyone

开放给所有已通过Cloudflare认证的用户

无需填「值」

网络位置类

Country

限制仅特定国家/地区用户访问

「值」填ISO两位国家代码(例:CN=中国)

网络位置类

IP ranges

限制仅特定IP段访问(办公网/数据中心)

「值」填CIDR格式IP段(例:192.168.0.0/24

认证方式类

Authentication Method

强制特定验证强度(如双因素认证)

「值」填验证方式(例:2fa=双因素)

认证方式类

Login Methods

强制特定登录渠道(如企业SSO)

「值」填登录渠道标识(例:okta-sso

证书/凭证类

Common name

设备级认证(匹配客户端证书的CN字段)

「值」填证书CN内容(例:device-001.x.com

证书/凭证类

Valid Certificate

验证客户端证书是否由信任CA签发

无需填「值」

证书/凭证类

Service Token

给非人工实体(API/脚本)的授权凭证

「值」填令牌名称,访问方需携带令牌头

集成/自定义类

External Evaluation

调用外部Webhook自定义访问规则

「值」填Webhook标识,外部服务返回allow: true/false

集成/自定义类

Linked App Token

跨Cloudflare应用的授权联动

「值」填关联应用的令牌标识

规则复用类

Rule group

复用已打包的规则组(多应用共用规则)

「值」填目标规则组名称