GKE 上 AI 工作負載的安全防護最佳做法

本文提供最佳做法,協助平台團隊、安全工程師和雲端架構師在 Google Kubernetes Engine (GKE) 上部署 AI 工作負載。您可以使用 GKE 保護專屬智慧財產 (IP),例如模型權重、透過篩選內容維護品牌聲譽,以及提升法規遵循度。

除了下列其他 GKE 和 AI 工作負載安全最佳做法外,也請採用這些最佳做法:

瞭解您的安全防護責任

AI 工作負載的安全狀態取決於環境的各個層面,例如 Cloud de Confiance by S3NS 基礎架構和使用的模型。下表說明這些層級、負責保護各層級安全的人員,以及該層級的安全責任:

圖層 說明 責任
基礎架構 AI 工作負載執行的底層基礎架構,例如虛擬機器 (VM)、網路元件和儲存空間硬體。 Cloud de Confiance 擁有基礎架構,並提供強大的安全基準。

貴機構的平台管理員會導入控管措施,在下列領域提升安全性:

  • 防範提示注入式攻擊
  • 資料加密
  • 使用者和工作負載驗證與授權
  • 輸出內容安全性
  • 多租戶環境的硬體和租戶隔離
  • 多租戶環境中的頻率限制
  • 收集記錄和指標
型號 模型、模型權重、訓練管道和安全屬性。如果您執行自己訓練或微調的模型,則有責任保護模型層。如果您執行第三方供應商 (例如 Gemini) 的受管理模型,則供應商須負責模型安全。

在模型層級,模型擁有者負責下列領域的安全:

  • 模型完整性
  • 模型權重保護
  • 模型安全屬性
應用程式 提示、程式碼、系統指令和使用者體驗。 貴機構的應用程式營運人員和平台管理員負責應用程式層級的安全性。

在應用程式層級,應用程式操作員、開發人員和平台管理員負責下列領域的安全性:

  • 防範提示注入式攻擊
  • 應用程式資料處理
  • 應用程式層內容安全
  • 工作負載隔離和沙箱機制

您負責套用控管機制,確保相關層級的安全。下列範例說明 GKE 客戶常見的部署類型,以及這些部署作業的相應安全責任:

  • 您執行 Gemini 等受管理模型:您可以在基礎架構和應用程式層級套用控制項。即使使用內建安全篩選器的受管理模型,您仍須負責防範提示注入攻擊,以保護特定應用程式邏輯。
  • 自行執行模型:如果您執行微調模型、開放原始碼模型或您訓練的模型,則必須負責各層的安全。
  • 您是多租戶 AI 服務供應商:如果您在 GKE 上執行模型,並向多個租戶公開推論端點,藉此向自家使用者提供 AI 服務,則您必須負責額外的控制項。這些多租戶控制項包括邏輯和實體租戶隔離 (例如專用節點集區、命名空間和網路政策)、每個租戶的速率限制,以及使用不同的客戶自行管理的加密金鑰 (CMEK) 加密租戶靜態資料。

提升基礎架構層級的安全性

在基礎架構層, Cloud de Confiance 和 GKE 提供預設實作各種安全控管機制的基準安全防護機制。如要提升 AI 工作負載基礎架構的安全性,請根據您執行的 AI 工作負載類型,以及要達成的特定安全目標,設定額外的安全控管措施。以下各節說明可用來保護 AI 基礎架構各種元件的產品和服務。

保護 GKE 節點

