Cloudflare Zero Trust: thay thế VPN truyền thống, bảo mật truy cập nội bộ cho team nhỏ
VPN truyền thống hoạt động theo kiểu "vào được mạng nội bộ thì truy cập được tất cả". Zero Trust đảo ngược logic đó: "không tin bất kỳ ai, kể cả người trong mạng - mỗi lần truy cập đều phải verify identity". Cloudflare Zero Trust (phần của Cloudflare One) cung cấp đầy đủ stack này miễn phí cho team dưới 50 người: Access control, Tunnel, Gateway DNS filtering, và WARP device client. ---
Vấn đề với VPN truyền thống
Nhiều team vẫn đang dùng VPN để nhân viên remote truy cập hệ thống nội bộ. Mô hình này có vấn đề cơ bản:
1. All-or-nothing access. Một khi vào được VPN, user có thể reach toàn bộ mạng nội bộ - kể cả những resource họ không cần. Nếu account bị compromise, attacker có ngay foothold trong toàn bộ internal network.
2. Maintenance overhead. VPN server cần maintain, certificate cần renew, client cần update trên từng máy. Với team nhỏ không có dedicated DevOps, đây là gánh nặng thực sự.
3. UX kém. VPN chậm hơn truy cập trực tiếp (thêm một hop), nhiều VPN client gây conflict với các tool khác, và "VPN đang bị lỗi" là câu cửa miệng trong nhiều team.
4. Blind spot. VPN không có visibility vào device health - máy nhiễm virus vẫn kết nối được VPN nếu có credentials đúng.
Giải thích: Zero Trust là gì
Zero Trust không phải một sản phẩm cụ thể - đó là một triết lý bảo mật với nguyên tắc cốt lõi:
"Never trust, always verify" - không tin ai mặc định, kể cả traffic từ bên trong mạng nội bộ.
Thay vì kiểm soát ở perimeter (ai vào được mạng), Zero Trust kiểm soát ở từng resource (ai truy cập được service cụ thể nào, từ thiết bị nào, tại thời điểm nào).
VPN model: [Internet] → [VPN gateway] → [Toàn bộ internal network]
↑
Nếu VPN pass → vào hết
Zero Trust: [Internet] → [Cloudflare Edge] → [Access policy check]
↓
Identity? Device? Location?
↓
✓ Pass → Service cụ thể
✗ Fail → Blocked
Cloudflare One: 4 thành phần chính
Cloudflare Zero Trust (tên sản phẩm: Cloudflare One) bao gồm:
| Thành phần | Chức năng |
|---|---|
| Access | Identity-aware proxy - kiểm soát ai được vào service nào |
| Tunnel | Outbound connector - expose service nội bộ không cần public IP |
| Gateway | DNS/HTTP filtering - chặn malware, phishing, content không phù hợp |
| WARP | Device client - route traffic qua Cloudflare, enforce device posture |
Bài Cloudflare Tunnel đã cover phần Tunnel. Bài này tập trung vào Access - phần quan trọng nhất với team nhỏ.
Setup Cloudflare Access: bảo vệ service nội bộ
Bước 1: Vào Zero Trust dashboard
- Vào dash.cloudflare.com → chọn account
- Click Zero Trust ở sidebar
- Lần đầu sẽ cần chọn team name (subdomain
.cloudflareaccess.com) và plan - chọn Free (50 users)
Bước 2: Cấu hình Identity Provider
Trước khi tạo policy, cần có nguồn identity để verify user. Cloudflare Access hỗ trợ:
- Google Workspace / Gmail - phổ biến nhất với team VN
- Microsoft Azure AD / Entra ID - nếu dùng Microsoft 365
- GitHub - tiện cho team developer
- OTP qua email - đơn giản nhất, không cần provider ngoài
Vào Settings → Authentication → Add new. Chọn Google và làm theo wizard - cần tạo OAuth App trong Google Cloud Console, lấy Client ID và Client Secret.
Sau khi setup, test login: click Test - nếu hiện tài khoản Google của bạn là thành công.
Bước 3: Tạo Application (service cần bảo vệ)
Vào Access → Applications → Add an Application → Self-hosted.
Ví dụ: bảo vệ Grafana dashboard đang chạy trên monitoring.yourdomain.com:
Application name: Grafana Monitoring
Session duration: 24 hours
Application domain: monitoring.yourdomain.com
Bước 4: Tạo Access Policy
Trong application vừa tạo, thêm policy:
Policy cơ bản - chỉ cho phép email nội bộ:
Policy name: BKGlobal Team Only
Action: Allow
Include rule:
Selector: Emails
Value: user1@bkglobal.vn, user2@bkglobal.vn
OR
Selector: Email domain
Value: bkglobal.vn ← toàn bộ @bkglobal.vn đều được vào
Policy nâng cao - thêm điều kiện theo country:
Policy name: Vietnam Team Access
Action: Allow
Include rule:
Selector: Email domain
Value: bkglobal.vn
Require rule (tất cả phải pass):
Selector: Country
Value: Vietnam
Với policy này: user phải có email @bkglobal.vn VÀ đang ở Việt Nam mới được vào.
Luồng trải nghiệm của user
Sau khi setup Access, đây là những gì user thấy khi vào monitoring.yourdomain.com:
- Cloudflare Access chặn → hiện màn hình login "Sign in with Google"
- User click → redirect sang Google OAuth
- Google verify → trả token về Cloudflare
- Cloudflare check policy → email có trong allowed list không?
- Pass → cookie session được tạo → user vào được service
- Fail → "You don't have access" - blocked
Session mặc định 24 giờ. Sau đó cần login lại.
Code minh họa: Service Token cho CI/CD
Đôi khi bạn cần pipeline tự động (GitHub Actions, Jenkins) truy cập service được bảo vệ bởi Access mà không cần browser login. Dùng Service Token.
Tạo service token: Access → Service Auth → Service Tokens → Create Service Token.
Dùng trong GitHub Actions:
# .github/workflows/deploy.yml
- name: Health check internal API
env:
CF_ACCESS_CLIENT_ID: ${{ secrets.CF_ACCESS_CLIENT_ID }}
CF_ACCESS_CLIENT_SECRET: ${{ secrets.CF_ACCESS_CLIENT_SECRET }}
run: |
curl -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \
-H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET" \
https://api.yourdomain.com/health
Trong Access policy, thêm rule cho service token:
Include rule:
Selector: Service Token
Value: [chọn token vừa tạo]
Gateway: DNS filtering cho team
Bên cạnh Access, Cloudflare Gateway là một tính năng hay cho team: filter DNS ở cấp độ network, chặn malware, phishing, và các domain nguy hiểm trước khi chúng load.
Setup nhanh với WARP client:
- Settings → WARP Client → Device enrollment → tạo enrollment policy (chỉ cho phép email
@bkglobal.vnenroll) - Nhân viên download Cloudflare WARP → login bằng email công ty → thiết bị tự đăng ký vào team
- Gateway → DNS → Policies → tạo policy chặn categories: Malware, Phishing, Cryptomining
Từ đây, tất cả DNS query từ máy nhân viên đều đi qua Cloudflare Gateway trước - malware domain bị chặn ở cấp DNS, không bao giờ resolve được.
So sánh: Cloudflare Zero Trust vs VPN truyền thống
| Tiêu chí | VPN truyền thống | Cloudflare Zero Trust |
|---|---|---|
| Truy cập | All-or-nothing | Per-application, per-policy |
| Identity | Credentials (username/pass) | OAuth, SSO, MFA |
| Device health | Không check | Device posture check |
| Visibility | Thấp | Log đầy đủ mọi access attempt |
| Maintain | Server cần update, cert renew | Managed by Cloudflare |
| Giá (team < 50) | Tốn phí VPN server | Miễn phí |
| UX | Chậm, hay lỗi client | Nhanh hơn, chỉ cần browser |
| Self-hosted | Cần server | Không cần |
Giới hạn free plan cần biết
| Feature | Free (50 users) |
|---|---|
| Số users | 50 |
| Access applications | Không giới hạn |
| Gateway policies | Không giới hạn |
| Audit logs | 24 giờ |
| Service tokens | Không giới hạn |
| Device posture | Cơ bản |
Với team startup hoặc SME dưới 50 người, free plan là đủ cho hầu hết use case.
Best practices từ thực tế
1. Bắt đầu với Access, không cần WARP ngay. Access (bảo vệ từng app) là giá trị rõ ràng nhất, setup nhanh nhất. WARP và Gateway là layer thêm - làm sau khi đã quen.
2. Dùng email domain, không dùng email cụ thể. Email domain: bkglobal.vn dễ maintain hơn list email thủ công - nhân viên mới tự động được vào, nhân viên cũ chỉ cần revoke Google account.
3. Luôn có bypass cho emergency. Tạo một service token cho ops team để bypass Access khi cần debug khẩn cấp - đừng để bị lock out khỏi chính hệ thống của mình.
4. Audit logs là bạn. Vào Access → Overview → xem ai đã truy cập gì, từ đâu, lúc mấy giờ. Khi có incident, đây là nguồn đầu tiên cần xem.
5. Kết hợp Tunnel + Access. Đây là combo mạnh nhất: Tunnel expose service nội bộ không cần public IP, Access kiểm soát ai được vào. Service nội bộ của bạn sẽ vừa accessible vừa secure.
Kết
Cloudflare Zero Trust không phải "enterprise-only" - free plan cho 50 users là đủ để team nhỏ có một hệ thống access control theo chuẩn enterprise. Không cần maintain VPN server, không cần public IP, không cần SSL certificate riêng. Identity-aware access thay thế hoàn toàn mô hình VPN all-or-nothing truyền thống.
Series Cloudflare của chúng tôi đã cover:
- Cài đặt Cloudflare cho nhiều domain - onboarding và automation
- Redirect nhiều domain về một domain chính - Redirect Rules
- Cloudflare Tunnel - expose service nội bộ
- Cloudflare Zero Trust (bài này) - bảo mật truy cập
Bước tiếp theo nếu bạn muốn đào sâu hơn: Cloudflare Workers và R2 Storage - compute và storage ở edge, không cần server truyền thống.
Tham khảo
- Cloudflare One - Official docs
- Get started with Cloudflare Zero Trust
- Access policies reference
- Zero Trust for startups - Reference architecture
- How to implement Zero Trust security
- How to configure Cloudflare Zero Trust (2026)
BKGlobal Tech Team