本文档为在 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 节点
使用以下服务来保护敏感数据,例如处理提示和回答的推理工作负载或访问专有模型的训练工作负载:
通过硬件证明加密使用中的敏感数据:在机密 Google Kubernetes Engine 节点上运行推理工作负载,除了 AMD SEV-SNP 或 Intel TDX CPU 之外,还将硬件级内存加密扩展到包括 GPU 和 TPU 在内的加速器。对于受监管的部署和敏感的推理工作负载,请使用机密 GKE 节点。机密 GKE 节点无法保护工作负载免遭应用级漏洞利用或具有节点级访问权限的授权用户的攻击。
对于客户有严格隔离要求的提供商(例如主权工作负载),GKE Hypercluster 提供加密证明,确保即使是底层基础架构运营商Cloud de Confiance也无法检查租户数据。
降低节点冒充风险:在 安全强化型 GKE 节点上运行工作负载,这些节点可提供可验证的节点完整性和身份证明。针对所有工作负载类型使用安全强化型 GKE 节点。
避免为工作负载使用静态凭据:使用 Workload Identity Federation for GKE 通过短期有效的联合凭据从应用代码访问 Cloud de Confiance 服务,并防止不必要的 Compute Engine 元数据暴露给应用。在所有生产集群中使用 Workload Identity Federation for GKE,尤其是在需要访问集群外部服务中的数据时。
实施网络控制
您可以使用以下功能和产品来提高 AI 工作负载的网络安全性:
使用别名 IP 地址范围:VPC 原生集群使用别名 IP 地址范围在 Pod 之间路由流量,而不是使用 VPC 网络中的静态路由。始终使用 VPC 原生集群。
限制对节点的网络访问:使用专用节点可默认阻止节点与公共互联网之间的流量。需要公开的推理端点应在端点与互联网之间具有 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。
管理身份和访问权限
如需识别用户并控制对集群和工作负载的访问权限,请使用以下授权机制:
控制对 Cloud de Confiance 资源的访问权限:使用 Cloud de ConfianceIdentity and Access Management (IAM) 访问权限政策来控制哪些主账号可以与 GKE 集群和节点互动。
控制对集群中 Kubernetes 资源的访问权限:使用 Kubernetes 基于角色的访问权限控制 (RBAC) 政策来控制各种正文可以对每个集群内的 Kubernetes API 资源执行哪些操作。
配置对推理端点和管理界面的零信任访问权限:使用 Chrome Enterprise Premium 等服务,根据身份和设备状况(而非网络拓扑)配置用户访问权限。
管理密钥和 Secret
将所有加密密钥和敏感数据(例如 API 密钥和凭据)都放在集群外部。以下产品可帮助您存储这些资源:
管理加密密钥:使用 Cloud Key Management Service 管理所有加密密钥。您还可以在 Cloud KMS 中创建客户管理的加密密钥 (CMEK),以便使用您控制的密钥对数据进行加密,这在受监管行业中通常是一项要求。
存储敏感应用数据:使用 Secret Manager 存储工作负载使用的敏感数据,例如应用 Secret、API 密钥和凭据。如需从 Pod 中读取此数据,请使用 Workload Identity Federation for GKE 向特定工作负载身份授予对 Pod 所需资源的访问权限。
提高供应链安全性
以下 Cloud de Confiance 服务可帮助您提高整个软件供应链的安全性:
- 扫描容器映像是否存在漏洞:将容器映像存储在默认启用漏洞扫描功能的 Artifact Registry 代码库中。在注册表中的每个映像上启用持续 CVE 检测。
仅允许经过验证的映像进入生产环境:使用 Binary Authorization 在部署时强制执行基于政策的容器映像签名授权。只有经过认证的映像才能投入生产。
配置安全检测和安全状况管理:使用 Security Command Center 查看 AI 特有的威胁检测和安全状况管理发现结果,例如配置错误的 Gemini Enterprise Agent Platform 端点或公开的训练数据存储分区。Security Command Center 将这些 AI 发现结果与 Artifact Registry 漏洞和 IAM 分析集成,以便全面了解您的舰队。
跟踪 AI 制品:使用专为 Kubernetes AI 工作负载打造的 BOM 工具(例如
k8s-aibom)生成模型、数据集和框架的全面清单。
在模型层提高安全性
如果您运行自己训练或微调的模型,或者运行自己配置的开源模型,则应配置各种控制措施来提高模型的安全性。如果您运行的是第三方提供商提供的受管模型,则此层不适用于您。以下部分介绍了您可以采取哪些措施来提高模型的完整性、保密性和安全性。
提高模型完整性
提高模型的完整性,以便在推理端点上访问模型之前发现篡改证据。以下准则可帮助您提高模型完整性:
- 对模型工件进行签名:在将模型权重发布到注册表之前,以加密方式对模型权重进行签名。部署模型时,请使用 Binary Authorization 证明验证签名。对模型制品进行签名和验证有助于您确定模型在存储或传输过程中是否遭到篡改,并为生产模型提供可验证的监管链。
- 查找训练后修改:开源激活模型扫描器 (AMS) 通过将模型的激活签名与基准进行比较,检测训练后经过修改的模型(例如,添加了后门、权重扰动或未经授权的微调)。在将模型发布到生产注册表之前,在 CI/CD 流水线中运行 AMS 等扫描器。对于高价值或受监管的模型,请安排针对生产制品进行定期 AMS 扫描,以检测初始发布后发生的篡改。
保护模型机密性
如果您有敏感的模型权重(例如专有微调、基于受监管数据训练的模型或具有竞争力的知识产权),请遵循以下准则来保护权重:
对静态权重进行加密:将权重存储在加密的对象存储空间(例如 Cloud Storage 存储分区)中,并限制 IAM 访问权限。默认情况下,Cloud Storage 会对静态客户内容进行加密。您可以选择使用 CMEK 通过您控制的密钥来加密数据,这通常是受监管行业的要求。如需了解详情,请参阅 Cloud Storage 文档中的数据加密选项。
保护使用中的权重:在机密 GKE 节点上运行模型,确保在推理期间权重在内存中加密。机密 GKE 节点可帮助您保护知识产权,防止其遭到基础设施运营商的 Hypervisor 级入侵和未经授权的访问。机密 GKE 节点无法防范应用级漏洞利用或具有节点级访问权限的授权用户。
控制对权重的全部访问权限:记录对存储空间中模型制品的所有访问。使用 IAM 访问权限政策来限制对特定服务账号和有记录的访问权限需求的人员的访问权限。使用 Kubernetes RBAC 政策和 Chrome Enterprise Premium 严格限制对集群的管理员权限,包括对容器的 shell 访问权限、对节点虚拟机的 SSH 访问权限或节点级调试。这些措施有助于您保护模型权重,防止具有节点级访问权限的用户访问,而机密 GKE 节点无法提供这种保护。
改进模型安全属性
您可以在训练期间为模型实现各种安全设置。如果您要训练或微调自己的模型,请投资于与模型用例相关的安全培训。模型的安全属性包括拒绝行为、对齐训练和抗越狱能力。如果您使用预训练模型,请选择具有符合应用要求的安全属性的模型。
应用开发者和运营商可以在应用层实现各种控制措施,以提高模型无法覆盖的领域的安全性。
提高应用层的安全性
在应用层,运营商和开发者可以对 AI 特有的安全配置进行最精细的控制。在应用层,您可以实现安全控制措施,以保护数据、创建格式正确的请求,并保护提示和响应。这些控件通常适用于处理用户提示、会话和响应的推理工作负载。以下各部分介绍了各种控制措施、产品和服务,这些措施、产品和服务可能有助于您在应用层实现特定的安全目标。
防御内容层威胁
检查所有提示和回答,以发现提示注入、敏感数据暴露和有害内容等安全问题。由于 GKE 节点设计为无法访问内容,因此请在应用与推理端点之间部署 Model Armor。Model Armor 具有特定的数据处理和存储原则,旨在提高扫描过程中数据的隐私保护水平。
保护系统提示
过滤输出内容以防提示泄露,并配置 Model Armor 数据渗漏检测功能以捕获提取模式。对于高度敏感的指令,请在不向用户返回文本的调用中处理指令。
管理会话和路由
当您向最终用户公开推理端点时,请使用 GKE 推理网关。推理网关扩展了 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 使用 GKE Sandbox 或 Kata Containers 等隔离机制来防范容器逃逸。
配置可观测性和突发事件响应
收集日志并监控各种指标,以便尽早发现潜在攻击并限制漏洞利用的影响。以下各部分提供了相关指南,可帮助您改进检测和响应。
收集日志和指标
为了尽快识别威胁,请尽可能多地实施以下可观测性最佳实践:
- 收集 GKE 日志。
- 为敏感操作(例如 KMS 密钥使用)启用数据访问审核日志。
- 除非您的政策明确允许,否则请勿记录提示或完成内容。如果您收集多模态提示和回答数据(预览版),请根据您的安全政策删除或限制对所存储数据的访问权限。
- 收集对 SRE 重要的指标。
- 为特定类型的 AI 模型服务器配置自动应用监控。
- 在 Cloud Logging 或您自己的安全信息和事件管理 (SIEM) 平台中汇总日志。
- 使用基于日志的指标,根据日志内容创建指标。
检测 AI 特有威胁
在 Logging 和 Cloud Monitoring 中设置提醒,以检测各种 AI 特有的威胁。您设置的具体提醒政策取决于您收集的日志类型以及贵组织的要求。如需详细了解可用的提醒政策,请参阅提醒选项比较。针对 AI 特有的威胁(例如以下威胁)配置提醒:
| AI 特有威胁和信号 | |
|---|---|
| 提示词注入 | Model Armor 日志 (用于提示清理或拒绝) |
| 系统提示提取 | Model Armor 和缓存命中异常 |
| 敏感数据暴露 | Model Armor 回答日志 |
| 推理费用滥用 | 推理网关指标中的会话级 token 用量 |
| 会话操纵 | 根据推理网关指标,每个租户的新会话速度 |
| 模型指纹 | 功能探测模式 |
| 时序侧信道 | 架构缓解措施(缓存分区) |
建立突发事件响应流程
您如何应对各种突发事件取决于您的组织结构和安全要求。以下准则介绍了在检测到 AI 工作负载受到特定类型的威胁时应采取的措施:
Model Armor 中的内容检测:阻止请求、记录事件,并设置提醒,以便在速率超过阈值时通知您。为屡次违规的用户设置速率限制。
推理检测:使用推理网关限制租户。终止确认存在滥用行为的会话。
跨层关联:Model Armor 检测结果加上令牌滥用模式表明存在协同滥用行为。定义关联规则,并确定置信度阈值,超过该阈值后,误报风险较低。自动终止超过此阈值的会话。
在整个部署生命周期内实施安全措施
在整个部署生命周期内优化 AI 部署的安全性。 在特定生命周期阶段,实施可保护一个或多个层的控制措施。以下部分提供了生命周期各个阶段的指南。
部署基础架构
在创建或设计运行 AI 工作负载的基础设施时,请尽可能实施以下控制措施:
| 类别 | |
|---|---|
| GKE 节点数 |
|
| 网络 |
|
| 身份和访问权限管理 |
|
| 敏感数据管理 |
|
| 可观测性 |
|
运行工作负载和基础设施
在部署 AI 工作负载并运行生产系统时,请尽可能实现以下控制措施:
| 类别 | |
|---|---|
| 工作负载安全 |
|
| 网络 |
|
| Sensitive Data Protection | 在受监管的环境中使用 CMEK 通过您自己的密钥加密数据。 |
| 可观测性 |
|
大规模管理部署
随着组织规模扩大,请实施以下控制措施来自动执行安全管理:
- 使用组织政策服务配置组织级安全措施。
- 使用 Kubernetes 准入 Webhook 强制执行准入时政策。
- 针对高可信度检测结果自动执行初步响应。
- 建立跨层 SIEM 相关性并设置每个租户的行为基准。
最佳做法摘要
下表总结了本文档中建议的最佳做法。
| 主题 | |
|---|---|
| 提高基础设施层级的安全性 | 保护 GKE 节点、实施网络控制、管理身份和访问权限、管理密钥和 Secret,以及提高供应链安全性。 |
| 在模型层提高安全性 | 提高模型完整性、保护模型机密性,并改进模型安全性属性。 |
| 提高应用层的安全性 | 防范内容层面的威胁、保护系统提示、管理会话和路由,并提高 AI 智能体的安全性。 |
| 配置可观测性和突发事件响应 | 收集日志和指标、检测 AI 特有威胁,并建立突发事件响应流程。 |
| 在整个部署生命周期内实施安全措施 | 大规模部署基础架构、运营工作负载和基础架构,以及管理部署。 |