使用下列服務保護機密資料,例如處理提示和回覆的推論工作負載,或存取專有模型的訓練工作負載:

  • 使用硬體驗證加密使用中的機密資料:在 Confidential Google Kubernetes Engine 節點上執行推論工作負載,將硬體層級的記憶體加密機制擴充至 GPU 和 TPU 等加速器,以及 AMD SEV-SNP 或 Intel TDX CPU。針對受監管的部署作業和敏感的推論工作負載,使用機密 GKE 節點。機密 GKE 節點無法保護工作負載,避免應用程式層級的攻擊,或具有節點層級存取權的授權使用者。

    如果供應商的客戶有嚴格的隔離需求 (例如主權工作負載),GKE Hypercluster 可提供加密認證,確保即使是底層基礎架構的運算子Cloud de Confiance,也無法檢查租戶資料。

  • 降低節點身分冒用風險:在 受防護的 GKE 節點上執行工作負載,這類節點提供可驗證的節點完整性和身分驗證。為所有工作負載類型使用受防護的 GKE 節點。

  • 避免使用工作負載的靜態憑證:使用 GKE 適用的工作負載身分聯盟,透過存留時間短暫的聯盟憑證,從應用程式程式碼存取 Cloud de Confiance 服務,並防止非必要的 Compute Engine 中繼資料暴露給應用程式。在所有正式版叢集中使用 GKE 適用的工作負載身分聯盟,特別是需要存取叢集外部服務中的資料時。

實作網路控制項

您可以運用下列功能和產品,提升 AI 工作負載的網路安全:

  • 使用別名 IP 位址範圍虛擬私有雲原生叢集會使用別名 IP 位址範圍,在 Pod 之間轉送流量,而不是使用虛擬私有雲網路中的靜態路徑。一律使用虛擬私有雲原生叢集。

  • 限制節點的網路存取權:使用私人節點,預設禁止節點與公用網際網路之間的流量。需要公開的推論端點應在端點和網際網路之間,使用 Google Cloud Armor 等代管服務。

  • 預設拒絕叢集內流量:使用 Kubernetes NetworkPolicies 拒絕 Pod 之間、命名空間之間,以及輸出至網際網路的流量。只允許需要特定存取權的應用程式使用網路流量。

  • 為網際網路端點新增邊緣防護:您可以透過Google Cloud Armor 實作速率限制、DDoS 防護、地理位置存取控管和第 7 層攻擊緩解措施,保護暴露於網際網路的推論端點。如果您有對外開放的 AI API,請使用 Cloud Armor 處理巨流量和應用程式層攻擊,避免攻擊影響運算基礎架構。將 Cloud Armor 與私人節點結合,盡量提升推論端點的安全性。

  • 防範攻擊期間發生資料竊取事件:使用 VPC Service Controls 為 Cloud de Confiance 資源建立安全防護範圍。即使憑證遭盜用,攻擊者也無法將資料帶出安全範圍。針對受監管的工作負載使用 VPC Service Controls。

管理身分與存取權

如要識別使用者及控管叢集和工作負載的存取權,請使用下列授權機制:

管理金鑰和密鑰

請將所有加密金鑰和機密資料 (例如 API 金鑰和憑證) 存放在叢集外部。下列產品可協助您儲存這些資源:

  • 管理加密金鑰:使用 Cloud Key Management Service 管理所有加密金鑰。您也可以在 Cloud KMS 中建立客戶管理的加密金鑰 (CMEK),使用您控管的金鑰加密資料,這通常是受管制產業的必要做法。

  • 儲存應用程式機密資料:使用 Secret Manager 儲存工作負載使用的機密資料,例如應用程式密鑰、API 金鑰和憑證。如要從 Pod 讀取這項資料,請使用 Workload Identity Federation for GKE,僅授予特定工作負載身分存取 Pod 所需資源的權限。

提升供應鏈安全性

