MLA-C01 Udemy Companion

第 09 章 · PDF 第 688-733 页

安全、身份与合规

安全题按五层排查:调用者是谁、角色能做什么、资源是否允许、密钥是否允许、网络是否可达。对 SageMaker 而言,还要区分“把计算放进 VPC”和“阻止容器联网”。

优先级:高 D4.3、D1.3 建议 60 分钟 练习 12 题

1. IAM:权限来自允许的交集,拒绝有最高优先级

对象职责ML 场景
Identity-based policy附在 user/group/role,允许主体执行动作SageMaker execution role 读取指定 S3、拉 ECR、写 logs
Resource-based policy附在 bucket、KMS key 等资源,指定谁可访问跨账户训练数据与模型工件
Permissions boundary限制某主体 identity policy 能授予的最大权限团队自助创建角色但不越过平台边界
SCP限制 Organizations 账户/OU 的最大可用权限禁止特定 Region、动作或公共网络路径
Session policy限制临时会话权限federated/assumed role 的额外边界

显式 Deny 覆盖 Allow。跨账户通常需要调用者 identity policy 与目标 resource policy 都允许;KMS 还要单独核对 key policy/grant。

最小权限不是“能跑就行”:限制 action、resource、Region、VPC endpoint、prefix 和条件;区分开发、训练、部署与审批角色。

2. SageMaker 的两类角色不要混

主体做什么常见失败
调用者/user role调用 CreateTrainingJob、StartPipelineExecution 等控制面 API缺少 SageMaker action 或 iam:PassRole
SageMaker execution role被 SageMaker 作业/endpoint 代入,访问 S3、ECR、KMS、CloudWatch 等角色本身无数据/密钥/镜像权限
Model approval role更新 Registry approval 状态开发者可以绕过审批或无权审批
Deployment role创建/更新 endpoint 和扩缩策略过宽权限或无法读取批准模型

iam:PassRole 允许调用者把指定 execution role 交给 SageMaker,不等于调用者自己获得该角色权限。应限制可传递的角色和目标服务。

SageMaker Role Manager 可以按 ML activity 生成定制 IAM 角色,本质仍是 IAM role;它帮助减少手写策略,但不消除审查责任。

3. 加密:静态、传输和节点间三层

能力考点
At restS3/EBS/EFS/FSx/模型工件使用服务加密或 KMS key谁创建 grant、谁能 decrypt、跨账户 key policy
In transitTLS/HTTPSS3 bucket policy 可拒绝非 SecureTransport
Distributed trainingInter-container traffic encryption保护训练节点间模型/梯度通信,可能有性能开销
Application payload客户端加密、字段级 tokenization/masking服务端加密不隐藏应用读取后的明文

KMS 权限链

确认请求使用的 KMS key ARN 和 Region。
调用主体 IAM policy 允许 Encrypt/Decrypt/GenerateDataKey。
KMS key policy 或 grant 信任该主体/账户。
S3/EBS 等资源 policy 与 encryption context 条件没有拒绝。
检查 key 状态、配额、rotation 和跨账户/跨区域边界。

KMS 使用 envelope encryption:KMS key 保护 data key,data key 加密大量数据。SSE-KMS 高吞吐场景还要注意 KMS 请求配额和成本。

4. 三个看似相同、实际不同的开关

能力作用不等于
VPC configuration给训练/处理/endpoint 创建 ENI,以访问 VPC 内资源不自动禁止所有外网访问
Network isolation阻止训练/推理容器发出网络调用不等于把所有资源放入你的 VPC
Direct internet access disabled限制 Studio/notebook 的直接互联网路径仍需设计 NAT 或 VPC endpoints 访问所需服务

私有训练常需要:私有子网 + security group + S3 gateway endpoint + ECR API/DKR、CloudWatch Logs、SageMaker API/runtime 等 interface endpoints。若依赖 PyPI 或外部 API,则需要受控 NAT/代理,或提前把依赖放入镜像/私有仓库。

Network isolation 开启后,容器代码不能自行访问 S3/API;SageMaker 服务仍可按作业配置准备输入和上传输出。需要实时访问外部数据源的代码不适合直接启用该模式。

5. VPC 组件的安全边界

组件状态关键区别
Security GroupStateful,资源/ENI 级允许规则;返回流量自动允许
Network ACLStateless,子网级允许/拒绝规则;返回流量也需显式允许
Internet GatewayVPC 公网入口资源还需 public IP 和路由
NAT Gateway私有子网出站互联网不接受互联网主动入站;产生小时/流量成本
Gateway endpointS3/DynamoDB 私有路由通过 route table,无 ENI 小时费
Interface endpointPrivateLink ENI + 私有 IP多数 AWS 服务;需 SG、private DNS、endpoint policy
VPC Flow Logs记录网络流元数据用于 ACCEPT/REJECT 排错,不抓 payload
VPC PeeringVPC 间私有路由非传递,CIDR 不可重叠

