<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ztna on Tarragon</title><link>https://tarrragon.github.io/blog/tags/ztna/</link><description>Recent content in Ztna on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/ztna/index.xml" rel="self" type="application/rss+xml"/><item><title>Cloudflare Access</title><link>https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/cloudflare-access/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/cloudflare-access/</guid><description>&lt;p>Cloudflare Access 是 application-layer Zero Trust Network Access (ZTNA) portal、定位是 &lt;em>取代 VPN&lt;/em> — 使用者不再先撥 VPN 進內網再連 internal app、而是 IdP 認證後 Access policy 直接判斷能不能進該 application、流量走 Cloudflare global edge。它跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &amp;#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &amp;#43; session recording &amp;#43; JIT、跟 Okta / Vault 互補">Teleport&lt;/a> / &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/tailscale-ssh/" data-link-title="Tailscale SSH" data-link-desc="WireGuard-based zero-trust mesh &amp;#43; identity-bound SSH、ACL JSON policy、developer-friendly、跟 IdP integration 取代 SSH key">Tailscale SSH&lt;/a> / &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/boundary/" data-link-title="HashiCorp Boundary" data-link-desc="Identity-based access broker、跟 Vault 同生態組合（Boundary 控連線 / Vault 給 credential）、Multi-hop Worker 跨網路分段">Boundary&lt;/a> 解 &lt;em>不同層的 access&lt;/em> — Cloudflare Access 解 &lt;em>application 層 ZTNA&lt;/em>、Teleport 解 &lt;em>infrastructure 層 PAM + session recording&lt;/em>、Tailscale 解 &lt;em>device-level mesh VPN&lt;/em>、Boundary 解 &lt;em>credential brokering&lt;/em>。&lt;/p>
&lt;h2 id="服務定位">服務定位&lt;/h2>
&lt;p>Cloudflare Access 的核心責任是 &lt;em>application-level 認證 + authorization&lt;/em>、不是 network-level routing。一個 Application（hostname / subdomain）對應一組 Access Policy（rule with identity / device / network condition）、user 從 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/okta/" data-link-title="Okta" data-link-desc="SaaS Identity Provider 主流選項、SSO / MFA / lifecycle 整合、第三方信任邊界的代價">Okta&lt;/a> / Google / Azure AD / GitHub 等 IdP 認證後、policy engine 決定能不能進、不能進連到 application backend 都沒機會。它是 Cloudflare Zero Trust suite 的核心、跟 &lt;em>WARP client&lt;/em>（device agent）、&lt;em>Gateway&lt;/em>（DNS / HTTP filtering、取代 Cisco Umbrella 類）、&lt;em>Argo Tunnel&lt;/em>（origin-side outbound、不開 ingress port）組成完整 SASE / Cloudflare One 平台。&lt;/p>
&lt;p>跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &amp;#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &amp;#43; session recording &amp;#43; JIT、跟 Okta / Vault 互補">Teleport&lt;/a> 比、Cloudflare Access 走 &lt;em>application-layer + Cloudflare edge&lt;/em>、Teleport 走 &lt;em>infrastructure-layer + 完整 session recording&lt;/em>。需要 keystroke / RDP / kubectl 完整錄影做合規（PCI / HIPAA）走 Teleport、需要把所有 internal web app 收進統一 ZTNA portal 走 Cloudflare Access、兩者並存常見：Teleport 管 SSH / DB / Kubernetes、Cloudflare Access 管 internal web。跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/tailscale-ssh/" data-link-title="Tailscale SSH" data-link-desc="WireGuard-based zero-trust mesh &amp;#43; identity-bound SSH、ACL JSON policy、developer-friendly、跟 IdP integration 取代 SSH key">Tailscale SSH&lt;/a> 比、Tailscale 是 &lt;em>mesh VPN + device-to-device WireGuard&lt;/em>、Cloudflare Access 是 &lt;em>application proxy via edge&lt;/em>。Tailscale 適合 developer 直接 SSH 到雲機、Cloudflare Access 適合 internal app（GitLab / Jenkins / 內部 dashboard）統一收口。跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/cloudflare-waf/" data-link-title="Cloudflare WAF" data-link-desc="Edge WAF &amp;#43; DDoS &amp;#43; Bot management 整合套件、global anycast 網路、控制面信任邊界跟客戶側補強的對照">Cloudflare WAF&lt;/a> 的關係：同 Cloudflare 控制面、共用 API token / Audit Log / Logpush、但解不同問題 — WAF 防 &lt;em>public app&lt;/em>（attacker 從外打 production web）、Access 防 &lt;em>internal app&lt;/em>（員工 / 廠商存取後台）、兩者常在同一個 Cloudflare account 共存。&lt;/p></description><content:encoded><![CDATA[<p>Cloudflare Access 是 application-layer Zero Trust Network Access (ZTNA) portal、定位是 <em>取代 VPN</em> — 使用者不再先撥 VPN 進內網再連 internal app、而是 IdP 認證後 Access policy 直接判斷能不能進該 application、流量走 Cloudflare global edge。它跟 <a href="/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &#43; session recording &#43; JIT、跟 Okta / Vault 互補">Teleport</a> / <a href="/blog/backend/07-security-data-protection/vendors/tailscale-ssh/" data-link-title="Tailscale SSH" data-link-desc="WireGuard-based zero-trust mesh &#43; identity-bound SSH、ACL JSON policy、developer-friendly、跟 IdP integration 取代 SSH key">Tailscale SSH</a> / <a href="/blog/backend/07-security-data-protection/vendors/boundary/" data-link-title="HashiCorp Boundary" data-link-desc="Identity-based access broker、跟 Vault 同生態組合（Boundary 控連線 / Vault 給 credential）、Multi-hop Worker 跨網路分段">Boundary</a> 解 <em>不同層的 access</em> — Cloudflare Access 解 <em>application 層 ZTNA</em>、Teleport 解 <em>infrastructure 層 PAM + session recording</em>、Tailscale 解 <em>device-level mesh VPN</em>、Boundary 解 <em>credential brokering</em>。</p>
<h2 id="服務定位">服務定位</h2>
<p>Cloudflare Access 的核心責任是 <em>application-level 認證 + authorization</em>、不是 network-level routing。一個 Application（hostname / subdomain）對應一組 Access Policy（rule with identity / device / network condition）、user 從 <a href="/blog/backend/07-security-data-protection/vendors/okta/" data-link-title="Okta" data-link-desc="SaaS Identity Provider 主流選項、SSO / MFA / lifecycle 整合、第三方信任邊界的代價">Okta</a> / Google / Azure AD / GitHub 等 IdP 認證後、policy engine 決定能不能進、不能進連到 application backend 都沒機會。它是 Cloudflare Zero Trust suite 的核心、跟 <em>WARP client</em>（device agent）、<em>Gateway</em>（DNS / HTTP filtering、取代 Cisco Umbrella 類）、<em>Argo Tunnel</em>（origin-side outbound、不開 ingress port）組成完整 SASE / Cloudflare One 平台。</p>
<p>跟 <a href="/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &#43; session recording &#43; JIT、跟 Okta / Vault 互補">Teleport</a> 比、Cloudflare Access 走 <em>application-layer + Cloudflare edge</em>、Teleport 走 <em>infrastructure-layer + 完整 session recording</em>。需要 keystroke / RDP / kubectl 完整錄影做合規（PCI / HIPAA）走 Teleport、需要把所有 internal web app 收進統一 ZTNA portal 走 Cloudflare Access、兩者並存常見：Teleport 管 SSH / DB / Kubernetes、Cloudflare Access 管 internal web。跟 <a href="/blog/backend/07-security-data-protection/vendors/tailscale-ssh/" data-link-title="Tailscale SSH" data-link-desc="WireGuard-based zero-trust mesh &#43; identity-bound SSH、ACL JSON policy、developer-friendly、跟 IdP integration 取代 SSH key">Tailscale SSH</a> 比、Tailscale 是 <em>mesh VPN + device-to-device WireGuard</em>、Cloudflare Access 是 <em>application proxy via edge</em>。Tailscale 適合 developer 直接 SSH 到雲機、Cloudflare Access 適合 internal app（GitLab / Jenkins / 內部 dashboard）統一收口。跟 <a href="/blog/backend/07-security-data-protection/vendors/cloudflare-waf/" data-link-title="Cloudflare WAF" data-link-desc="Edge WAF &#43; DDoS &#43; Bot management 整合套件、global anycast 網路、控制面信任邊界跟客戶側補強的對照">Cloudflare WAF</a> 的關係：同 Cloudflare 控制面、共用 API token / Audit Log / Logpush、但解不同問題 — WAF 防 <em>public app</em>（attacker 從外打 production web）、Access 防 <em>internal app</em>（員工 / 廠商存取後台）、兩者常在同一個 Cloudflare account 共存。</p>
<p>關鍵張力：<em>Cloudflare 控制面信任成本</em> ↔ <em>統一 ZTNA portal 的工程紅利</em> 是 Cloudflare Access 客戶的長期取捨。Cloudflare 自家 control plane 出事（<a href="/blog/backend/07-security-data-protection/cases/cloudflare-control-plane-token-2023/" data-link-title="7.C2 Cloudflare：2023 Control-plane Token 事件" data-link-desc="控制面 token 事件如何回寫 secrets 與機器憑證治理。">Cloudflare 2023 control plane token</a>）會直接打到 Access policy 變更權、客戶側必須有非 Cloudflare 路徑的 break-glass。</p>
<h2 id="本章目標">本章目標</h2>
<p>讀完本頁、讀者能判斷：</p>
<ol>
<li>Cloudflare Access 在 ZTNA / PAM stack 中承擔哪一段（application access）、哪些要外接（<a href="/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &#43; session recording &#43; JIT、跟 Okta / Vault 互補">Teleport</a> 管 infrastructure session、<a href="/blog/backend/07-security-data-protection/vendors/okta/" data-link-title="Okta" data-link-desc="SaaS Identity Provider 主流選項、SSO / MFA / lifecycle 整合、第三方信任邊界的代價">Okta</a> 管 IdP source of truth）</li>
<li>Application + Access Policy + Argo Tunnel 三者的 ownership 設計（誰建 Application、誰寫 policy、誰跑 cloudflared agent）</li>
<li>Cloudflare control plane 信任邊界 — 自家事故的 blast radius 跟客戶側 break-glass 預案</li>
<li>何時用 Cloudflare Access、何時走 Teleport / Tailscale / Zscaler 的取捨</li>
</ol>
<h2 id="最短判讀路徑">最短判讀路徑</h2>
<p>判斷 Cloudflare Access deployment 是否健康、最少看四件事：</p>
<ul>
<li><strong>誰能改 Access Policy</strong>：Cloudflare account 的 Super Admin / Access Admin 人數、policy change 是否走 Terraform / API + PR review、是否有 IdP claim 跟 Cloudflare group 雙重 enforcement</li>
<li><strong>Application 收口完整度</strong>：internal web / SSH / RDP / API 是否都進 Application 清單、是否還有 <em>bypass Cloudflare 直連 origin</em> 的暴露 IP、Argo Tunnel 是否強制（origin 防火牆只開 cloudflared outbound、不開 ingress）</li>
<li><strong>Device Posture / Service Auth 治理</strong>：human user 是否有 WARP + Device Posture 檢查（OS 版本 / EDR / disk encryption）、non-human（CI / 機器）是否走 Service Auth（mTLS cert / service token）而非共用 user account</li>
<li><strong>Logpush + break-glass</strong>：Access event / Audit Log 是否 Logpush 到 <a href="/blog/backend/07-security-data-protection/vendors/splunk/" data-link-title="Splunk" data-link-desc="業界 SIEM 標準、forwarder &#43; indexer &#43; search head 架構、SPL 為核心查詢語言、ingestion-based 計費跟偵測覆蓋率的 trade-off">Splunk</a> 或外部 SIEM、Cloudflare 自家 control plane 出事時是否有 <em>非 Cloudflare</em> 路徑可進關鍵 application（例如 emergency bastion 走獨立 IdP）</li>
</ul>
<p>四件事任一缺失、就是 <a href="/blog/backend/07-security-data-protection/identity-access-boundary/" data-link-title="7.2 身分與授權邊界" data-link-desc="以問題驅動方式整理身分、授權、會話與供應商身分鏈">Identity and Access Boundary</a> 邊界的待補項目。</p>
<h2 id="日常操作與決策形狀">日常操作與決策形狀</h2>
<p><strong>Application + Access Policy</strong>：Application 是 first-class concept、對應一個 hostname（<code>gitlab.internal.example.com</code>）或一組 subdomain。Application 綁多個 Access Policy、每個 policy 是 <em>Allow / Block / Bypass</em> rule、條件可組合 identity（IdP group / email / SAML claim）、device（Device Posture 結果 / WARP enrolled）、network（country / IP range / Service Token）。policy 順序決定優先級、第一個 match 的生效。Production 寫法是 <em>deny by default + allow specific group</em>、不是 <em>allow all + block bad</em>。</p>
<p><strong>IdP integration</strong>：Cloudflare Access 不存身份、只接 IdP — SAML / OIDC 對 <a href="/blog/backend/07-security-data-protection/vendors/okta/" data-link-title="Okta" data-link-desc="SaaS Identity Provider 主流選項、SSO / MFA / lifecycle 整合、第三方信任邊界的代價">Okta</a> / Azure AD / Google Workspace、OAuth 對 GitHub / GitLab、One-Time PIN 對外部廠商（沒 IdP 的合作方）。同一個 Application 可接多 IdP、policy 用 <code>identity.email ends with @vendor.com</code> 區分。IdP 是 source of truth、Cloudflare 是 enforcement point — IdP 出事（Okta / Azure AD 故障或被打）會直接擋住所有 Access user 登入、break-glass 預案必要。</p>
<p><strong>Argo Tunnel（cloudflared）</strong>：internal app 不開 ingress port、不需要 public IP、由 <code>cloudflared</code> agent 在 origin 主動建 outbound tunnel 到 Cloudflare edge。攻擊面從「IP + port + WAF rule」收成「cloudflared agent + Tunnel token」— attacker 從外掃不到 origin，必須先拿到 Tunnel token 或 compromise cloudflared host。Argo Tunnel 的 token 是高敏 secret、應該存 <a href="/blog/backend/07-security-data-protection/vendors/hashicorp-vault/" data-link-title="HashiCorp Vault" data-link-desc="Self-hosted secret management 與 dynamic credential / encryption-as-a-service / PKI engine、跨雲跨環境的 secret 控制面">Vault</a> 或 cloud secret manager、定期 rotate。</p>
<p><strong>Browser-based SSH / RDP / VNC</strong>：Cloudflare Access 對 SSH / RDP / VNC 提供 browser-based render — user 不裝 SSH client、瀏覽器直接連、session 經 Cloudflare edge proxy。可 log session metadata（user / app / time）但 <em>不像 Teleport 完整錄 keystroke / 螢幕</em>。合規場景（PCI 要求 session recording）需要外接 Teleport 或自己跑 session recording proxy、Cloudflare Access 解決的是 access enforcement 不是 audit replay。</p>
<p><strong>Service Auth（non-human access）</strong>：CI runner / 機器人 / API client 走 Service Auth、不需要 user identity。兩種模式：<em>mTLS</em>（client cert + Cloudflare 驗 CA）、<em>Service Token</em>（HTTP header 帶 <code>CF-Access-Client-Id</code> + <code>CF-Access-Client-Secret</code>）。token 進 <a href="/blog/backend/07-security-data-protection/vendors/hashicorp-vault/" data-link-title="HashiCorp Vault" data-link-desc="Self-hosted secret management 與 dynamic credential / encryption-as-a-service / PKI engine、跨雲跨環境的 secret 控制面">Vault</a> 或 GitHub Actions secret、定期 rotate、access log 標 service token ID 做事後追蹤。</p>
<p><strong>Device Posture</strong>：跟 WARP client / Gateway 整合、policy 可加 device 條件 — OS 版本最低、EDR（CrowdStrike / SentinelOne）running、disk encryption enabled、device certificate 已 enrolled。Device Posture check fail 時 deny access 或 fallback 到只讀 application。對應 <a href="/blog/backend/07-security-data-protection/blue-team/" data-link-title="7.B 防守者視角（藍隊）與控制面驗證" data-link-desc="從防守者角度整理控制面、偵測路由、驗證策略與演練回寫">zero-trust workforce architecture</a> 的章節原則。</p>
<p><strong>Gateway DNS / HTTP filtering</strong>：Cloudflare Gateway 是 secure web gateway（SWG）、取代 Cisco Umbrella / Zscaler ZIA 類。WARP client 把 device DNS / HTTP traffic 導到 Gateway、policy 過濾 malicious domain / category / DLP。跟 Access 共用 Cloudflare 帳號、policy 跨 Access + Gateway + WARP 統一 — 這是 Cloudflare One / SASE 的核心賣點。</p>
<p><strong>Logpush 進 SIEM</strong>：Access event（login / policy decision / session）+ Audit Log（policy change / admin action）透過 Logpush 推到 S3 / GCS / Splunk HEC / Datadog / Elastic。跟 <a href="/blog/backend/07-security-data-protection/vendors/cloudflare-waf/" data-link-title="Cloudflare WAF" data-link-desc="Edge WAF &#43; DDoS &#43; Bot management 整合套件、global anycast 網路、控制面信任邊界跟客戶側補強的對照">Cloudflare WAF</a> 共用同一個 Logpush job 配置、SIEM 端做 cross-product correlation（WAF block + Access deny 同 IP）。</p>
<h2 id="核心取捨表">核心取捨表</h2>
<table>
  <thead>
      <tr>
          <th>取捨維度</th>
          <th>Cloudflare Access</th>
          <th>Teleport</th>
          <th>Tailscale SSH</th>
          <th>Zscaler ZIA / ZPA</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>控制層級</td>
          <td>Application layer（hostname / subdomain）</td>
          <td>Infrastructure layer（SSH / DB / k8s / RDP）</td>
          <td>Network layer（device mesh WireGuard）</td>
          <td>Network + application（SASE 整套）</td>
      </tr>
      <tr>
          <td>流量路徑</td>
          <td>Cloudflare global edge proxy</td>
          <td>Teleport proxy（self-hosted / Cloud）</td>
          <td>Device-to-device WireGuard（peer-to-peer）</td>
          <td>Zscaler global cloud</td>
      </tr>
      <tr>
          <td>Session 錄影</td>
          <td>不錄 keystroke、只記 metadata</td>
          <td>完整 keystroke / 螢幕 / kubectl 錄影</td>
          <td>不錄（mesh 性質）</td>
          <td>HTTP / web session 可錄、SSH 弱</td>
      </tr>
      <tr>
          <td>取代 VPN</td>
          <td>強 — application-layer ZTNA 核心訴求</td>
          <td>部分 — 偏 PAM、需配 VPN 補 catch-all</td>
          <td>強 — mesh VPN 直接替代</td>
          <td>強 — ZPA 核心訴求</td>
      </tr>
      <tr>
          <td>Origin 暴露</td>
          <td>Argo Tunnel：origin 零 ingress</td>
          <td>Proxy 收口：origin 只開 Teleport node port</td>
          <td>不需 ingress：mesh peer 直連</td>
          <td>App connector：類似 Argo Tunnel</td>
      </tr>
      <tr>
          <td>IdP integration</td>
          <td>SAML / OIDC / OAuth、One-Time PIN for vendor</td>
          <td>SAML / OIDC</td>
          <td>SSO via IdP（簡單）</td>
          <td>SAML / OIDC</td>
      </tr>
      <tr>
          <td>計費</td>
          <td>Free（50 user）/ Standard / Premium per-user</td>
          <td>Per-user（Teleport Cloud / Enterprise）</td>
          <td>Per-user（含 free tier）</td>
          <td>Per-user enterprise license</td>
      </tr>
      <tr>
          <td>適合場景</td>
          <td>Internal web app + browser SSH/RDP 統一 portal</td>
          <td>Infrastructure access + 合規 session recording</td>
          <td>Developer SSH mesh + 小型 team</td>
          <td>大型企業全 SASE（含 SWG / CASB / DLP）</td>
      </tr>
      <tr>
          <td>退場成本</td>
          <td>中 — policy 跟 Tunnel 改設可遷</td>
          <td>中 — session log 鎖在 Teleport</td>
          <td>低 — WireGuard 標準</td>
          <td>高 — 全 stack 鎖在 Zscaler</td>
      </tr>
  </tbody>