下列 Cloud de Confiance 服務可協助您提升整個軟體供應鏈的安全性:

  • 掃描容器映像檔安全漏洞:將容器映像檔儲存在Artifact Registry 存放區,這些存放區預設會啟用安全漏洞掃描功能。針對登錄檔中的每個映像檔啟用持續 CVE 偵測功能。
  • 只允許經過驗證的映像檔進入正式環境:使用二進位授權,在部署時強制執行以政策為準的容器映像檔簽章授權。只有經過認證的映像檔才會部署至實際工作環境。

  • 設定安全偵測和態勢管理:使用 Security Command Center 查看 AI 專屬的威脅偵測和態勢管理發現項目,例如設定錯誤的 Gemini Enterprise Agent Platform 端點,或公開的訓練資料 bucket。Security Command Center 會整合這些 AI 發現項目、Artifact Registry 安全漏洞和 IAM 分析,讓您全面掌握機群狀況。

  • 追蹤 AI 構件:使用專為 Kubernetes AI 工作負載打造的材料清單工具 (例如 k8s-aibom),產生模型、資料集和架構的完整清單。

提升模型層級的安全性

如果您執行訓練或微調的模型,或是執行您設定的開放原始碼模型,則應設定各種控制項,以提升模型安全性。如果您是透過第三方供應商執行受管理模型,則不適用這個層級。以下各節說明如何提高模型的完整性、機密性和安全性。

提升模型完整性

提高模型完整性,以便在模型可透過推論端點存取之前,找出竄改證據。下列規範有助於提升模型完整性:

  • 簽署模型構件:先以密碼編譯方式簽署模型權重,再將權重發布至登錄檔。部署模型時,請使用二進位授權認證驗證簽章。簽署及驗證模型構件,有助於判斷模型在儲存或傳輸期間是否遭到竄改,並為生產模型提供可驗證的監管鏈。
  • 尋找訓練後修改內容:開放原始碼的啟動模型掃描器 (AMS) 會分析模型啟動簽章與基準的差異,偵測訓練後經過修改的模型 (例如新增後門、權重擾動或未經授權的微調)。在將模型發布至正式版登錄檔之前,請先在 CI/CD 管道中執行 AMS 等掃描器。對於高價值或受監管的模型,請定期對正式版構件執行 AMS 掃描,偵測初始發布後發生的竄改行為。

保護模型機密性

如果您有敏感的模型權重,例如專屬微調、以受管制資料訓練的模型,或具競爭力的智慧財產,請按照下列規範保護權重:

  • 加密靜態權重:將權重儲存在加密的物件儲存空間中,例如 Cloud Storage 值區,並限制 IAM 存取權。Cloud Storage 預設會加密靜態儲存的客戶內容。您可以選擇使用 CMEK,以您控管的金鑰加密資料,這通常是受管制產業的要求。詳情請參閱 Cloud Storage 說明文件中的資料加密選項

  • 保護使用中的權重:在機密 GKE 節點上執行模型,確保權重在推論期間會加密儲存在記憶體中。機密 GKE 節點可協助您保護智慧財產,避免遭到管理程序層級的入侵,以及基礎架構營運商未經授權的存取。機密 GKE 節點無法防範應用程式層級的攻擊,也無法防範具有節點層級存取權的授權使用者。

  • 控管權重的存取權:記錄儲存空間中所有模型構件的存取權。使用 IAM 存取權政策,限制特定服務帳戶和有記錄存取權需求的使用者存取權。使用 Kubernetes RBAC 政策和 Chrome Enterprise Premium,嚴格限制叢集的管理存取權,包括容器的殼層存取權、節點 VM 的 SSH 存取權,或節點層級的偵錯。這些措施有助於保護模型權重,避免擁有節點層級存取權的使用者存取,而機密 GKE 節點並未涵蓋這類存取權。

提升模型安全屬性

訓練模型時,您可以實作各種安全設定。如果您要訓練或微調自己的模型,請投入資源進行與模型用途相關的安全訓練。模型的安全屬性包括拒絕行為、對齊訓練和防越獄能力。如果您使用預先訓練的模型,請選擇安全屬性符合應用程式需求的模型。

應用程式開發人員和營運人員可以在應用程式層級實作各種控制項,在模型無法涵蓋的領域提升安全性。

提升應用程式層的安全性