Site-to-Site VPN 通过互联网加密连接,建立较快;Direct Connect 提供专用网络连接,稳定但开通时间更长,默认不等于应用层加密。

6. 脱敏、匿名化与 Macie

方法可逆性/目标例子
Masking隐藏展示的一部分卡号只显示后四位
Tokenization/Pseudonymization用 token 替换身份;若保留映射可重新识别customer_id → 随机 token
Anonymization目标是不可合理重新识别删除/泛化直接和间接标识符
Aggregation降低粒度年龄改为年龄段,位置改为区域

Amazon Macie 使用 ML 和模式匹配发现 S3 中的 PII、PHI、财务和凭证数据,同时监控 bucket 安全姿态。它输出 policy findings 和 sensitive data findings,可用 managed/custom data identifier,并通过 EventBridge 自动响应。

边界:Macie 发现和报告敏感数据,不自动替你重写训练集。实际 mask/anonymize 仍由 Glue/DataBrew/自定义处理完成。

主来源:Amazon Macie

7. Secrets Manager:凭证不是模型超参数

AWS Secrets Manager 存储、加密、检索并可轮换数据库凭证、API key 等秘密。应用通过 IAM 读取 secret,secret 可用 KMS key 加密。

8. 课件扩展:WAF 与 Shield

课件包含 AWS WAF 与 AWS Shield,但当前 MLA-C01 官方 out-of-scope 列表明确包含二者。保留识别级知识即可:

服务识别级作用备考处理
AWS WAF对 HTTP(S) 请求应用 Web ACL 规则不投入详细规则和架构时间
AWS ShieldDDoS 防护服务不投入 Standard/Advanced 细节

不要因为课件篇幅大就提高考试权重。临考仍以官方 in-scope/out-of-scope 页面为准。

9. SageMaker AccessDenied / Timeout 排错顺序

确认是调用控制面失败,还是作业容器访问数据失败。
检查调用者 IAM action 和 iam:PassRole
检查 execution role 对 S3/ECR/Logs/Secrets 的 identity policy。
检查 bucket policy、KMS key policy/grant 和显式 Deny/SCP。
检查 subnet route、SG/NACL、VPC endpoint policy、DNS 和配额。
用 CloudTrail 看 API 决策,用 VPC Flow Logs 看网络 ACCEPT/REJECT,用作业日志看容器错误。

章节练习

安全题很少只有一层。先写出主体、资源、密钥、网络四列。

第 1 题 · 单选

用户有 sagemaker:CreateTrainingJob,但创建作业时无法指定 execution role。最可能缺什么?

第 2 题 · 多选

跨账户读取 SSE-KMS S3 训练数据通常需要哪些允许?选择三项。

第 3 题 · 匹配

把安全能力与特征匹配。

第 4 题 · 单选

训练容器必须完全禁止出站网络调用,但仍由 SageMaker 提供预配置的 S3 输入 channel。应启用什么?

第 5 题 · 单选

私有子网内的训练作业只需访问 S3,要求不使用 NAT 并降低网络成本。优先配置什么?

第 6 题 · 单选

安全团队要自动发现 S3 训练湖中的护照号、信用卡号和意外提交的 AWS secret key。应使用什么?

第 7 题 · 单选

分布式医疗模型训练要求加密训练节点之间传输的模型更新。应启用什么?

第 8 题 · 多选

哪些做法正确区分 pseudonymization 与 anonymization?选择两项。

第 9 题 · 单选

推理容器需要数据库凭证,并要求自动轮换且不写入镜像。首选什么?

第 10 题 · 排序

排查 SageMaker 读取 SSE-KMS S3 数据的 AccessDenied,按从控制面到资源的顺序排列。

第 11 题 · 单选

VPC Flow Logs 显示目标 interface endpoint 的 443 流量被拒绝。首要检查什么?

第 12 题 · 单选

当前 MLA-C01 官方 out-of-scope 列表中,课件仍讲到的服务组合是哪一项?

本章掌握线:80%

尚未提交

主来源与复习动作

从一个真实 SageMaker execution role 出发,只读检查它能访问哪些 S3 prefix、KMS key 和 ECR repository。把发现的最宽权限改写成更小的策略条件,作为本章实践。