</table>
<p>選 Cloudflare Access 的核心訴求：<em>application-layer ZTNA 取代 VPN</em> + <em>internal web app 為主 + 偶爾 browser SSH/RDP</em> + <em>已用 Cloudflare WAF / CDN 控制面</em>。需要 infrastructure-level session recording 走 Teleport、developer SSH mesh 為主走 Tailscale、要全 SASE / SWG / CASB 套裝走 Zscaler。</p>
<h2 id="進階主題">進階主題</h2>
<p><strong>Service Auth 的 non-human access 設計</strong>：CI / 機器人 / 第三方 API client 不該共用 user account、改走 Service Token 或 mTLS。設計重點：<em>token 不進 git</em>（<a href="/blog/backend/07-security-data-protection/vendors/hashicorp-vault/" data-link-title="HashiCorp Vault" data-link-desc="Self-hosted secret management 與 dynamic credential / encryption-as-a-service / PKI engine、跨雲跨環境的 secret 控制面">Vault</a> / GitHub Actions secret）、<em>per-service token</em>（不共用、追蹤責任）、<em>rotation lifecycle</em>（90 天 / 半年 rotate）、<em>access log 標 token ID</em>（事後追責）。token leak 的處理是 <em>rotate + audit log review</em>、不是 <em>all-users password reset</em>。</p>
<p><strong>Device Posture + EDR 整合</strong>：Gateway / WARP 可接 CrowdStrike Falcon / SentinelOne / Microsoft Defender for Endpoint 的 device health、policy 可寫 <code>require posture: crowdstrike.running == true AND crowdstrike.last_check &lt; 1h</code>。意義是 endpoint compromise 時 EDR 標紅、Access policy 自動 deny — 不需要 SOC 手動把 user disable。前提是 EDR fleet coverage 接近 100%、不然 fallback 設不好會誤殺。</p>
<p><strong>Cloudflare One（Access + WARP + Gateway + Magic Transit）</strong>：Cloudflare 把 ZTNA + SWG + CASB + 網路骨幹整成 SASE 套裝、競爭對手是 Zscaler / Netskope / Palo Alto Prisma Access。買整套的紅利是 policy / log / IdP 統一、痛點是 <em>Cloudflare 控制面信任成本指數放大</em> — 一個 admin 角色失控影響 Access + Gateway + WAF + DNS 全部、不只是單一產品。</p>
<p><strong>跟 <a href="/blog/backend/07-security-data-protection/vendors/cloudflare-waf/" data-link-title="Cloudflare WAF" data-link-desc="Edge WAF &#43; DDoS &#43; Bot management 整合套件、global anycast 網路、控制面信任邊界跟客戶側補強的對照">Cloudflare WAF</a> 共用 control plane 的取捨</strong>：紅利是同一 Logpush job / 同一 API token 管理 / 同一 Audit Log、SIEM 端 correlation 容易。信任成本是 <a href="/blog/backend/07-security-data-protection/cases/cloudflare-control-plane-token-2023/" data-link-title="7.C2 Cloudflare：2023 Control-plane Token 事件" data-link-desc="控制面 token 事件如何回寫 secrets 與機器憑證治理。">Cloudflare 2023 control plane token</a> 那類事故會同時影響 WAF rule + Access policy + DNS、客戶側必須有 <em>non-Cloudflare break-glass</em>（例如保留一條 emergency bastion 走獨立 IdP + 獨立網路、不經過 Cloudflare edge）。</p>
<h2 id="排錯與失敗快速判讀">排錯與失敗快速判讀</h2>
<ul>
<li><strong>User 一進 Application 就被 deny</strong>：policy 順序錯（Block rule 在 Allow 前面 match）、或 IdP group claim 沒帶到 — 看 Access log 的 <code>decision_reason</code>、確認 policy 順序跟 IdP claim mapping</li>
<li><strong>Argo Tunnel 斷線 / 找不到 origin</strong>：cloudflared 程序掛或 token 過期、origin 防火牆把 outbound 443 擋了 — 重啟 cloudflared、確認 outbound 規則、token rotate 後重新 deploy</li>
<li><strong>Service Token 大量 leak / 在 GitHub repo 出現</strong>：CI secret 設定錯放成 plaintext、或第三方 vendor commit 了 — Cloudflare dashboard rotate token、audit log 找受影響時間窗、補 secret scanning（<a href="/blog/backend/07-security-data-protection/vendors/github-advanced-security/" data-link-title="GitHub Advanced Security" data-link-desc="GitHub 內建 4 大模組：Code Scanning (CodeQL) &#43; Secret Scanning &#43; Dependency Review &#43; Dependabot、跟 PR / Security tab 深度整合">GitHub Advanced Security</a> / <a href="/blog/backend/07-security-data-protection/vendors/trivy/" data-link-title="Trivy" data-link-desc="Aqua Security 開源 all-in-one scanner：Container / Filesystem / K8s / IaC &#43; Secret &#43; License &#43; SBOM、Apache 2.0、CI 友善">Trivy</a>）</li>
<li><strong>Device Posture 把合法 user 鎖在外</strong>：EDR agent 暫時離線或 OS 升級導致 posture check fail — fallback 設 graceful（降級到只讀 / 加 step-up MFA）、不是直接 deny；EDR fleet coverage 沒到位前不要 hard enforcement</li>
<li><strong>IdP 出事 Access user 全進不來</strong>：Okta / Azure AD downtime 把 Access login 全鎖死 — break-glass 走 <em>Service Token + 緊急 Application</em>（不接 IdP、只接 mTLS / token），預先 staging tested</li>
<li><strong>Bypass 流量直連 origin</strong>：Application 收口不完整、origin 還有 public IP + 沒設 firewall 只接 Cloudflare IP — Argo Tunnel 收完、origin firewall 只允許 Cloudflare IP range 或完全只開 cloudflared outbound</li>
<li><strong>Cloudflare control plane 出事</strong>：Cloudflare 自家 admin token / control plane 被打、客戶側 Access policy 暫時改不了或被偷改 — 預案：保留 <em>非 Cloudflare emergency bastion</em> + 關鍵 application 的 Logpush 進外部 SIEM（不只 Cloudflare dashboard）</li>
</ul>
<h2 id="何時改走其他服務">何時改走其他服務</h2>
<table>
  <thead>
      <tr>
          <th>需求形狀</th>
          <th>改走</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Infrastructure access + 合規錄影</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &#43; session recording &#43; JIT、跟 Okta / Vault 互補">Teleport</a></td>
      </tr>
      <tr>
          <td>Developer SSH mesh / 小型 team</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/tailscale-ssh/" data-link-title="Tailscale SSH" data-link-desc="WireGuard-based zero-trust mesh &#43; identity-bound SSH、ACL JSON policy、developer-friendly、跟 IdP integration 取代 SSH key">Tailscale SSH</a></td>
      </tr>
      <tr>
          <td>Credential brokering / 動態 DB cred</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/boundary/" data-link-title="HashiCorp Boundary" data-link-desc="Identity-based access broker、跟 Vault 同生態組合（Boundary 控連線 / Vault 給 credential）、Multi-hop Worker 跨網路分段">Boundary</a> + <a href="/blog/backend/07-security-data-protection/vendors/hashicorp-vault/" data-link-title="HashiCorp Vault" data-link-desc="Self-hosted secret management 與 dynamic credential / encryption-as-a-service / PKI engine、跨雲跨環境的 secret 控制面">Vault</a></td>
      </tr>
      <tr>
          <td>全 SASE 套裝（SWG + CASB + DLP）</td>
          <td>Zscaler / Netskope / Palo Alto Prisma Access</td>
      </tr>
      <tr>
          <td>Public app 入口防護</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/cloudflare-waf/" data-link-title="Cloudflare WAF" data-link-desc="Edge WAF &#43; DDoS &#43; Bot management 整合套件、global anycast 網路、控制面信任邊界跟客戶側補強的對照">Cloudflare WAF</a> / <a href="/blog/backend/07-security-data-protection/vendors/aws-waf/" data-link-title="AWS WAF" data-link-desc="AWS-internal WAF、跟 ALB / CloudFront / API Gateway 直接整合、Web ACL &#43; Managed Rule Group &#43; Rate-based Rule、Shield Standard 內含">AWS WAF</a></td>
      </tr>
      <tr>
          <td>IdP 本體（身份 source of truth）</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/okta/" data-link-title="Okta" data-link-desc="SaaS Identity Provider 主流選項、SSO / MFA / lifecycle 整合、第三方信任邊界的代價">Okta</a> / <a href="/blog/backend/07-security-data-protection/vendors/auth0/" data-link-title="Auth0" data-link-desc="B2C / B2B Customer Identity Provider、Universal Login、Action / Rule hook、屬 Okta 旗下 Customer Identity Cloud">Auth0</a> / <a href="/blog/backend/07-security-data-protection/vendors/keycloak/" data-link-title="Keycloak" data-link-desc="Open source self-hosted Identity Provider、Red Hat 主導、Realm-based multi-tenancy、適合資料主權與自訂 flow 需求">Keycloak</a></td>
      </tr>
      <tr>
          <td>SIEM 接 Access log</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/splunk/" data-link-title="Splunk" data-link-desc="業界 SIEM 標準、forwarder &#43; indexer &#43; search head 架構、SPL 為核心查詢語言、ingestion-based 計費跟偵測覆蓋率的 trade-off">Splunk</a> / <a href="/blog/backend/07-security-data-protection/vendors/elastic-security/" data-link-title="Elastic Security" data-link-desc="Elastic Stack 上的 SIEM &#43; EDR &#43; Cloud Security 套件、OSS 起源、KQL/EQL/Lucene/ES|QL 多查詢語言、resource-based pricing">Elastic Security</a> / <a href="/blog/backend/07-security-data-protection/vendors/google-security-operations/" data-link-title="Google Security Operations" data-link-desc="Google 雲原生 SIEM &#43; SOAR &#43; Mandiant threat intel 三合一（前 Chronicle）、UDM &#43; YARA-L、fixed-price by data tier、PB-scale 友善">Google Security Operations</a></td>
      </tr>
      <tr>
          <td>Incident routing</td>
          <td><a href="/blog/backend/08-incident-response/vendors/" data-link-title="事故處理 Vendor 清單" data-link-desc="規劃 on-call、incident response、status page 與 postmortem 工具的服務頁撰寫順序與判準">8 事故處理 vendor 清單</a></td>
      </tr>
  </tbody>