在應用程式層,運算子和開發人員可對 AI 專屬安全設定進行最多控管。在應用程式層,您可以實作安全控管措施,保護資料、建立格式正確的要求,以及保護提示和回覆。這些控制項通常適用於推論工作負載,可處理使用者提示、工作階段和回應。下列各節說明各種控制項、產品和服務,有助於在應用程式層達成特定安全目標。

防禦內容層級威脅

檢查所有提示詞和回覆,找出提示詞注入、敏感資料洩露和有害內容等安全問題。由於 GKE 節點的設計宗旨是不存取內容,請在應用程式與推論端點之間部署 Model Armor。Model Armor 採用特定的資料處理和儲存原則,旨在提升掃描期間的資料隱私權。

保護系統提示

過濾輸出內容,防範提示詞外洩,並設定 Model Armor 資料外洩偵測功能,找出擷取模式。如果是高度敏感的指令,請在不會向使用者傳回文字的呼叫中處理指令。

管理工作階段和轉送

向終端使用者公開推論端點時,請使用 GKE Inference Gateway。Inference Gateway 會擴充 Gateway API,根據 AI 推論工作負載專屬的指標和資料來轉送流量。您可以自動調度工作負載資源以因應需求,並整合 Model Armor 和 Apigee,進行內容篩選、工作階段層級的觀測和配額強制執行。

提升 AI 代理安全性

如果您的 AI 工作負載是代理程式,則需要額外的應用程式層級控制項,例如:

  • 限制 Cloud de Confiance API 的存取權:搭配使用 Workload Identity Federation for GKE 和 IAM 存取權政策,限制代理程式工作負載 Pod 可存取的 API。為每個代理程式使用專屬的 Kubernetes ServiceAccount,並只授予該主體工作負載所需的 IAM 權限。
  • 在沙箱中執行程式碼或不信任的工具:使用 Agent Sandbox,在沙箱環境中執行代理,產生程式碼或與未經驗證的第三方工具互動。Agent Sandbox 會使用 GKE Sandbox 或 Kata Containers 等隔離機制,防止容器逸出。

設定可觀測性和事件應變

收集記錄並監控各種指標,及早發現潛在攻擊並限制漏洞攻擊的影響。下列各節提供相關規範,或許有助於提升偵測和回應能力。

收集記錄和指標

如要盡快找出威脅,請盡可能採用下列可觀測性最佳做法:

  • 收集 GKE 記錄檔
  • 針對敏感作業啟用資料存取稽核記錄,例如 KMS 金鑰使用情況。
  • 除非政策明確允許,否則請勿記錄提示或完成內容。如果您收集多模態提示和回應資料 (搶先版),請根據安全防護政策刪除或限制存取儲存的資料。
  • 收集對 SRE 團隊重要的指標
  • 為特定類型的 AI 模型伺服器設定自動應用程式監控
  • 在 Cloud Logging 或您自己的安全資訊與事件管理 (SIEM) 平台中匯總記錄。
  • 使用記錄指標,根據記錄內容建立指標。

偵測 AI 特有威脅

在 Logging 和 Cloud Monitoring 中設定快訊,偵測各種 AI 特有威脅。您設定的具體快訊政策取決於收集的記錄類型和貴機構的需求。如要進一步瞭解可用的快訊政策,請參閱「快訊選項比較」。針對 AI 特有威脅設定快訊,例如:

AI 特有威脅和信號
提示詞注入 Model Armor 記錄 (提示清理或拒絕)
擷取系統提示詞 Model Armor 和快取命中異常
機密資料暴露 Model Armor 回覆記錄
濫用推論費用 從推論閘道指標取得工作階段層級的權杖用量
工作階段操弄 每個房客的新工作階段速度 (來自 Inference Gateway 指標)
模型指紋 能力探查模式
時間側通道 架構緩解措施 (快取分割)

建立事件應變程序

如何因應各種事件取決於貴機構的結構和安全需求。下列指南說明偵測到特定類型的 AI 工作負載威脅時,該如何採取行動:

  • 在 Model Armor 中偵測內容:如果要求超出門檻,系統會封鎖要求、記錄事件,並設定快訊通知您。為屢次違規的使用者設定速率限制。

  • 推論偵測:使用 Inference Gateway 限制房客。終止確認有濫用行為的工作階段。

  • 跨層關聯性:Model Armor 偵測結果加上權杖濫用模式,表示有協調式濫用行為。定義關聯規則,並找出可信度門檻,之後誤判警報的風險就會降低。自動終止超過這個門檻的工作階段。

在整個部署生命週期中導入安全措施

在整個部署生命週期中,針對安全性進行 AI 部署作業的最佳化調整。在特定生命週期階段,實作可保護一或多個層級的控制項。下列各節提供生命週期各階段的指南。

部署基礎架構

建立或設計執行 AI 工作負載的基礎架構時,請盡可能導入下列控制措施:

類別
GKE 節點
  • 在所有正式版叢集上啟用 Workload Identity Federation for GKE。
  • 為機密推論工作負載設定機密 GKE 節點。
  • 為所有工作負載啟用受防護的 GKE 節點。
網路
  • 使用 VPC 原生叢集。
  • 啟用私人節點。
  • 使用 NetworkPolicy 預設拒絕叢集流量。
  • 為受監管的工作負載建立 VPC Service Controls 範圍。
  • 為推論端點部署 Model Armor。
  • 設定 Inference Gateway,進行負載平衡和工作階段管理。
身分與存取權管理
  • 使用 Chrome Enterprise Premium 取得管理員存取權。
  • 使用 IAM 存取權政策和 Kubernetes RBAC 進行授權。
機密資料管理
  • 將所有密鑰 (例如 API 金鑰) 儲存在 Secret Manager 中。
  • 將容器映像檔儲存在 Artifact Registry 中,並啟用安全漏洞掃描功能。
觀測能力
  • 啟用 Security Command Center。
  • 設定記錄及監控。
  • 建立事件應變程序。

運作工作負載和基礎架構

部署 AI 工作負載及執行正式環境系統時,請盡可能導入下列控制措施:

類別
工作負載安全防護
  • 使用二進位授權強制執行容器映像檔政策。
  • 在部署時簽署及驗證模型構件。
  • 在模型 CI 管道中執行 AMS。
  • 驗證所有結構化輸出內容。
  • 將在沙箱中執行程式碼的代理隔離。
網路
  • 調整 Model Armor 設定檔。
  • 調整 Inference Gateway 設定。
機密資料保護 在受監管的環境中,使用 CMEK 以自己的金鑰加密資料。
觀測能力
  • 設定及彙整稽核記錄。
  • 生成 AI 供應鏈清單。

大規模管理部署作業

隨著貴機構擴大規模,請導入下列控管機制,自動執行安全性管理:

  • 使用機構政策服務設定機構層級的防護機制。
  • 使用 Kubernetes 准入 Webhook 強制執行准入時間政策。
  • 針對可信度高的偵測結果自動發出第一時間的回應。
  • 建立跨層 SIEM 關聯性,以及每個租戶的行為基準。

最佳做法摘要

下表摘要說明本文建議的最佳做法:

主題
提升基礎架構層級的安全性 保護 GKE 節點、實作網路控制項、管理身分和存取權、管理金鑰和密碼,以及提升供應鏈安全。
提升模型層級的安全性 提升模型完整性、保護模型機密性,以及改善模型安全屬性。
提升應用程式層的安全性 防範內容層級的威脅、保護系統提示、管理工作階段和路徑,並提升 AI 代理安全性。
設定可觀測性和事件應變 收集記錄和指標、偵測 AI 特有威脅,並建立事件應變程序。
在整個部署生命週期中導入安全措施 部署基礎架構、執行工作負載和基礎架構,以及大規模控管部署作業。

後續步驟