Well-Architected Framework:AI 和机器学习视角中的这篇文档概述了相关原则和建议,可确保 AI 和机器学习部署满足组织的安全和合规性要求。本文档中的建议与 Google Cloud Well-Architected Framework 的安全核心保持一致。
安全部署 AI 和机器学习工作负载是一项关键要求,尤其是在企业环境中。为满足此要求,您需要采取全面的安全方法,从 AI 和机器学习解决方案的初始概念化阶段开始,一直延伸到开发、部署和持续运营阶段。 Google Cloud 提供强大的工具和服务,旨在帮助您保护 AI 和机器学习工作负载。
本文档中的建议与以下核心原则相对应:
如需详细了解 AI 安全,您还可以参阅以下资源:
- Google Cloud的安全 AI 框架 (SAIF) 为构建安全且 Responsible AI 系统提供了全面的指南。它概述了在整个 AI 生命周期中解决安全和合规性考虑因素的关键原则和最佳实践。
- 如需详细了解 Google Cloud在 AI 信任方面的做法,请访问我们的合规性资源中心。
定义明确的目标和要求
有效的 AI 和机器学习安全性是您总体业务战略的核心组成部分。在设计和开发流程的早期阶段,您可以更轻松地集成所需的安全和合规控制措施,而无需在开发完成后再添加控制措施。
从设计和开发流程开始,就要根据您的具体风险环境和具体业务优先级做出适当的决策。例如,过于严格的安全措施可能会保护数据,但也会阻碍创新并减缓开发周期。不过,缺乏安全性可能会导致数据泄露、声誉受损和财务损失,这会对业务目标造成不利影响。
如需定义明确的目标和要求,请考虑以下建议。
根据业务目标调整 AI 和机器学习安全性
为了让 AI 和 ML 安全工作与业务目标保持一致,请采用战略性方法,将安全性融入 AI 生命周期的每个阶段。如需采用此方法,请执行以下操作:
明确定义业务目标和安全要求:
- 确定关键业务目标:明确定义您的 AI 和 ML 计划旨在实现的业务目标。例如,您的目标可能是改善客户体验、优化运营或开发新产品。
- 将目标转化为安全要求:明确业务目标后,请定义具体的安全要求来支持这些目标。例如,您的目标可能是使用 AI 来个性化客户推荐。为实现这一目标,您的安全要求可能包括保护客户数据隐私,以及防止未经授权访问推荐算法。
在安全性和业务需求之间取得平衡:
- 进行风险评估:识别 AI 系统中潜在的安全威胁和漏洞。
- 确定安全措施的优先级:根据这些安全措施对您的业务目标的潜在影响来确定其优先级。
- 分析成本和效益:确保您投资于最有效的解决方案。考虑不同安全措施的成本和效益。
- 提前测试安全性:在设计阶段尽早实施安全方面的最佳实践,并根据业务需求的变化和威胁的出现调整安全措施。
识别潜在的攻击途径和风险
考虑可能会影响 AI 系统的潜在攻击途径,例如数据中毒、模型反演或对抗性攻击。随着 AI 系统的发展,持续监控和评估不断变化的攻击面,并跟踪新的威胁和漏洞。请注意,AI 系统的变化也会导致其攻击面发生变化。
为降低潜在的法律风险和声誉风险,您还需要满足与数据隐私权、算法偏差和其他相关法规相关的合规性要求。
为了尽早预测潜在威胁和漏洞并做出可降低风险的设计选择,请采用从设计上保证安全的方法。
Google Cloud 提供了一整套全面的工具和服务,可帮助您实现“从设计上保证安全”的方法:
- 云安全状况管理:使用 Security Command Center 识别 AI 基础设施中的潜在漏洞和错误配置。
- 攻击风险得分和攻击路径:优化和使用 Security Command Center 生成的攻击风险得分和攻击路径。
- Google Threat Intelligence:及时了解针对 AI 系统的新威胁和攻击技术。
- 日志记录和监控:跟踪 AI 系统的性能和安全性,并检测任何异常情况或可疑活动。定期进行安全审核,以发现并解决 AI 基础设施和模型中的潜在漏洞。
- 漏洞管理:实施漏洞管理流程,以跟踪和修复 AI 系统中的安全漏洞。
如需了解详情,请参阅 Google 的“安全设计”理念和实现“安全设计”。
确保数据安全并防止数据丢失或错误处理
数据是一种宝贵而敏感的资产,必须妥善保护。数据安全有助于您维护用户信任、支持业务目标并满足合规性要求。
为确保您的数据安全无虞,请考虑以下建议。
遵循数据最少化原则
为确保数据隐私,请遵循数据最小化原则。为尽可能减少数据,请勿收集、保留或使用对实现业务目标而言并非绝对必要的数据。尽可能使用合成数据或完全匿名化处理的数据。
数据收集有助于获取业务数据洞见和分析结果,但在数据收集过程中谨慎行事至关重要。如果您收集客户的个人身份信息 (PII)、披露敏感信息,或者制造偏见或争议,那么您可能会构建出有偏见的机器学习模型。
您可以使用 Google Cloud 功能来帮助您在各种使用情形下改进数据最小化和数据隐私保护:
- 为了对数据进行去标识化处理并保留其实用性,请应用假名化、去标识化和泛化(例如分桶)等转换方法。如需实现这些方法,您可以使用 Sensitive Data Protection。
- 为了丰富数据并缓解潜在的偏差,您可以使用 Vertex AI 数据加标签作业。数据加标签流程会向原始数据添加信息丰富且有意义的标签,从而将其转换为结构化训练数据,以供机器学习模型使用。数据标签可提高数据的具体性并减少模糊性。
- 为帮助保护资源免遭长时间访问或操纵,请使用 Cloud Storage 功能来控制数据生命周期。
如需了解有关如何实现数据加密的最佳实践,请参阅 Well-Architected Framework 中的静态数据加密和传输中的数据加密。
监控数据收集、存储和转换
AI 应用的训练数据是引入偏差和数据泄露的最大风险因素。为了保持合规性并管理不同团队的数据,请建立数据治理层来监控数据流、转换和访问。维护数据访问和操纵活动的日志。这些日志有助于您审核数据访问情况、检测未经授权的访问尝试,并防止不必要的访问。
您可以使用 Google Cloud 功能来帮助您实施数据治理策略:
- 如需建立组织级或部门级数据治理平台,请使用 Dataplex Universal Catalog。
数据治理平台可帮助您在数据平台上集中发现、管理、监控和治理数据与 AI 制品。数据治理平台还向可信用户提供访问权限。您可以使用 Dataplex Universal Catalog 执行以下任务:
- 管理数据沿袭。BigQuery 还可以提供列级谱系。
- 管理数据质量检查和数据剖析文件。
- 管理不同数据集市中的数据发现、探索和处理。
- 管理特征元数据和模型制品。
- 创建业务术语库,以管理元数据并建立标准化的词汇。
- 通过切面和切面类型丰富元数据的上下文。
- 统一 BigLake 和开放格式表(如 Iceberg 和 Delta)的数据治理。
- 构建数据网格,以便在不同团队或网域的数据所有者之间分散数据所有权。这种做法符合数据安全原则,有助于提高数据可访问性和运营效率。
- 检查敏感数据结果并将其从 BigQuery 发送到 Dataplex Universal Catalog。
- 如需构建统一的开放式湖仓一体架构,并实现良好的数据治理,请将数据湖和数据仓库与 Dataproc Metastore 和 BigLake metastore 等托管式元存储区服务集成。开放式湖仓使用与不同数据处理引擎兼容的开放式表格格式。
- 如需安排对特征和特征组的监控,请使用 Vertex AI Feature Store。
- 如需在组织、文件夹或项目级层扫描 Vertex AI 数据集,请使用 Vertex AI 敏感数据发现。您还可以分析存储在 BigQuery 中的数据剖析文件。
- 如需捕获实时日志并收集与数据流水线相关的指标,请使用 Cloud Logging 和 Cloud Monitoring。 如需收集 API 调用的审核轨迹,请使用 Cloud Audit Logs。请勿在实验或不同的日志服务器中记录个人身份信息或机密数据。
实施基于角色的访问控制,并遵循最小权限原则
实施基于角色的访问权限控制 (RBAC),根据用户角色分配不同的访问权限级别。用户必须仅拥有执行其角色活动所需的最低权限。根据最小权限原则分配权限,以便用户仅拥有所需的访问权限,例如无访问权限、只读权限或写入权限。
如果组织使用数据湖、特征存储区或模型训练超参数中存储的敏感数据,那么采用最小权限的 RBAC 对于安全性至关重要。这种做法有助于防止数据盗窃,维护模型完整性,并限制意外或攻击的发生范围。
为了帮助您实现这些访问策略,您可以使用以下Google Cloud 功能:
如需实现精细的访问权限,请考虑以下选项:
- 将不同产品的 IAM 角色映射到用户、群组或服务账号,以实现精细的访问权限控制。根据项目需求、访问模式或标记映射这些角色。
- 设置具有条件的 IAM 政策,以精细管理对数据、模型和模型配置(例如代码、资源设置和超参数)的访问权限。
探索应用级精细访问权限,帮助您保护在团队外部审核和分享的敏感数据。
- Cloud Storage:为存储分区和托管式文件夹设置 IAM 政策。
- BigQuery:针对数据集和数据集内的资源使用 IAM 角色和权限。此外,还可以在 BigQuery 中限制行级和列级访问权限。
如需限制对特定资源的访问权限,您可以使用主账号访问权限边界 (PAB) 政策。您还可以使用 Privileged Access Manager 为所选主账号控制即时的临时特权提升。之后,您可以查看此 Privileged Access Manager 活动的审核日志。
如需根据 IP 地址和最终用户设备属性限制对资源的访问,您可以扩展 Identity-Aware Proxy (IAP) 访问权限政策。
如需为不同的用户群组创建访问模式,您可以使用 IAM 进行 Vertex AI 访问权限控制,将预定义角色或自定义角色结合使用。
如需使用情境感知访问权限控制保护 Vertex AI Workbench 实例,请使用 Access Context Manager 和 Chrome 企业进阶版。采用此方法时,系统会在每次用户向实例进行身份验证时评估其访问权限。
针对数据移动实施安全措施
实施安全边界和其他措施,例如加密和限制数据移动。这些措施有助于防止数据渗漏和数据丢失,从而避免财务损失、声誉损害、法律责任和业务运营中断。
为了帮助防止 Google Cloud上的数据渗漏和丢失,您可以结合使用多种安全工具和服务。
如需实现加密,请考虑以下事项:
- 如需更好地控制加密密钥,请使用 Cloud KMS 中的客户管理的加密密钥 (CMEK)。使用 CMEK 时,以下与 CMEK 集成的服务会为您加密静态数据:
- 为帮助保护 Cloud Storage 中的数据,请使用服务器端加密来存储 CMEK。如果您在自己的服务器上管理 CMEK,即使您的 CMEK 存储系统遭到入侵,服务器端加密也能帮助保护您的 CMEK 和关联数据。
- 如需加密传输中的数据,请对所有 AI 和 ML 服务 API 调用使用 HTTPS。如需为应用和 API 强制执行 HTTPS,请使用 HTTPS 负载平衡器。
如需了解有关如何加密数据的更多最佳实践,请参阅 Well-Architected Framework 的安全支柱中的加密静态数据和传输中的数据。
如需实现安全边界,请考虑以下事项:
- 如需在 AI 和 ML 资源周围创建安全边界,并防止数据从 Virtual Private Cloud (VPC) 中渗漏,请使用 VPC Service Controls 定义服务边界。将 AI 和 ML 资源以及敏感数据纳入边界内。如需控制数据流,请为边界配置入站和出站规则。
- 如需限制 AI 和 ML 资源的入站和出站流量,请配置防火墙规则。实施默认拒绝所有流量的政策,并明确仅允许符合您条件的流量。如需查看政策示例,请参阅示例:拒绝除特定端口之外的所有外部连接。
如需实施数据移动限制,请考虑以下事项:
- 如需在安全的环境中共享数据并跨隐私边界进行扩展,请使用 BigQuery Sharing 和 BigQuery 数据净室,它们可提供强大的安全和隐私框架。
- 如需直接从商业智能信息中心将数据分享到内置目标平台,请使用 Looker Action Hub,它可提供安全的云环境。
防范数据中毒
数据中毒是一种网络攻击,攻击者会将恶意数据注入训练数据集,以操纵模型行为或降低模型性能。这种网络攻击可能会对机器学习训练系统构成严重威胁。 为保护数据的有效性和质量,请采取措施来保护数据。这种方法对于确保模型的一致无偏性、可靠性和完整性至关重要。
为了跟踪数据的不一致行为、转换或意外访问,请为数据流水线和机器学习流水线设置全面的监控和提醒。
Google Cloud 功能可帮助您实施更多保护措施来防范数据中毒:
如需验证数据完整性,请考虑以下事项:
- 在将数据用于训练之前,请先实现可靠的数据验证检查。验证数据格式、范围和分布。您可以使用 Dataplex Universal Catalog 中的自动化数据质量功能。
- 将 Sensitive Data Protection 与 Model Armor 搭配使用,可充分利用全面的数据泄露防护功能。如需了解详情,请参阅 Model Armor 关键概念。 借助 Model Armor,Sensitive Data Protection 可让您发现、分类和保护知识产权等敏感数据。这些功能可帮助您防止在 LLM 互动中未经授权泄露敏感数据。
- 如需检测训练数据中可能表明存在数据中毒的异常情况,请使用统计方法或机器学习模型在 BigQuery 中检测异常情况。
如需为稳健的训练做好准备,请执行以下操作:
如需将人工审核纳入训练数据或模型输出中,请执行以下操作:
- 分析模型评估指标,以检测可能表明存在数据中毒的潜在偏差、异常或意外行为。如需了解详情,请参阅 Vertex AI 中的模型评估。
- 利用领域专业知识评估模型或应用,并识别自动方法可能无法检测到的可疑模式或数据点。如需了解详情,请参阅 Gen AI Evaluation Service 概览。
如需了解有关如何创建注重基础设施和数据安全的数据平台的最佳实践,请参阅 Well-Architected Framework 中的实现设计中的安全性原则。
确保 AI 流水线安全可靠,免遭篡改
您的 AI 和机器学习代码以及代码定义的流水线是关键资产。未受保护的代码可能会被篡改,从而导致数据泄露、违规和关键业务活动中断。确保 AI 和 ML 代码安全有助于确保模型和模型输出的完整性和价值。
为确保 AI 代码和流水线的安全,请考虑以下建议。
采用安全的编码实践
为防止出现漏洞,请在开发模型时采用安全的编码实践。我们建议您实施针对 AI 的特定输入和输出验证,管理所有软件依赖项,并将安全编码原则始终如一地融入到开发流程中。将安全性嵌入到 AI 生命周期的每个阶段,从数据预处理到最终应用代码。
如需实现严格的验证,请考虑以下事项:
为防止模型遭到操纵或系统遭到利用,请在代码中验证并清理输入和输出。
- 使用 Model Armor 或经过微调的 LLM 自动过滤提示和回答,以发现常见风险。
- 在数据注入和预处理脚本中针对数据类型、格式和范围实现数据验证。对于 Vertex AI Pipelines 或 BigQuery,您可以使用 Python 来实现此数据验证。
- 使用编码助理 LLM 代理(例如 CodeMender)来提高代码安全性。保留人工干预,以验证其建议的更改。
如需管理和保护 AI 模型 API 端点,请使用 Apigee,其中包含请求验证、流量控制和身份验证等可配置的功能。
为帮助降低整个 AI 生命周期内的风险,您可以使用 AI Protection 执行以下操作:
- 发现您环境中的 AI 清单。
- 评估资源清单中是否存在潜在漏洞。
- 通过控制、政策及保护措施,全面保护 AI 资产。
- 通过检测、调查和响应功能管理 AI 系统。
为了帮助保护 CI/CD 流水线中的代码和制品依赖项,请考虑以下事项:
- 为解决开源库依赖项可能给项目带来的风险,请将 Artifact Analysis 与 Artifact Registry 搭配使用,以检测已知漏洞。使用并维护已获批准的库版本。将自定义机器学习软件包和经过审核的依赖项存储在私有 Artifact Registry 代码库中。
- 如需将依赖项扫描嵌入到 Cloud Build MLOps 流水线中,请使用 Binary Authorization。强制执行相关政策,仅当代码的容器映像通过安全检查时才允许部署。
- 如需获取有关软件供应链的安全信息,请使用 Google Cloud 控制台中的信息中心,其中提供了有关来源、构建、制品、部署和运行时的详细信息。这些信息包括 build 制品中的漏洞、build 出处和软件物料清单 (SBOM) 依赖项列表。
- 如需评估软件供应链安全性的成熟度级别,请使用软件制品的供应链等级 (SLSA) 框架。
为了在开发过程的每个阶段始终如一地融入安全编码原则,请考虑以下事项:
- 如需防止模型互动中敏感数据泄露,请使用“记录并使用 Sensitive Data Protection”。将这些产品搭配使用时,您可以控制 AI 应用和流水线组件记录哪些数据,并隐藏敏感数据。
- 为了实现最小权限原则,请确保您用于 Vertex AI 自定义作业、流水线和已部署模型的服务账号仅具有所需的最低 IAM 权限。如需了解详情,请参阅根据最小权限原则实现基于角色的访问权限控制。
- 为了帮助保护您的流水线和 build 制品,请了解代码运行环境中的安全配置(VPC 和 VPC Service Controls)。
保护流水线和模型制品免遭未经授权的访问
模型制品和流水线是知识产权,其训练数据也包含专有信息。为防止模型权重、文件和部署配置遭到篡改和利用,请以更高的安全性存储和访问这些制品。根据用户角色和需求,为每个制品实现不同的访问权限级别。
为了帮助保护您的模型制品,请考虑以下事项:
- 为了保护模型制品和其他敏感文件,请使用 Cloud KMS 对其进行加密。这种加密有助于保护静态数据和传输中的数据,即使底层存储空间遭到入侵也是如此。
- 为了帮助您安全地访问文件,请将文件存储在 Cloud Storage 中并配置访问权限控制。
- 如需跟踪任何不正确或不充分的配置以及与您定义的标准的任何偏差,请使用 Security Command Center 配置安全态势。
- 如需启用精细的访问权限控制和静态加密,请将模型制品存储在 Vertex AI Model Registry 中。为了进一步提高安全性,请为在获批的 build 流程中生成的软件包和容器创建数字签名。
- 如需获享 Google Cloud的企业级安全保障,请使用 Model Garden 中提供的模型。Model Garden 提供 Google 的专有模型,并提供精选合作伙伴的第三方模型。
如需对所有用户和群组生命周期强制执行集中管理,并强制执行最小权限原则,请使用 IAM。
- 为 MLOps 流水线创建并使用具有最低权限的专用服务账号。例如,训练流水线的服务账号具有以下权限:仅从特定的 Cloud Storage 存储桶读取数据,以及将模型工件写入模型注册表。
- 使用 IAM Conditions 强制执行基于属性的条件访问权限控制。例如,条件允许服务账号仅在请求来自可信的 Cloud Build 触发器时触发 Vertex AI 流水线。
为了帮助保护您的部署流水线,请考虑以下事项:
如需管理 Google Cloud 服务和资源上的 MLOps 阶段,请使用 Vertex AI Pipelines,它可以与其他服务集成并提供低级别访问权限控制。重新执行流水线时,请确保在部署模型工件之前执行 Vertex Explainable AI 和 Responsible AI 检查。这些检查有助于您检测或防范以下安全问题:
- 未经授权的更改,可能表明模型遭到篡改。
- 跨站脚本 (XSS),可能表明容器映像或依赖项遭到入侵。
- 不安全的端点,可能表示服务基础架构配置有误。
为了帮助确保推理期间的模型互动安全,请将基于 Private Service Connect 的专用端点与预构建容器或自定义容器搭配使用。使用预定义的输入和输出架构创建模型签名。
如需自动跟踪代码更改,请使用 Git 进行源代码管理,并将版本控制与强大的 CI/CD 流水线集成。
如需了解详情,请参阅保护 AI 流水线。
强制执行沿袭和跟踪
为了帮助您满足可能需要遵守的监管合规性要求,请强制执行 AI 和 ML 资产的谱系和跟踪。数据沿袭和跟踪功能可提供数据、模型和代码的详尽更改记录。模型来源信息可在整个 AI 和 ML 生命周期中提供透明度和问责制。
如需在 Google Cloud中有效强制执行谱系和跟踪,请考虑使用以下工具和服务:
- 如需跟踪在静态状态下自动加密的模型、数据集和工件的沿袭,请使用 Vertex ML Metadata。记录有关数据源、转换、模型参数和实验结果的元数据。
- 如需跟踪 Vertex AI Pipelines 中流水线制品的沿袭,并搜索模型和数据集资源,您可以使用 Dataplex Universal Catalog。当您想要执行调试、问题排查或根本原因分析时,可以跟踪各个流水线制品。 如需跟踪整个 MLOps 流水线(包括流水线工件的沿袭),请使用 Vertex ML Metadata。Vertex ML Metadata 还允许您分析资源和运行。Model Registry 会应用并管理您存储的每个模型的版本。
- 如需跟踪 API 调用和管理操作,请为 Vertex AI 启用审核日志。使用日志分析功能分析审核日志,了解谁在何时访问或修改了数据和模型。您还可以将日志路由到第三方目标位置。
使用安全工具和工件在安全系统上部署
确保您的代码和模型在安全环境中运行。此环境必须具有强大的访问权限控制系统,并为部署的工具和制品提供安全保障。
如需在安全系统上部署代码,请考虑以下建议。
在安全环境中训练和部署模型
为确保 AI 和 ML 系统的完整性、机密性和可用性,请实施严格的访问权限控制,以防止未经授权的资源操纵。这种防御措施可帮助您执行以下操作:
- 缓解可能产生意外或冲突结果的模型篡改。
- 保护您的训练数据免遭隐私违规行为的侵害。
- 保持服务正常运行时间。
- 保持法规合规性。
- 赢得用户信任。
如需在安全性更高的环境中训练机器学习模型,请使用 Google Cloud 中的代管式服务,例如 Cloud Run、GKE 和 Dataproc。您还可以使用 Vertex AI 无服务器训练。
本部分提供了一些建议,可帮助您进一步保护训练和部署环境。
为了帮助保护您的环境和边界,请考虑以下事项:
如前所述,在实施安全措施时,请考虑以下事项:
使用 Vertex AI 训练时,您可以使用以下方法来帮助保护计算基础设施:
- 如需训练可与授权 Google Cloud 服务私下通信且不会暴露给公开流量的自定义作业,请设置 Private Service Connect 接口。
- 与使用公共 IP 地址相比,使用专用 IP 地址连接到训练作业可提高网络安全性并缩短网络延迟时间。如需了解详情,请参阅使用专用 IP 地址进行自定义训练。
使用 GKE 或 Cloud Run 设置自定义环境时,请考虑以下选项:
- 如需保护 GKE 集群,请使用适当的网络政策、Pod 安全政策和访问权限控制。为训练工作负载使用可信且经过验证的容器映像。如需扫描容器映像是否存在安全漏洞,请使用 Artifact Analysis。
- 为保护您的环境免受容器逃逸和其他攻击,请为 Cloud Run functions 实现运行时安全措施。为了进一步保护您的环境,请使用 GKE Sandbox 和工作负载隔离。
- 为帮助保护 GKE 工作负载,请遵循 GKE 安全概览中的最佳实践。
- 如需了解如何在 Cloud Run 中满足安全要求,请参阅安全设计概览}。
使用 Dataproc 进行模型训练时,请遵循 Dataproc 安全最佳实践。
为了帮助保护您的部署,请考虑以下事项:
- 部署模型时,请使用 Model Registry。 如果您在容器中部署模型,请使用 GKE Sandbox 和 Container-Optimized OS 来增强安全性并隔离工作负载。 根据用户角色和职责限制对模型花园中模型的访问权限。
- 为了帮助您保护模型 API,请使用 Apigee 或 API Gateway。为防止滥用,请实现 API 密钥、身份验证、授权和速率限制。如需控制对模型 API 的访问权限,请使用 API 密钥和身份验证机制。
- 为了在预测期间帮助确保对模型的访问安全,请使用 Vertex AI Inference。 为防止数据渗漏,请使用 VPC Service Controls 边界来保护专用端点,并控制对底层模型的访问。您可以使用专用端点来允许访问 VPC 网络中的模型。IAM 不会直接应用于专用端点,但目标服务会使用 IAM 来管理对模型的访问权限。对于在线预测,我们建议您使用 Private Service Connect。
- 如需跟踪与模型部署相关的 API 调用,请为 Vertex AI 启用 Cloud Audit Logs。相关 API 调用包括端点创建、模型部署和配置更新等活动。
- 如需将 Google Cloud 基础架构扩展到边缘位置,请考虑 Google Distributed Cloud 解决方案。对于完全断开连接的解决方案,您可以使用分布式云网闸,该解决方案无需连接到 Google Cloud。
- 为了帮助标准化部署并确保符合法规和安全需求,请使用 Assured Workloads。
遵循针对 AI 制品的 SLSA 指南
遵循针对 AI 特定制品(例如模型和软件包)的标准软件制品的供应链等级 (SLSA) 指南。
SLSA 是一种安全框架,旨在帮助您提高软件制品的完整性并防止篡改。遵循 SLSA 指南有助于提高 AI 和 ML 流水线以及流水线生成的制品的安全性。遵循 SLSA 可带来以下好处:
- 提高对 AI 和机器学习工件的信任度:SLSA 有助于确保模型和软件包不会遭到篡改。用户还可以追溯模型和软件包的来源,从而提高用户对制品完整性和可靠性的信心。
- 降低供应链攻击风险:SLSA 有助于降低利用软件供应链中的漏洞发起的攻击的风险,例如注入恶意代码或破坏 build 流程的攻击。
- 增强安全防护态势:SLSA 有助于您增强 AI 和 ML 系统的整体安全防护态势。这种实现方式有助于降低攻击风险并保护您的宝贵资产。
如需在 Google Cloud上为 AI 和 ML 制品实现 SLSA,请执行以下操作:
- 了解 SLSA 级别:熟悉不同的 SLSA 级别及其要求。随着安全级别的提高,它们提供的完整性也会提高。
- 评估当前级别:根据 SLSA 框架评估当前实践,以确定当前级别并找出需要改进的方面。
- 设置目标级别:根据您的风险承受能力、安全要求以及 AI 和 ML 系统的关键程度,确定要实现的目标 SLSA 级别。
实现 SLSA 要求:为达到目标 SLSA 级别,请实现必要的控制措施和实践,可能包括以下内容:
- 源代码控制:使用 Git 等版本控制系统来跟踪代码和配置的更改。
- 构建流程:使用有助于确保构建安全的构建服务(例如 Cloud Build),并确保构建流程已编写脚本或实现自动化。
- 生成出处:生成出处元数据,其中包含有关制品构建方式的详细信息,包括构建流程、源代码和依赖项。如需了解详情,请参阅跟踪 Vertex ML Metadata 和跟踪执行和工件。
- 工件签名:对工件进行签名,以验证其真实性和完整性。
- 漏洞管理:定期扫描制品和依赖项是否存在漏洞。使用 Artifact Analysis 等工具。
- 部署安全性:实施有助于保护系统安全的部署实践,例如本文档中介绍的实践。
持续改进:监控并改进 SLSA 实现,以应对新的威胁和漏洞,并争取达到更高的 SLSA 级别。
使用经过验证的预构建容器映像
为防止 MLOps 阶段出现单点故障,请将需要不同依赖项管理的任务隔离到不同的容器中。例如,使用单独的容器来执行特征工程、训练或微调以及推理任务。这种方法还使机器学习工程师能够灵活地控制和自定义其环境。
为了在整个组织内提高 MLOps 的一致性,请使用预构建容器。维护一个中央仓库,其中包含经过验证且可信赖的基础平台映像,并遵循以下最佳实践:
- 在组织中维护一个集中化的平台团队,负责构建和管理标准化的基础容器。
- 扩展 Vertex AI 专门为 AI 和 ML 提供的预构建容器映像。在组织内的中央代码库中管理容器映像。
Vertex AI 提供了各种预构建的深度学习容器,可用于训练和推理,还允许您使用自定义容器。对于较小的模型,如果您在容器中加载模型,可以缩短推理延迟时间。
为了提高容器管理的安全性,请考虑以下建议:
- 使用 Artifact Registry 创建、存储和管理不同格式的容器映像制品库。Artifact Registry 通过 IAM 处理访问权限控制,并集成了可观测性和漏洞评估功能。借助 Artifact Registry,您可以启用容器安全功能、扫描容器映像并调查漏洞。
- 使用 Cloud Build 运行持续集成步骤并构建容器映像。在此阶段,系统会突出显示依赖项问题。如果您只想部署由 Cloud Build 构建的映像,可以使用 Binary Authorization。为帮助防止供应链攻击,请在 Artifact Registry 中部署由 Cloud Build 构建的映像。集成 SonarQube、PyLint 或 OWASP ZAP 等自动化测试工具。
- 使用 GKE 或 Cloud Run 等容器平台,这些平台针对 GPU 或 TPU 进行了优化,可用于处理 AI 和机器学习工作负载。考虑 GKE 集群中容器的漏洞扫描选项。
考虑将机密计算用于 GPU
如需保护使用中的数据,您可以使用机密计算。传统安全措施可保护静态数据和传输中的数据,而机密计算可在处理期间加密数据。当您使用 GPU 机密计算时,有助于保护敏感的训练数据和模型参数免遭未经授权的访问。您还可以帮助防止特权云用户或可能获得底层基础架构访问权限的潜在攻击者进行未经授权的访问。
如需确定是否需要使用 GPU 机密计算,请考虑数据的敏感程度、法规要求和潜在风险。
如果您设置了机密计算,请考虑以下选项:
- 对于通用 AI 和机器学习工作负载,请使用配备 NVIDIA T4 GPU 的保密虚拟机实例。这些虚拟机实例提供基于硬件的使用中数据加密。
- 对于容器化工作负载,请使用机密 GKE 节点。这些节点可为您的 pod 提供安全且隔离的环境。
- 为确保工作负载在真实且安全的可信执行环境中运行,请验证机密虚拟机提供的证明报告。
- 如需跟踪性能、资源利用率和安全事件,请使用监控和日志记录功能来监控机密计算资源和机密 GKE 节点。
验证和保护输入
将 AI 系统的所有输入都视为不受信任,无论这些输入来自最终用户还是其他自动化系统。为确保 AI 系统安全无虞并按预期运行,您必须尽早检测并清理潜在的攻击媒介。
为验证和保护您的输入内容,请考虑以下建议。
实施有助于保障生成式 AI 系统安全的实践
将提示视为关键应用组件,其对安全性的重要性与代码相同。实施纵深防御策略,将主动设计、自动化筛查和严格的生命周期管理相结合。
为确保生成式 AI 提示的安全,您必须在设计时就考虑安全性,并在使用前进行检查,并在整个生命周期内进行管理。
如需提高提示设计和工程的安全性,请考虑以下实践:
- 构建清晰的提示:使用 Vertex AI Studio 提示管理功能设计并测试所有提示。 提示需要具有清晰明确的结构。定义角色、添加少样本示例,并提供具体、有界限的指令。这些方法可降低模型错误解读用户输入而导致安全漏洞的风险。
测试输入的稳健性和依据:主动针对意外、格式错误和恶意输入测试所有系统,以防止崩溃或不安全的输出。使用红队测试来模拟真实攻击。作为 Vertex AI Pipelines 中的标准步骤,自动执行鲁棒性测试。您可以使用以下测试技术:
- 模糊测试。
- 直接针对 PII、敏感输入和 SQL 注入进行测试。
- 扫描可能包含恶意软件或违反提示政策的多模态输入。
实施分层防御:使用多种防御措施,切勿仅依赖一种防御措施。例如,对于基于检索增强生成 (RAG) 的应用,请使用单独的 LLM 对传入的用户意图进行分类,并检查是否存在恶意模式。然后,该 LLM 可以将请求传递给功能更强大的主 LLM,由后者生成最终回答。
清理并验证输入:在将外部输入或用户提供的输入内容纳入提示之前,请在应用代码中过滤并验证所有输入内容。此验证对于帮助您防止间接提示注入至关重要。
对于自动提示和回答过滤,请考虑以下做法:
- 使用全面的安全服务:实施专用且与模型无关的安全服务(例如 Model Armor),作为 LLM 的强制性保护层。Model Armor 会检查提示和回答,以防范提示注入、越狱尝试和有害内容等威胁。为确保模型不会在回答中泄露敏感训练数据或知识产权,请将 Sensitive Data Protection 与 Model Armor 集成。如需了解详情,请参阅 Model Armor 过滤条件。
- 监控和记录互动:为模型端点的所有提示和回答维护详细的日志。使用日志记录来审核这些互动,识别滥用模式,并检测可能针对已部署模型出现的攻击向量。
为帮助确保提示生命周期管理的安全,请考虑以下做法:
- 为提示实现版本控制:将所有生产提示视为应用代码。使用 Git 等版本控制系统来创建完整的更改历史记录、强制执行协作标准,并支持回滚到以前的版本。这一核心 MLOps 实践有助于您维护稳定且安全的 AI 系统。
- 集中管理提示:使用中央代码库来存储、管理和部署所有已纳入版本控制的提示。此策略可确保各个环境中的一致性,并支持运行时更新,而无需重新部署整个应用。
- 定期进行审核和红队测试:持续测试系统针对已知漏洞(例如 OWASP LLM 应用十大风险中列出的漏洞)的防御能力。 作为 AI 工程师,您必须主动对自己的应用进行红队测试,以便在攻击者利用弱点之前发现并修复它们。
防止对 AI 系统进行恶意查询
除了本文档前面讨论的身份验证和授权之外,您还可以采取进一步措施来帮助保护 AI 系统免受恶意输入的侵害。您需要为身份验证后的场景做好 AI 系统准备,在这些场景中,攻击者会绕过身份验证和授权协议,然后尝试从内部攻击系统。
如需实施可帮助保护系统免遭身份验证后攻击的全面策略,请应用以下要求:
保护网络层和应用层:为所有 AI 资产建立多层防御。
- 如需创建安全边界来防止模型注册表中的模型或 BigQuery 中的敏感数据发生数据渗漏,请使用 VPC Service Controls。 在强制执行边界之前,请务必使用试运行模式验证边界的影响。
- 为帮助保护基于 Web 的工具(例如笔记本),请使用 IAP。
- 为了帮助保护所有推理端点,请使用 Apigee 实现企业级安全性和治理。您还可以使用 API 网关进行简单的身份验证。
留意查询模式异常:例如,探测系统是否存在漏洞的攻击者可能会发送数千个略有不同的连续查询。标记不反映正常用户行为的异常查询模式。
监控请求量:查询量突然激增强烈表明发生了拒绝服务 (DoS) 攻击或模型盗窃攻击(试图对模型进行逆向工程)。使用速率限制和节流来控制来自单个 IP 地址或用户的请求量。
监控地理位置和时间异常并设置相关提醒:为正常访问模式建立基准。针对来自异常地理位置或在非正常时间发生的突发活动生成提醒。例如,凌晨 3 点,来自某个新国家/地区的登录次数大幅增加。
监控、评估并准备好回复输出内容
AI 系统之所以能创造价值,是因为它们生成的输出可以增强、优化或自动化人类的决策过程。为确保 AI 系统和应用的完整性和可信度,请确保输出安全可靠且在预期参数范围内。您还需要制定突发事件响应方案。
如需保持输出,请考虑以下建议。
使用指标和安全措施评估模型性能
为确保 AI 模型达到性能基准、满足安全要求并遵守公平性和合规性标准,请对模型进行全面评估。在部署之前进行评估,然后继续定期评估生产环境中的模型。为最大限度地降低风险并构建值得信赖的 AI 系统,请实施一项综合评估策略,将性能指标与特定的 AI 安全评估相结合。
如需评估模型鲁棒性和安全状况,请考虑以下建议:
在 MLOps 流水线中实现模型签名和验证。
- 对于容器化模型,请使用 Binary Authorization 验证签名。
- 对于直接部署到 Vertex AI 端点的模型,请在部署脚本中使用自定义检查进行验证。
- 对于任何模型,请使用 Cloud Build 进行模型签名。
评估模型对意外输入或对抗性输入的应对能力。
- 对于所有模型,请测试模型是否存在常见的数据损坏和任何潜在的恶意数据修改。如需编排这些测试,您可以使用 Vertex AI 训练或 Vertex AI Pipelines。
- 对于安全关键型模型,请进行对抗性攻击模拟,以了解潜在的漏洞。
- 对于部署在容器中的模型,请使用 Artifact Registry 中的 Artifact Analysis 扫描基础映像是否存在漏洞。
使用 Vertex AI Model Monitoring 检测已部署模型的漂移和偏差。然后,将这些数据洞见反馈到重新评估或重新训练周期中。
将 Vertex AI 的模型评估用作 Vertex AI Pipelines 的流水线组件。您可以单独运行模型评估组件,也可以与其他流水线组件一起运行。根据您定义的指标和数据集比较模型版本。将评估结果记录到 Vertex ML Metadata 中,以便进行沿袭和跟踪。
使用或基于 Gen AI Evaluation Service 来评估所选模型,或实现自定义人工评估工作流。
如需评估公平性、偏差、可解释性和事实准确性,请考虑以下建议:
- 定义符合您使用场景的公平性指标,然后评估您的模型在不同数据切片中是否存在潜在的偏差。
- 了解哪些特征会影响模型预测,以确保这些特征和由此产生的预测结果符合领域知识和道德准则。
- 使用 Vertex Explainable AI 获取模型的特征归因。
- 使用 Gen AI Evaluation Service 计算指标。在测试的来源验证阶段,服务的依据指标会根据提供的来源文本检查事实性。
- 为模型输出启用事实依据,以便在用户层面进行第二层来源验证。
- 查看我们的 AI 原则,并根据您的 AI 应用调整这些原则。
监控生产环境中的 AI 和机器学习模型输出
持续监控生产环境中的 AI 和机器学习模型及其支持基础设施。及时发现并诊断模型输出质量或性能下降、新出现的安全漏洞以及违反合规性要求的行为非常重要。此监控有助于您维持系统的安全性、可靠性和可信度。
如需监控 AI 系统输出是否存在异常、威胁和质量下降,请考虑以下建议:
- 使用模型监控功能来监控模型输出,以跟踪预测分布的意外变化或低置信度模型预测的峰值。主动监控生成式 AI 模型的输出,以发现不安全、有偏见、离题或恶意生成的内容。您还可以使用 Model Armor 来过滤所有模型输出。
- 在应用级识别特定错误模式、捕获质量指标,或检测有害或不合规的输出。如需查找这些问题,请在 Monitoring 信息中心内使用自定义监控功能,并使用 Logging 中的基于日志的指标。
如需监控输出中是否存在与安全性相关的信号和未经授权的更改,请考虑以下建议:
- 识别对 AI 模型、Cloud Storage 或 BigQuery 中的数据集或 MLOps 流水线组件的未经授权的访问尝试。具体而言,请识别 AI 资源的 IAM 权限是否发生了意外或未经授权的更改。如需跟踪这些活动并查看是否存在可疑模式,请使用 Cloud Audit Logs 中的管理员活动审核日志和数据访问审核日志。集成 Security Command Center 的发现结果,这些结果可以标记安全配置错误,并标记与 AI 资产相关的潜在威胁。
- 监控输出,查看是否存在大量请求或来自可疑来源的请求,这些情况可能表明有人试图对模型进行逆向工程或窃取数据。您还可以使用 Sensitive Data Protection 来监控潜在敏感数据的渗漏情况。
- 将日志集成到安全运维中。使用 Google Security Operations 帮助您检测、编排和应对 AI 系统中的任何网络威胁。
如需跟踪为 AI 模型提供服务的基础设施的运行状况和性能,请考虑以下建议:
- 识别可能会影响服务交付或模型性能的运营问题。
- 监控 Vertex AI 端点的延迟时间、错误率和流量模式。
- 监控 MLOps 流水线的执行状态和错误。
- 使用 Monitoring,它可提供现成的指标。您还可以创建自定义信息中心,以帮助您发现端点中断或流水线失败等问题。
实施提醒和突发事件响应程序
当您发现任何潜在的性能、安全或合规性问题时,有效的响应至关重要。为确保及时通知相应团队,请实现可靠的提醒机制。建立并实施全面的 AI 感知型突发事件响应流程,以便高效地管理、遏制和修复这些问题。
为了针对您发现的 AI 问题建立可靠的提醒机制,请考虑以下建议:
- 根据平台的监控活动配置可据以采取行动的提醒,以便通知相关团队。例如,您可以配置提醒,以便在模型监控检测到显著的偏移、偏差或预测异常时触发提醒。或者,配置提醒,以便在 Model Armor 或自定义监控规则标记出恶意输入或不安全输出时触发提醒。
- 定义清晰的通知渠道,这些渠道可以通过 Pub/Sub 集成包括 Slack、电子邮件或短信。为不同严重程度的提醒和负责团队自定义通知渠道。
制定并实施可感知 AI 的突发事件响应方案。结构化的突发事件响应计划对于最大限度地减少任何潜在影响并确保恢复至关重要。您可以自定义此方案,以应对 AI 特有的风险,例如模型篡改、因漂移而导致的不正确预测、提示注入或生成式模型的不安全输出。若要制定有效的计划,请纳入以下关键阶段:
准备:识别资产及其漏洞,制定剧本,并确保您的团队拥有适当的权限。此阶段包括以下任务:
- 确定关键 AI 资产,例如模型、数据集和特定的 Vertex AI 资源(如端点或 Vertex AI Feature Store 实例)。
- 确定资产的潜在故障模式或攻击途径。
针对符合组织威胁模型的事件,制定 AI 特有的 playbook。例如,剧本可能包含以下内容:
- 使用 Model Registry 中的版本控制功能进行模型回滚。
- Vertex AI Training 上的紧急重新训练流水线。
- 在 BigQuery 或 Cloud Storage 中隔离遭入侵的数据源。
使用 IAM 确保响应团队拥有必要的最小权限,以便在突发事件期间访问所需的工具。
识别和分诊:使用配置的提醒来检测和验证潜在的突发事件。为组织调查或声明 AI 相关事件的方式制定明确的标准和阈值。如需进行详细调查和收集证据,请使用日志记录功能来记录应用日志和服务日志,并使用 Cloud Audit Logs 来记录管理活动和数据访问模式。安全团队可以使用 Google SecOps 对安全遥测数据进行更深入的分析。
遏制:隔离受影响的 AI 系统或组件,以防止进一步的影响或数据渗漏。此阶段可能包括以下任务:
- 停用有问题的 Vertex AI 端点。
- 撤消特定 IAM 权限。
- 更新防火墙规则或 Cloud Armor 政策。
- 暂停行为异常的 Vertex AI 流水线。
根除:找出并移除突发事件的根本原因。 此阶段可能包括以下任务:
- 修补自定义模型容器中的易受攻击的代码。
- 从模型中移除已识别的恶意后门。
- 在 Vertex AI Training 上启动安全重新训练作业之前,请对中毒数据进行清理。
- 更新任何不安全的配置。
- 优化输入验证逻辑,以屏蔽特定的提示注入技术。
恢复和安全重新部署:将受影响的 AI 系统恢复到已知的良好且安全的操作状态。此阶段可能包括以下任务:
- 从 Model Registry 部署之前经过验证且受信任的模型版本。
- 确保您找到并应用了代码或系统中可能存在的所有漏洞的安全补丁。
- 将 IAM 权限重置为最小权限原则。
突发事件后的活动和经验教训:解决重大 AI 突发事件后,请进行全面的突发事件后审查。此审核涉及所有相关团队,例如 AI 和 ML、MLOps、安全和数据科学团队。了解事件的完整生命周期。利用这些分析洞见来优化 AI 系统设计、更新安全控制措施、改进监控配置,并增强 AI 突发事件响应计划和手册。
将 AI 突发事件响应与更广泛的组织框架(例如 IT 和安全突发事件管理)相集成,以实现协同工作。为了使您的 AI 专用突发事件响应与组织框架保持一致,请考虑以下事项:
- 上报:明确定义如何将重大 AI 事件上报给中央 SOC、IT、法律或相关业务部门。
- 沟通:使用既定的组织渠道来处理所有内部和外部事件报告及更新。
- 工具和流程:针对 AI 突发事件使用现有的企业突发事件管理和工单系统,以确保跟踪和可见性的一致性。
- 协作:预先定义 AI 和 ML、MLOps、数据科学、安全、法律和合规团队之间的协作协议,以便有效应对 AI 突发事件。
贡献者
作者:
- Kamilla Kurta | GenAI/机器学习专家客户工程师
- Vidhi Jain | 云工程师,负责分析和 AI
- Mohamed Fawzi | 比荷卢经济联盟安全与合规主管
- Filipe Gracio 博士 | 客户工程师,AI/机器学习专家
其他贡献者:
- Lauren Anthony | 客户工程师,安全专家
- Daniel Lees | 云安全架构师
- John Bacon | 合作伙伴解决方案架构师
- Kumar Dhanagopal | 跨产品解决方案开发者
- Marwan Al Shawi | 合作伙伴客户工程师
- Mónica Carranza | Senior Generative AI Threat Analyst
- Tarun Sharma | 首席架构师
- Wade Holmes | 全球解决方案总监