Amazon MLS-C01: 安全、隐私与合规 — 学习指南
属于 AWS Machine Learning Specialty MLS-C01 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.
数据和模型加密:分层控制和常见陷阱
加密静态数据和传输中数据是 ML 管道的第一道防线。对于 S3 中的对象,当您需要可审计性和精细的密钥控制时,首选使用 KMS 的服务器端加密 (SSE-KMS);对于不需要对每个请求进行 KMS 日志记录的存储桶,SSE-S3 也是可以接受的。SageMaker 模型构件、附加到训练和托管实例的 EBS 卷以及 EFS/FSx 卷也必须加密——可以配置 SageMaker 使用客户管理的 CMK 对模型构件和卷进行加密。对于大型数据集或跨账户共享,请使用信封加密(通过 KMS 生成数据密钥,并使用 AWS Encryption SDK 或客户端库)以避免重复的 KMS 调用。传输中保护要求所有 S3 和服务终端节点都使用 TLS;在使用私有网络时,PrivateLink 和 VPC 终端节点在网络传输中仍然使用 TLS。一个常见的陷阱是忘记更新 CMK 密钥策略:必须授予 SageMaker 服务主体和您的执行角色解密/生成权限(仅有 IAM 是不够的)。决策标准:当您希望运营开销较低时,选择 AWS 托管的 CMK;当您需要密钥轮换策略、跨账户控制或独立的密钥管理员时,选择客户管理的 CMK。考虑性能和成本:对于高吞吐量的工作负载,信封加密可以减少 KMS API 的使用。
密钥管理、CMK 设计和操作控制
为 ML 工作负载设计 KMS 策略需要在安全性、访问边界和操作之间取得平衡。当您需要精细的策略控制、授权 (grant)、跨账户使用以及在 CloudTrail 中对 GenerateDataKey/Decrypt 操作进行审计跟踪时,请使用客户管理的 CMK。对于需要 HSM 支持的密钥和 FIPS 要求,可以考虑使用由 CloudHSM 支持的 KMS 自定义密钥存储。密钥策略是权威性的;使用 IAM 策略对其进行补充,并使用 kms:ViaService 条件将使用范围限制到特定的 AWS 服务(例如,仅允许通过 sagemaker.amazonaws.com 或 s3.amazonaws.com 调用时进行解密)。使用 KMS 授权 (grant) 为训练作业使用的临时角色授予短期的解密/加密权限。在适当的情况下为对称 CMK 启用自动密钥轮换,并创建多区域密钥以实现模型的异地冗余复制。常见的陷阱包括仅依赖 IAM 策略(而未更新 CMK 密钥策略),以及忘记包含服务主体(例如 sagemaker.amazonaws.com 或 elasticblockstore.amazonaws.com),从而导致托管服务无法使用 CMK。决策标准应权衡管理分离(按业务单元或敏感度级别使用不同的 CMK)与 KMS 配额和操作复杂性;应用最小权限原则,并在 CloudTrail 中审计 GenerateDataKey 事件。
用于 SageMaker 和 S3 的私有网络和 VPC 终端节点
为了使数据和镜像不暴露于公共互联网,请将 SageMaker Studio、笔记本实例以及训练/托管作业放入 VPC 中,并使用 VPC 终端节点。S3 网关终端节点允许从您的子网直接、私密地访问存储桶对象;附加限制性的终端节点策略,将访问限制在特定的存储桶和前缀。SageMaker API、运行时调用和 ECR 需要接口终端节点 (PrivateLink):根据需要创建 com.amazonaws.
IAM、私有镜像访问、审计日志和数据泄露控制
最小权限 IAM 角色是核心:SageMaker 执行角色必须只拥有任务所必需的 S3、ECR、KMS 和 CloudWatch 权限,并且通常将范围限定于资源 ARN,并使用 aws:SourceArn/aws:SourceAccount/aws:SourceVpc 条件进行约束。对于私有容器镜像,应将其托管在私有 ECR 仓库中,并通过仓库策略将拉取操作限制在特定的 IAM 主体或组织账户;将镜像标记为不可变并启用镜像扫描。审计日志记录是全方位的:为敏感存储桶启用 CloudTrail 管理事件和针对 GetObject/PutObject 的 S3 数据事件,将日志转发到一个专用的、加密的、跨账户的日志记录存储桶,并启用 CloudWatch Logs 和 VPC Flow Logs 来检测异常出口流量。使用 Amazon Macie 在 S3 中发现个人身份信息(PII),并使用 GuardDuty 检测异常的数据访问模式。为防止数据泄露,应结合使用多种控制措施:S3 存储桶策略(拒绝来自未经批准的 VPC 端点或 VPC CIDR 的请求)、网络控制(如安全组/NACL 和用于出口流量过滤的 AWS Network Firewall),以及 IAM 权限边界/SCP 来减小爆炸半径。常见的陷阱包括:假设仅 VpcConfig 就能阻止所有出站流量(您必须控制 NAT/互联网网关和端点),以及忘记向需要模型构件的实际运行时主体授予 KMS 解密权限。
实践问题:用例场景
场景: MetroDelivery 公司运营着按城市划分的 XGBoost 模型,这些模型作为构件存储在 S3 中,并在 SageMaker Studio 中进行训练。他们要求训练和推理过程绝不经过公共互联网,模型构件使用客户控制的密钥进行加密,并且容器镜像必须私有托管。
挑战: 确保训练和托管的端到端加密和私有网络连接,将镜像拉取限制在经批准的角色,并检测/防止未经授权的数据移动。
推荐方法:
- 在 KMS 中创建一个客户管理的对称 CMK,设置一个密钥策略,授予 MetroDelivery 管理员、sagemaker.amazonaws.com 和 SageMaker 执行角色 Decrypt/GenerateDataKey 权限,并启用自动轮换。
- 使用该 CMK 通过 SSE-KMS 加密 S3 存储桶;使用 S3 存储桶策略阻止公有访问,并要求 PutObject/GetObject 操作满足 aws:SourceVpc 或 aws:ViaAWSService 条件。
- 配置 VPC:部署没有 NAT 的私有子网,为 S3 创建一个网关 VPC 端点,其端点策略限制在模型存储桶前缀,并为 sagemaker、sagemaker-runtime、ecr.api、ecr.dkr、sts 和 cloudwatchlogs 部署接口端点。
- 在私有 ECR 中托管镜像,并通过仓库策略将主体限制为 SageMaker 执行角色;启用镜像不可变性和扫描。启用 CloudTrail(管理事件 + S3 数据事件)、用于敏感数据发现的 Macie 和用于异常活动检测的 GuardDuty;将日志发送到一个加密的跨账户审计存储桶。
基本原理: 使用客户管理的 CMK 为模型构件提供了控制和可审计性;VPC 端点和限制性的端点/仓库策略将流量保持在 AWS 网络内,并防止公共出口;结合使用日志记录和数据分类服务来检测和阻止数据泄露,同时最小权限的 IAM 限制了攻击范围。
← 部署、推理与服务 (ML 实施与运维) · 所有领域 · MLOps、监控、标注与模型治理 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →