跳到主要内容

零信任访问控制

Cloudflare Access 是零信任网络访问(ZTNA)解决方案,让你可以在不使用 VPN 的情况下安全地访问内部应用。通过身份验证和设备状态检查,确保只有授权用户才能访问你的应用。

什么是零信任访问?​

传统 VPN vs 零信任​

传统 VPN 模式:

用户 → VPN 连接 → 企业网络 → 内部应用

问题:

  • 一旦连接 VPN,可以访问整个网络
  • 凭证泄露风险高
  • 难以管理和审计
  • 用户体验差

零信任模式:

用户 → 身份验证 → 设备检查 → 应用访问

优势:

  • 每个应用独立验证
  • 最小权限原则
  • 详细审计日志
  • 无需 VPN 客户端

Cloudflare Access 的优势​

特点说明
无需 VPN通过浏览器或客户端访问
多因素认证支持多种身份提供商
设备状态检查验证设备安全性
细粒度控制基于用户、组、IP 等条件
详细日志记录所有访问请求
免费额度最多 50 个用户免费

启用 Cloudflare Access​

前提条件​

  • 拥有 Cloudflare 账户
  • 域名已添加到 Cloudflare
  • 应用已通过 Cloudflare 代理

步骤一:启用 Zero Trust​

  1. 登录 Cloudflare 控制台
  2. 点击左侧菜单 "Zero Trust"
  3. 选择团队名称
  4. 选择计划(Free 计划支持 50 个用户)

步骤二:配置身份提供商​

Access 支持多种身份验证方式:

支持的 IdP:

IdP特点
One-time PIN邮箱验证码,无需配置
Google Workspace企业常用
Microsoft Entra ID企业常用
Okta企业 SSO
GitHub开发者友好
LinkedIn社交登录

配置 GitHub 登录:

  1. 进入 "Settings" → "Authentication"
  2. 点击 "Add new" → "GitHub"
  3. 在 GitHub 创建 OAuth App
  4. 填写 Client ID 和 Client Secret
  5. 保存配置

配置 Google Workspace:

  1. 在 Google Cloud Console 创建 OAuth 凭证
  2. 配置授权重定向 URI
  3. 在 Cloudflare 填写凭证信息
  4. 测试连接

创建 Access 应用​

自托管应用​

保护你自己的应用:

  1. 进入 "Access" → "Applications"
  2. 点击 "Add an application"
  3. 选择 "Self-hosted"

配置应用:

Application domain: app.example.com
Path: / (或特定路径)

SaaS 应用​

保护第三方 SaaS 应用:

  1. 选择 "SaaS"
  2. 配置应用信息
  3. 设置 IdP
  4. 配置 SAML 或 OIDC

创建访问策略​

策略决定谁可以访问应用:

策略结构:

Action(操作):
- Allow(允许)
- Block(阻止)
- Bypass(绕过)
- Service Auth(服务认证)

Rules(规则):
- Include(包含):OR 逻辑
- Require(要求):AND 逻辑
- Exclude(排除):NOT 逻辑

示例策略:

Action: Allow
Include:
- Emails ending in: @company.com
Require:
- Country: United States
Exclude:
- Email: blocked@company.com

效果:

  • 允许所有 @company.com 邮箱用户
  • 必须来自美国
  • 排除特定用户

访问策略详解​

规则类型​

Include(包含):

类似 OR 逻辑,满足任一条件即可:

Include:
- Emails ending in: @company.com
- Emails ending in: @partner.com

Require(要求):

类似 AND 逻辑,必须满足所有条件:

Require:
- Country: United States
- Email: admin@company.com

Exclude(排除):

类似 NOT 逻辑,排除特定用户:

Exclude:
- Email: blocked@company.com

选择器类型​

选择器说明示例
Email特定邮箱admin@company.com
Emails ending in邮箱后缀@company.com
Country国家/地区United States
IP rangesIP 地址范围192.168.1.0/24
Everyone所有人-
Groups用户组admins
Device posture设备状态已安装防病毒软件
Login Methods登录方式GitHub, Google

