AWS MLにおけるセキュリティ:IAMロール、VPC分離、KMS暗号化、Spot Instancesによるコスト最適化
1. SageMaker向けIAM
SageMakerはIAMロール(ユーザーではなく)を使用してAWSリソースに対するアクションを実行します。これは試験で重要なセキュリティパターンです。
| ロールタイプ | 使用者 | アクセスが必要なリソース |
|---|---|---|
| Execution Role | SageMakerノートブック、Training Jobs、エンドポイント | S3、ECR、CloudWatch、KMS |
| SageMaker Studio Role | Studio IDEユーザー | データ、実験、パイプライン |
| Training Job Role | 訓練コンテナ自体 | 入出力S3バケット |
試験のヒント: SageMakerの訓練/推論コンテナはEC2インスタンス認証情報を持ちません — IAMロールのクロスアカウントで実行されます。実行ロールにはS3とECRの権限を常に付与する必要があります。
2. SageMaker向けVPC設定
SageMakerワークロードをVPC内で実行し、トラフィックがパブリックインターネットを経由しないようにします。
SageMaker Network Security:
Internet ──✗────────────────────────────────────────
│
┌─── Private VPC ──────────────────────┐ │
│ │ │
│ SageMaker Training Instance │ │
│ ↓ (VPC Endpoint) │ │
│ ┌──── S3 Gateway Endpoint ────────┐ │ │
│ │ ECR VPC Endpoint │ │ │
│ │ SageMaker API VPC Endpoint │ │ │
│ └─────────────────────────────────┘ │ │
└───────────────────────────────────────┘ │
| 機能 | 説明 |
|---|---|
| VPC Endpoints(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% | Training Jobs + チェックポイント |
| 適正化 | 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 | EUデータ — 消去権、データ最小化、同意 |
| 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フローログ
- B) VPC + S3 VPCゲートウェイエンドポイントでのSageMaker訓練 ✓
- C) IP制限付きIAMポリシー
- D) AWS Shield
解説:SageMaker Training JobsをVPC内で実行し、S3 VPCゲートウェイエンドポイントと組み合わせることで、すべてのS3トラフィックがパブリックインターネットを経由せずAWSネットワーク内に留まります。
Q2: MLチームが中断可能な長時間の訓練ジョブのコストを削減したいと考えています。ジョブは停止した場所から再開できる必要があります。最もコスト効率の良いアプローチはどれですか?
- A) より大きなインスタンスで高速に完了
- B) リザーブドインスタンスを使用
- C) S3へのチェックポイント付きSpot Instancesを使用 ✓
- D) ローカルで訓練を実行
解説:Spot Instancesはオンデマンド価格と比較して最大90%のコスト削減を実現できます。チェックポイントを有効にすると(定期的にモデル状態をS3に保存)、中断されたジョブが最後のチェックポイントから再開でき、長時間の訓練でSpot Instancesが実用的になります。
Q3: SageMakerの訓練データ、モデルアーティファクト、EBSボリュームの暗号化のための一元的なキー管理を提供するAWSサービスはどれですか?
- 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とネイティブに統合されています。