Amazon MLA-C01: 安全性、治理與合規性 — 學習指南
屬於 AWS Machine Learning Engineer Associate MLA-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.
IAM 角色、最小權限與 SageMaker 執行環境
機器學習工作負載的身分與存取管理,需要在真人使用者、CI/CD 系統和執行期運算之間,進行明確且可稽核的權限分離。對 SageMaker 而言,這意味著要定義一個專用的執行角色 (一個 IAM Role,其 AssumeRolePolicyDocument 允許 SageMaker 服務主體 sagemaker.amazonaws.com),並將該角色的權限範圍限定在所需的最小行動集合:對特定前綴的 S3 GetObject/PutObject、對一或多個客戶自訂 CMK 的 kms:Decrypt/kms:Encrypt、對特定 LogGroup ARN 的 logs:CreateLogStream 和 logs:PutLogEvents,以及僅在需要跨帳戶存取時才使用的 sts:AssumeRole。附加資源層級的政策條件 (aws:SourceAccount 和 aws:SourceArn),如此一來,由特定 SageMaker 任務或管線所建立的產物,便無法被其他主體竊取。為訓練、模型建置和託管使用不同的角色 (傳遞給 CreateTrainingJob、CreateModel、CreateEndpointConfig 的 RoleArn 欄位),以便將執行期權限區隔開來;將這些角色的 ARN 作為參數儲存在程式碼或管線中,而不是嵌入憑證。
對於臨時性的開發者存取和真人核准,應優先使用透過 AWS STS 取得的 IAM 角色,搭配短期有效的憑證,而非長期有效的 IAM 使用者金鑰。要強制執行多人審核和職責分離,可以結合使用 IAM 權限邊界、AWS Single Sign-On 或 OIDC IdP,以及對 SageMaker Model Registry 套件的資源層級控制。當工作流程需要臨時權限提升時 (例如,為了核准一個模型套件),請使用 SageMaker Model Registry 中的核准工作流程,將 ModelApprovalStatus 設定為 “PendingManualApproval”,並要求一個具有嚴格限定範圍之 sagemaker:ApproveModelPackage 權限的 IAM 主體,才能將其狀態轉為 “Approved”。
VPC 隔離、網路控制與加密
網路隔離的第一步,是將 SageMaker 訓練和推論執行個體放置在 VPC 子網路中,並在呼叫 CreateTrainingJob、CreateModel、CreateEndpointConfig 和 CreateProcessingJob API 時,提供明確的 VpcConfig (子網路 ID 和安全群組 ID)。將此作法與 VPC 端點 (透過 AWS PrivateLink 為 com.amazonaws.region.sagemaker 和 com.amazonaws.region.s3 設置的 Interface endpoint,或為 S3 設置的 Gateway endpoint) 結合,以確保模型產物和 API 流量永遠不會經過公用網際網路。為子網路啟用 VPC Flow Logs,並使用安全群組規則將出口流量限制在必要的地址和連接埠,例如,僅限於 S3 VPC 端點,或者在允許下載外部套件時,僅限於 NAT Gateway。
加密必須應用於靜態 (at rest) 和傳輸中 (in transit) 的資料。對於靜態資料,請使用 S3 伺服器端加密搭配 AWS KMS (SSE-KMS),並透過客戶自訂 CMK 來保護金鑰,該 CMK 的金鑰政策應限制管理員和 SageMaker 執行角色 (將 CMK ARN 放入 OutputDataConfig.KmsKeyId 或產物的 S3 PutObject SSE-KMS 標頭中)。對於附加到訓練執行個體的 EBS 磁碟區,請透過 ResourceConfig 指定磁碟區加密,並確保已設定 EBS KMS 金鑰。對於容器間流量和網路傳輸,請在 CreateTrainingJob/CreateModel 中啟用 EnableInterContainerTrafficEncryption 和 EnableNetworkIsolation,以強制容器間流量使用 TLS 並阻擋對外的網際網路存取;此外,所有對 SageMaker 和 S3 的 REST 與 SDK 呼叫都應預設利用 HTTPS/TLS。透過在 CMK 上設定 EnableKeyRotation 來輪換 CMK,並使用 CloudTrail 的 KMS 事件來稽核金鑰使用情況。
稽核日誌、資料事件與血緣追蹤
一個全面的稽核軌跡結合了管理平面 (management-plane) 日誌和資料平面 (data-plane) 事件。使用 AWS CloudTrail 記錄所有 SageMaker 和 IAM API 呼叫;在 CloudTrail 中為 S3 儲存貯體啟用資料事件日誌 (使用 PutEventSelectors 並將 DataResources 指向 S3 ARN),以擷取訓練資料集和模型產物的物件層級讀寫操作。確保執行角色具備 logs:CreateLogStream 和 logs:PutLogEvents 權限,以將容器日誌和訓練任務系統日誌傳送到 CloudWatch Logs;保留政策和訂閱篩選器可以將這些日誌串流至中央的 SIEM 系統。為了進行網路層級的稽核,請啟用 VPC Flow Logs;為了偵測可疑活動,請訂閱 GuardDuty 的發現項目以及用於 S3 敏感資料探索的 Amazon Macie。
血緣追蹤需要在預處理、訓練、評估和部署的整個過程中,擷取產物的來源出處。使用 SageMaker Pipelines 和 SageMaker Experiments 自動建立 Experiment、Trial 和 TrialComponent 記錄;這些 API 會記錄參數、輸入、指標和 ModelPackage 的中繼資料。將中繼資料永久儲存在一個中央中繼資料存放區:AWS Glue Data Catalog 可作為資料集目錄,儲存資料表層級的中繼資料和分割區資訊,而 SageMaker 的中繼資料服務則將管線執行與模型產物連結起來。對於跨帳戶或多來源的資料擷取,可使用 AWS Glue connections (例如,用於地端 MySQL 的 JDBC) 來集中管理連線,或使用 AWS Database Migration Service (DMS) 將交易資料複製到 S3/Redshift,讓 Glue 爬蟲程式可以索引它,然後從管線中參考產生的 Glue 資料表,以維持一條可稽核的血緣路徑。
模型治理:登錄檔、模型卡與監控
SageMaker Model Registry(模型套件群組和 ModelPackage 物件)提供了一個權威性的中央模型儲存庫,內建生命週期狀態和用於 CI/CD 的掛鉤。將訓練好的模型註冊到一個 ModelPackageGroup 中,並將 ModelApprovalStatus 設定為「PendingManualApproval」;自動化流程(CodePipeline、Step Functions)可以暫停,等待授權的主體呼叫 UpdateModelPackage 並將 ModelApprovalStatus 設定為「Approved」。將登錄檔與 SageMaker Model Cards 搭配使用,以文件化預期用途、資料集、訓練超參數、血緣參考、效能指標、來自 SageMaker Clarify 的公平性指標以及合規性聲明。模型卡應被編寫為結構化元資料,並與 ModelPackage 一同存放,如此一來,審查、稽核軌跡和模型卡便能與二進位產物保持集中存放。
維運監控是透過使用 SageMaker Model Monitor 來完成,用於監控資料與模型品質的漂移,並使用 SageMaker Clarify 來處理偏差與可解釋性。在 CreateEndpoint 上啟用 DataCaptureConfig 以捕獲請求和回應的酬載至一個安全的 S3 前綴(使用 SSE-KMS),然後設定 Model Monitor 的基準線生成任務(使用基準線統計數據與約束條件),並排程監控任務或觸發隨需分析。對於已部署的即時端點上的偏差漂移,需捕獲推論和真實值(當可用時),對捕獲的資料集執行 Clarify 偏差任務,並將 Clarify 報告儲存在 S3 和模型卡中。警示與修復可以與 CloudWatch Alarms 和 Step Functions 綁定,以實作回滾或隔離等模式。
設計模式、權衡取捨與常見陷阱
當集中化多個資料來源時,使用 AWS Glue 及其 JDBC 連接器,再加上 AWS Lake Formation 進行精細的存取控制,是營運開銷最低的模式;使用 DMS 將交易來源複製到 S3,雖然能為機器學習管線提供更好的隔離,但會增加營運的複雜性。對於重複訓練任務期間的資料集存取延遲,使用 Pipe 模式串流 S3 輸入,或掛載如 Amazon FSx for Lustre 的共享檔案系統(將 POSIX 命名空間匯出至訓練執行個體),與重複將大型資料集複製到本地 EBS 磁碟區相比,能減少啟動時間。其權衡之處在於,FSx 增加了成本和管理;Pipe 模式較為簡單,但需要您的訓練容器支援串流輸入(RecordIO、protobuf)。
對於以最少操作處理類別不平衡和分類特徵,可利用 Data Wrangler 或 SageMaker Processing 來產生一致的轉換,並將特徵資料儲存在 SageMaker Feature Store 中,如此一來離線訓練和線上推論便能共享相同的轉換。特別是對於不平衡問題,應優先考慮演算法層級的解決方案(例如對於 XGBoost,將 scale_pos_weight 設為 num_negative/num_positive),而不是進行資料層級的重採樣;演算法方法避免了創建合成記錄,且對管線來說操作上更為簡單。對於異常偵測和資料集品質檢查,可以在專用服務和自訂模型之間選擇:Amazon Lookout for Metrics 提供自動化異常偵測和視覺化功能,並帶有多個來源的連接器;而 SageMaker Random Cut Forest(內建)則直接整合到管線中,並提供對自訂閾值和可解釋性的完全控制。
常見的陷阱包括過於寬鬆的 IAM 角色(過多的 s3:* 或 kms:* 權限)、未啟用 S3 的 CloudTrail 資料事件導致模型成品被外洩時產生盲點、未啟用 VPC 端點而無意中將資料路由到公共網際網路,以及跳過模型核准工作流程導致未經審查的模型被推廣。另一個常見錯誤是在 S3 中儲存未經 SSE-KMS 加密的明文敏感資料,或未限制 KMS 金鑰政策以防止未經授權的主體使用金鑰。
實務問題:使用案例情境
AcmeFin:一個金融網路應用程式的詐欺偵測模型。資料來源包括 S3 中的交易日誌和客戶資料,以及包含客戶風險評分的本地 MySQL 資料表。目標是建立安全、可稽核的管線、為頻繁的重新訓練提供低啟動延遲、為生產部署設置手動核准關卡、對已部署的端點進行隨選的偏誤/漂移評估,以及對傳入資料進行自動化異常偵測和視覺化。
擷取並集中化資料:使用 AWS DMS 將本地 MySQL 複製到一個受嚴格 SSE-KMS 加密保護的 S3 登陸前綴(儲存貯體政策限制為 AcmeFin 帳戶)。透過 Glue 爬蟲程式將 S3 資料集和分割區註冊到 AWS Glue Data Catalog,並透過 Lake Formation 權限強制執行存取。理由:DMS 為交易資料表提供持續複製,Glue Catalog 則集中化中繼資料並啟用跨 ETL 和訓練的血緣追蹤。
保護運算和儲存:建立具有最低權限的專用 SageMaker 執行角色(在 CreateTrainingJob 中使用 RoleArn),並設定允許 sagemaker.amazonaws.com 的信任政策;將角色權限限制於特定的 S3 前綴和客戶管理的 CMK。透過向 CreateTrainingJob 和 CreateEndpointConfig 提供 VpcConfig.Subnets 和 VpcConfig.SecurityGroupIds,將所有訓練和推論放入私有子網路中,並為 com.amazonaws.region.s3 和 SageMaker API 建立介面端點,以避免公共網際網路出口。理由:VPC 隔離加上 VPC 端點確保成品絕不經過公共網路,而具有 CMK 限制的角色可防止金鑰被濫用。
最小化訓練啟動延遲:將大型資料集儲存在匯出至訓練子網路的 Amazon FSx for Lustre 上,並對較小的串流輸入使用 Pipe 模式。設定 CreateTrainingJob 的 InputDataConfig 指向 FSx 掛載的資料集或使用 Pipe 模式的 S3,並透過在不同任務間保持資料集指標不變來重用暖快取。理由:FSx 提供 POSIX 存取並避免重複的 S3 下載;Pipe 模式為支援串流的容器減少了複製延遲。
治理與手動核准:訓練完成後,在 SageMaker Model Registry 中註冊模型;為新的 ModelPackage 物件設定 ModelApprovalStatus=“PendingManualApproval”。使用 AWS CodePipeline/Step Functions 實作一個核准工作流程,該流程要求一個具有 sagemaker:UpdateModelPackage 權限的主體在 CreateEndpoint 步驟執行之前呼叫 UpdateModelPackage(ModelApprovalStatus=“Approved”)。理由:Model Registry 提供生命週期狀態和一個與 IAM 授權綁定的可稽核核准動作。
隨選偏誤與漂移檢查:在端點上啟用 DataCaptureConfig,將請求和回應寫入一個經 SSE-KMS 加密的 S3 前綴。對於隨選的偏誤分析,執行 SageMaker Clarify 批次任務,參考捕獲的資料和 Model Card 基線;對於持續的漂移監控,排程 SageMaker Model Monitor 任務,將即時分佈與基線統計資料進行比較。理由:資料捕獲加上 Clarify/Model Monitor 提供了隨選和排程的評估,其結果與模型中繼資料一起儲存。
異常偵測與視覺化:將捕獲的指標和特徵時間序列連接到 Amazon Lookout for Metrics 進行自動化異常偵測和通知,並在 Amazon QuickSight 中將結果視覺化。或者,如果需要自訂閾值,則在 SageMaker 中執行 Random Cut Forest 訓練任務,並將異常顯示在儀表板上。理由:Lookout for Metrics 減少了異常偵測的營運開銷,並與多個來源整合以實現快速視覺化。
此方法平衡了安全性(VPC、SSE-KMS、受限的 IAM)、治理(Model Registry、Model Cards、核准工作流程)、低延遲訓練(FSx + Pipe 模式)以及營運監控(DataCapture、Clarify、Model Monitor、Lookout for Metrics),同時透過 Glue Catalog 和 SageMaker Experiments 維持可稽核的血緣追蹤。
← 模型監控與可觀測性 · 所有領域 · 生成式 AI 與基礎模型 →
練習這些題目 → · 在 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.
通過考試 →