操作类型​

Allow(允许):

允许符合条件的用户访问应用。

Block(阻止):

阻止特定用户访问。

Action: Block
Include:
- Country: Russian Federation

Bypass(绕过):

绕过 Access 检查,直接访问应用。

警告:Bypass 会完全绕过安全控制,谨慎使用。

Service Auth(服务认证):

用于服务间认证,支持 mTLS 和服务令牌。

设备状态检查​

启用设备状态检查​

验证用户设备的安全性:

  1. 进入 "My Team" → "Devices"
  2. 启用 "Device posture"
  3. 配置检查规则

检查类型​

检查类型说明
Disk encryption磁盘加密
OS version操作系统版本
Firewall防火墙状态
Antivirus防病毒软件
WARP是否连接 WARP

在策略中使用​

Require:
- Device posture: Disk encryption enabled
- Device posture: WARP connected

访问令牌管理​

服务令牌​

用于服务间认证:

  1. 进入 "Access" → "Service Auth" → "Service Tokens"
  2. 点击 "Create Service Token"
  3. 设置令牌名称和有效期
  4. 保存 Client ID 和 Client Secret

使用服务令牌:

curl -H "CF-Access-Client-Id: <client-id>" \
-H "CF-Access-Client-Secret: <client-secret>" \
https://app.example.com/api

mTLS 认证​

使用客户端证书认证:

  1. 进入 "Access" → "Service Auth" → "Mutual TLS"
  2. 上传 CA 证书
  3. 配置应用使用 mTLS

审计和日志​

访问日志​

查看所有访问请求:

  1. 进入 "Logs" → "Access"
  2. 查看登录事件
  3. 查看拒绝事件

日志字段:

字段说明
Timestamp时间戳
User用户邮箱
Application应用名称
Action允许/拒绝
Country国家
IP AddressIP 地址

导出日志​

支持导出到:

  • S3
  • Datadog
  • Splunk
  • Sumo Logic

常见配置示例​

保护管理后台​

Application: admin.example.com

Policy:
Action: Allow
Include:
- Emails ending in: @company.com
Require:
- Country: United States
- Groups: admins

保护内部工具​

Application: internal.example.com

Policy:
Action: Allow
Include:
- Emails ending in: @company.com
Require:
- Device posture: WARP connected

保护 API​

Application: api.example.com

Policy:
Action: Service Auth
Include:
- Service Token: api-service

Cloudflare WARP 客户端​

安装 WARP​

用户可以安装 WARP 客户端获得更好的体验:

  1. 下载 WARP 客户端
  2. 登录团队账户
  3. 连接后自动满足设备状态检查

下载地址:

  • Windows: https://1.1.1.1/
  • macOS: App Store
  • iOS: App Store
  • Android: Google Play

设备注册​

用户首次使用需要注册设备:

  1. 打开 WARP 客户端
  2. 选择 "Login with Cloudflare"
  3. 输入团队名称
  4. 完成身份验证

最佳实践​

最小权限原则​

  • 只授予必要的访问权限
  • 使用 Require 规则添加额外限制
  • 定期审查访问权限

多因素认证​

  • 启用 IdP 的多因素认证
  • 使用设备状态检查作为第二因素

监控和告警​

  • 设置异常登录告警
  • 定期审查访问日志
  • 监控失败的登录尝试

定期审计​

  • 每月审查访问策略
  • 移除离职用户权限
  • 更新过期的规则

常见问题​

用户无法访问应用?​

检查:

  1. 用户是否在允许列表中
  2. 身份提供商是否配置正确
  3. 设备状态是否满足要求
  4. 检查访问日志查看拒绝原因

如何添加临时访问?​

创建有时间限制的策略:

Action: Allow
Include:
- Email: contractor@external.com
Session Duration: 8 hours

如何处理多个应用?​

为每个应用创建独立策略,或使用应用组统一管理。

参考资源​

下一步​

了解零信任访问后,你可以: