1767 字
9 分鐘
載入中...
Palo Alto Networks API Key安全強化:憑證生成與金鑰生命週期管理

1. 為什麼需要 API Key Certificate?#

在 PAN-OS 11.1 及更早版本中,API Key 預設僅使用設備的主金鑰 (Master Key) 進行加密(稱為 Legacy API Key)。

PAN-OS 11.1 引入了一項新功能,允許使用 API Key Certificate 來加密 API Key,這提供了更強的安全性。

1.1. 為什麼 Master Key 比較不安全?#

您可能會問:「Master Key 也是我產生的,API Certificate 也是我產生的,為什麼換個金鑰加密就比較安全?」這主要有三個原因:

  1. 爆炸半徑 (Scope): Master Key 是防火牆的「萬能金鑰」,負責加密密碼、VPN 私鑰與設定檔中的機密資料。一旦 Master Key 外洩,攻擊者就有可能解密這些資料,風險範圍非常大。現在透過專屬的 Certificate 來獨立加密 API Key,即使這張 Certificate 的 Private Key 被外洩,也只會影響 API 存取,不會危及其他系統密碼。這就是資安上的「風險隔離」。

  2. 可預測性 (Predictability): 在 PAN‑OS 8.1 及更早版本中,API Key 是基於「帳號+密碼+Master Key」生成的,如果多台防火牆使用相同的帳號密碼與 Master Key,產生的 API Key 會完全相同。從 PAN‑OS 9.0 開始,API Key 的生成機制已經改變,不再依賴 Master Key,因此這個風險已經大幅降低。

  3. 更換難度 (Lifecycle): Master Key 的更換涉及 HA 同步暫停、重啟等高風險操作,因此多數單位在設定後很少更換,容易形成長期存在的「萬年金鑰」,增加安全風險。相對的,API Certificate 與 Key 的有效期可以輕鬆設定與輪替。

WARNING

重要變更預告

  • PAN-OS 11.1:若未設定 API Key Certificate,系統會跳出警告訊息,但 Legacy API Key 仍可使用。
  • PAN-OS 12.0/12.1:Legacy API Key 將被棄用 (Deprecated)。
  • PAN-OS 13.0:Legacy API Key 將被完全禁用,必須使用憑證加密的 API Key。

如果您的防火牆或 Panorama 正在使用自動化腳本 (如 Terraform, Ansible, Python SDK) 進行管理,建議儘早轉換為 Certificate-based API Key,以避免未來升級時服務中斷。


2. 生成 API Key Certificate#

首先,我們需要在防火牆上生成一個專門用於加密 API Key 的憑證。

  1. 登入防火牆 Web 介面。

  2. 前往 Device > Certificate Management > Certificates

  3. 點擊 Generate

    Generate Certificate Button

  4. 在生成憑證的視窗中,設定以下參數:

    • Certificate Name: 自訂名稱,例如 API-Key-Cert
    • Common Name: 可以任意輸入(此憑證不會提供給 Client 驗證,僅用於加密 API Key)。
    • Certificate Authority: 必須勾選(必須是自簽署 CA 憑證)。
    • Algorithm: 必須選擇 RSA
    • Number of Bits: 必須大於或等於 3072 bits(低於此數值將無法用於 API Key 加密)。
    • Digest: 建議選擇 sha256 或更高。
    • Expiration (days): 憑證到期會使 API Key 失效,請依據資安政策設定,例如 365 天。
  1. 點擊 Generate 完成生成。 Generate Certificate Settings

3. 設定 API Key 有效期與憑證#

憑證建立後,接下來要設定 API Key 的生命週期並啟用憑證加密。

  1. 前往 Device > Setup > Management

  2. 找到 Authentication Settings 區塊,點擊齒輪圖示進行編輯。 Authentication Settings Widget

  3. API Key Certificate 欄位,選擇剛剛建立的 API-Key-Cert

  4. 設定 API Key Lifetime (min) (API Key 有效期)。

    • 預設可能是無限期 (No Expiration),建議依據資安政策設定。
    • 設定有效期後,API Key 到期前必須重新生成,這能降低 Key 外洩後的長期風險。

    Select API Key Certificate and Lifetime

WARNING

啟用憑證加密的影響: 當您點擊 OKCommit 設定後:

  1. 防火牆上 現有的所有 API Key 將立即失效
  2. 所有自動化腳本必須使用新的流程重新獲取 API Key。
  3. 若防火牆由 Panorama 管理,Panorama 的 Key 也會失效,需重新授權。
  1. 完成設定後,執行 Commit

    Commit Settings


4. 獲取新的 API Key#

API Key Certificate 設定完成並 Commit 後,獲取 API Key 的方式完全相同,不需要修改任何指令或程式碼邏輯。 唯一的差別在於,防火牆回傳的 <key> 內容,現在是經過 Certificate 加密後的版本。

使用 curl 指令獲取 API Key:

Terminal window
curl -k -X POST 'https://<firewall-ip>/api/?type=keygen&user=<username>&password=<password>'

成功回應範例

<response status="success">
<result>
<key>LUFRPT14MW5xOEo1R09KVlBZNnpnemh0VHRBOWl6TGM9bXBMOG00SDKJ......</key>
</result>
</response>
TIP

這個 <key> 字串雖然看起來跟以前差不多,但它現在是使用您指定的 3072-bit RSA 憑證進行加密的。請將此新 Key 更新到您的自動化工具或腳本中即可。


5. 對 API 用戶端 (Client) 的影響#

這是開發人員最關心的部分:切換到 Certificate-based 加密後,我的 Python/Ansible 程式碼需要改寫嗎?

5.1. 呼叫方式不變 (No Code Logic Change)#

不需要修改程式碼的連線邏輯,獲取 Key 的 API (type=keygen) 請求方式也完全相同。 即使用了 Certificate 加密,您仍然是:

  1. 發送相同的 POST 請求 (type=keygen, user, password) 來獲取 Key。
  2. 將獲取得的新 Key 放在 HTTP Header (X-PAN-KEY) 或 URL 參數 (key=...) 中傳送。 Client 端不需要在連線時出示這張憑證(除非您另外設定了 Client Certificate Authentication,那是另一回事)。

5.2. API Key 字串必須更新 (Value Change)#

唯一的改變是 Key 的內容字串 (Value)。 因為加密金鑰變了(從 Master Key 變成了 Certificate),舊的 Key 字串在防火牆上已無法解密,視為無效。 您必須:

  1. 使用新設定重新呼叫 type=keygen
  2. 取得新生成的 Key 字串。
  3. 更新所有自動化腳本、Terraform tfvars 或 .env 檔案中的 Key 值。

5.3. 一次性斷線風險#

在您於防火牆上 Commit “API Key Certificate” 設定的那一瞬間,所有舊的 API Key 會立即失效。 請務必安排在維護視窗 (Maintenance Window) 執行此變更,並在變更後立即更新應用程式的 Key。


6. 驗證與排錯#

6.1. 如何檢查 API Key 是否有過期?#

您可以透過 CLI 指令檢查 API Key 的狀態與到期時間:

Terminal window
show api-key-expiration-ts

若回傳空值,代表目前沒有活躍的 API Key。

6.2. 常見問題#

6.2.1. API Key 何時會失效?#

PAN-OS 會在以下情況自動使 API Key 失效:

情況說明
使用者帳號被刪除產生該 Key 的管理員帳號從系統中移除
使用者密碼變更產生該 Key 的管理員密碼被修改(即使是本人修改)
Key Lifetime 到期超過您在 Authentication Settings 中設定的有效天數
API Key Certificate 被重新設定管理員在設定中選擇了不同的憑證或修改了憑證設定
API Key Certificate 過期用於加密的憑證本身已過期(檢查憑證的 Expiration)
PAN-OS 無法解密 API Key可能是憑證損壞、遺失或被替換導致無法還原 Key
TIP

若您的自動化腳本突然無法連線,請依上表逐一檢查。最常見的原因是「密碼變更」與「憑證過期」。

透過以上步驟,您的 Palo Alto 防火牆 API 存取將更加安全,並符合未來的 PAN-OS 版本要求。


Palo Alto Networks API Key安全強化:憑證生成與金鑰生命週期管理
https://blog.fiskao.com.tw/posts/paloalto/api-key-certificate-management/
作者
Wilder
發佈於
2026-02-08
許可協議
CC BY-NC-SA 4.0