</table>
<h2 id="不在本頁內的主題">不在本頁內的主題</h2>
<ul>
<li>Cloudflare WARP client 完整部署 / device enrollment 細節</li>
<li>Gateway DNS / HTTP filtering 完整 policy 語法</li>
<li>Cloudflare One / Magic Transit / Magic WAN 的網路骨幹細節（屬 SD-WAN / SASE 整套架構、不在 ZTNA 範圍）</li>
<li>cloudflared agent 進階配置（multi-region / HA / load balancing）</li>
<li>Cloudflare account / API token 管理本身（屬 Cloudflare 平台治理、跨產品共用）</li>
</ul>
<h2 id="案例回寫">案例回寫</h2>
<p>Cloudflare Access 在 07 案例庫的關聯來自 <em>Cloudflare 控制面信任</em> 跟 <em>IdP 上游事故傳導</em>：</p>
<table>
  <thead>
      <tr>
          <th>案例</th>
          <th>跟 Cloudflare Access 的關係（對照啟示）</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/cases/cloudflare-control-plane-token-2023/" data-link-title="7.C2 Cloudflare：2023 Control-plane Token 事件" data-link-desc="控制面 token 事件如何回寫 secrets 與機器憑證治理。">Cloudflare Control Plane Token 2023</a></td>
          <td>Cloudflare 自家 control plane 出事時、Access policy 變更權跟著受影響、客戶側必須有非 Cloudflare 路徑的 break-glass、關鍵 application 的 Logpush 進外部 SIEM</td>
      </tr>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/red-team/cases/identity-access/mgm-2023-identity-lateral-impact/" data-link-title="7.R7.1.4 MGM 2023：身分流程被打穿後的營運中斷" data-link-desc="社交工程造成身分邊界失守後，如何演變成可用性與營運衝擊">MGM 2023 Identity Lateral Impact</a></td>
          <td>Cloudflare Access 在 helpdesk SE 拿到 IdP credential 後、Device Posture + Application policy + Service Token 是額外 hop 成本、不是 IdP 一拿就全通</td>
      </tr>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/red-team/cases/identity-access/okta-cloudflare-2023-support-supply-chain/" data-link-title="7.R7.1.2 Okta &#43; Cloudflare 2023：支援流程與身分供應鏈" data-link-desc="支援工單與第三方身份供應商路徑如何變成入侵鏈的一部分">Okta-Cloudflare 2023 Support Supply Chain</a></td>
          <td>上游 IdP（Okta）出事傳導到 Cloudflare Access enrollment、需要 force re-auth + service token rotate + Logpush audit 找受影響時間窗、IdP 跟 Access 不可同時失能</td>
      </tr>
  </tbody>
