跳到主要内容

零信任访问控制

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: [email protected]

效果

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

访问策略详解

规则类型

Include(包含)

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

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

Require(要求)

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

Require:
- Country: United States
- Email: [email protected]

Exclude(排除)

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

Exclude:
- Email: [email protected]

选择器类型

选择器说明示例
Email特定邮箱[email protected]
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: [email protected]
Session Duration: 8 hours

如何处理多个应用?

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

参考资源

下一步

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