AWS ML安全性:IAM角色、VPC隔離、KMS加密與Spot Instances成本最佳化
1. SageMaker的IAM
SageMaker使用IAM角色(而非使用者)來對AWS資源執行操作。這是考試中重要的安全模式。
| 角色類型 | 使用者 | 需要存取 |
|---|---|---|
| 執行角色 | SageMaker筆記本、訓練工作、端點 | S3、ECR、CloudWatch、KMS |
| SageMaker Studio角色 | Studio IDE使用者 | 數據、實驗、管線 |
| 訓練工作角色 | 訓練容器本身 | 輸入/輸出S3儲存桶 |
考試提示: SageMaker訓練/推論容器沒有EC2執行個體憑證 — 它們使用跨帳戶IAM角色執行。務必為執行角色授予S3和ECR權限。
2. SageMaker的VPC設定
在VPC中執行SageMaker工作負載,確保流量不經過公共網際網路。
SageMaker Network Security:
Internet ──✗────────────────────────────────────────
│
┌─── Private VPC ──────────────────────┐ │
│ │ │
│ SageMaker Training Instance │ │
│ ↓ (VPC Endpoint) │ │
│ ┌──── S3 Gateway Endpoint ────────┐ │ │
│ │ ECR VPC Endpoint │ │ │
│ │ SageMaker API VPC Endpoint │ │ │
│ └─────────────────────────────────┘ │ │
└───────────────────────────────────────┘ │
| 功能 | 說明 |
|---|---|
| VPC端點(PrivateLink) | 無需網際網路即可存取S3、ECR、SageMaker API |
| 安全群組 | 控制訓練執行個體的入站/出站流量 |
| 網路隔離 | 訓練工作沒有網際網路存取(隔離模式) |
| 容器間加密 | 加密分散式訓練流量 |
3. 加密
| 項目 | 方式 | 服務 |
|---|---|---|
| S3靜態數據 | SSE-S3、SSE-KMS、SSE-C | S3 + KMS |
| 靜態模型產出物 | 輸出S3儲存桶的KMS金鑰 | KMS |
| EBS磁碟區(訓練) | 執行個體儲存的KMS加密 | KMS |
| 傳輸中數據 | 所有API呼叫使用TLS 1.2/1.3 | 預設 |
| 分散式訓練流量 | 啟用容器間加密 | SageMaker設定 |
4. 成本最佳化策略
| 策略 | 節省幅度 | 方式 |
|---|---|---|
| Spot Instances | 高達90% | 訓練工作 + 檢查點 |
| 適當調整 | 20-40% | 將執行個體類型與實際GPU/CPU使用量匹配 |
| 無伺服器推論 | 不定 | 按調用付費、無閒置成本 |
| SageMaker Savings Plans | 高達64% | 承諾持續使用量 |
| S3 Intelligent-Tiering | 不定 | 自動分層舊訓練數據 |
| 生命週期設定 | 不定 | 自動停止閒置筆記本 |
4.1. ML數據的S3生命週期政策
Data Lifecycle for ML:
Active Training Data (S3 Standard)
↓ after 30 days unused
S3 Intelligent-Tiering
↓ after 90 days
S3 Standard-IA (Infrequent Access)
↓ after 180 days
S3 Glacier Instant Retrieval
↓ after 1 year
S3 Glacier Deep Archive (compliance)
5. 合規框架
| 框架 | ML相關性 |
|---|---|
| HIPAA | 醫療ML — PHI數據加密、稽核日誌、需要BAA |
| GDPR | 歐盟數據 — 被遺忘權、數據最小化、同意 |
| SOC 2 | SaaS ML產品的安全控制稽核 |
| PCI DSS | ML模型中的支付卡數據 |
6. 速查表 — 安全性與成本
| 情境 | 解決方案 |
|---|---|
| SageMaker訓練無網際網路 | VPC + 網路隔離 + VPC端點 |
| 加密S3上的訓練數據 | SSE-KMS搭配客戶管理金鑰 |
| 降低70%以上訓練成本 | Spot Instances + 檢查點 |
| 自動封存舊訓練數據集 | S3生命週期政策 |
| 防止筆記本閒置成本 | Studio生命週期設定 → 自動關閉 |
| 醫療數據(HIPAA) | KMS + VPC + CloudTrail + 與AWS簽訂BAA |
7. 練習題
Q1: 一家公司需要SageMaker訓練工作在存取S3數據時不經過公共網際網路,以符合安全合規要求。應該如何設定?
- A) VPC Flow Logs
- B) SageMaker Training搭配VPC + S3 VPC Gateway Endpoint ✓
- C) 帶IP限制的IAM政策
- D) AWS Shield
解析:設定SageMaker Training Jobs在VPC中執行,搭配S3 VPC Gateway Endpoint,確保所有S3流量留在AWS網路內而不經過公共網際網路。
Q2: 機器學習團隊想要降低可中斷的長時間訓練工作成本。工作應該能從停止處恢復。最具成本效益的方法是什麼?
- A) 使用更大的執行個體來加快完成速度
- B) 使用Reserved Instances
- C) 使用Spot Instances搭配S3檢查點 ✓
- D) 在本地執行訓練
解析:Spot Instances可節省高達90%的成本。啟用檢查點(定期將模型狀態儲存至S3)後,被中斷的工作可從最後一個檢查點恢復,使Spot Instances適用於長時間訓練。
Q3: 哪個AWS服務提供集中式金鑰管理,用於加密SageMaker訓練數據、模型產出物和EBS磁碟區?
- A) AWS Secrets Manager
- B) AWS IAM
- C) AWS KMS(Key Management Service) ✓
- D) AWS Certificate Manager
解析:AWS KMS提供靜態加密的金鑰管理,涵蓋S3數據(SSE-KMS)、訓練執行個體使用的EBS磁碟區和模型產出物。SageMaker在整個訓練和部署工作流中原生整合KMS。