</table>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>上游：<a href="/blog/backend/07-security-data-protection/identity-access-boundary/" data-link-title="7.2 身分與授權邊界" data-link-desc="以問題驅動方式整理身分、授權、會話與供應商身分鏈">7.2 身分與授權邊界</a>、<a href="/blog/backend/07-security-data-protection/blue-team/" data-link-title="7.B 防守者視角（藍隊）與控制面驗證" data-link-desc="從防守者角度整理控制面、偵測路由、驗證策略與演練回寫">zero-trust workforce architecture</a></li>
<li>平行：<a href="/blog/backend/07-security-data-protection/vendors/teleport/" data-link-title="Teleport" data-link-desc="Identity-Aware Proxy &#43; PAM、SSH / DB / K8s / Desktop session 統一 short-lived cert &#43; session recording &#43; JIT、跟 Okta / Vault 互補">Teleport</a>、<a href="/blog/backend/07-security-data-protection/vendors/tailscale-ssh/" data-link-title="Tailscale SSH" data-link-desc="WireGuard-based zero-trust mesh &#43; identity-bound SSH、ACL JSON policy、developer-friendly、跟 IdP integration 取代 SSH key">Tailscale SSH</a>、<a href="/blog/backend/07-security-data-protection/vendors/boundary/" data-link-title="HashiCorp Boundary" data-link-desc="Identity-based access broker、跟 Vault 同生態組合（Boundary 控連線 / Vault 給 credential）、Multi-hop Worker 跨網路分段">Boundary</a></li>
<li>下游：<a href="/blog/backend/07-security-data-protection/vendors/cloudflare-waf/" data-link-title="Cloudflare WAF" data-link-desc="Edge WAF &#43; DDoS &#43; Bot management 整合套件、global anycast 網路、控制面信任邊界跟客戶側補強的對照">Cloudflare WAF</a>（共用 control plane）、<a href="/blog/backend/07-security-data-protection/vendors/splunk/" data-link-title="Splunk" data-link-desc="業界 SIEM 標準、forwarder &#43; indexer &#43; search head 架構、SPL 為核心查詢語言、ingestion-based 計費跟偵測覆蓋率的 trade-off">Splunk</a> / <a href="/blog/backend/07-security-data-protection/vendors/elastic-security/" data-link-title="Elastic Security" data-link-desc="Elastic Stack 上的 SIEM &#43; EDR &#43; Cloud Security 套件、OSS 起源、KQL/EQL/Lucene/ES|QL 多查詢語言、resource-based pricing">Elastic Security</a>（Logpush 目的地）</li>
<li>跨類：<a href="/blog/backend/07-security-data-protection/vendors/okta/" data-link-title="Okta" data-link-desc="SaaS Identity Provider 主流選項、SSO / MFA / lifecycle 整合、第三方信任邊界的代價">Okta</a> / <a href="/blog/backend/07-security-data-protection/vendors/auth0/" data-link-title="Auth0" data-link-desc="B2C / B2B Customer Identity Provider、Universal Login、Action / Rule hook、屬 Okta 旗下 Customer Identity Cloud">Auth0</a>（IdP source）、<a href="/blog/backend/07-security-data-protection/vendors/hashicorp-vault/" data-link-title="HashiCorp Vault" data-link-desc="Self-hosted secret management 與 dynamic credential / encryption-as-a-service / PKI engine、跨雲跨環境的 secret 控制面">HashiCorp Vault</a>（Tunnel token / Service Token 儲存）</li>
<li>跨模組：<a href="/blog/backend/08-incident-response/vendors/" data-link-title="事故處理 Vendor 清單" data-link-desc="規劃 on-call、incident response、status page 與 postmortem 工具的服務頁撰寫順序與判準">8 事故處理 vendor 清單</a>（Access deny / 異常登入 routing）、<a href="/blog/backend/05-deployment-platform/vendors/" data-link-title="部署平台 Vendor 清單" data-link-desc="規劃 workload runtime、orchestration、traffic、IaC 與 discovery 的服務頁撰寫順序與判準">5 deployment vendors</a>（Argo Tunnel + CI 部署整合）</li>
<li>官方：<a href="https://developers.cloudflare.com/cloudflare-one/">Cloudflare Zero Trust Documentation</a></li>
</ul>
]]></content:encoded></item></channel></rss>