マネージド階層チェックポイントのセキュリティに関する考慮事項
このセクションでは、マネージド階層チェックポイントを使用する際の重要なセキュリティに関する考慮事項について説明します。これには、Python pickle の使用、Amazon S3 暗号化、ネットワークエンドポイントのセキュリティなどがあります。
Python pickle の使用
マネージド階層チェックポイントは、Python の pickle モジュールを使用して、Amazon S3 に保存されているチェックポイントデータを逆シリアル化します。この実装には、重要なセキュリティ上の影響があります。
-
拡張された信頼境界: Amazon S3 でマネージド階層化チェックポイントを使用する場合、Amazon S3 バケットはクラスターの信頼境界の一部になります。
-
コード実行リスク: Python の pickle モジュールは、逆シリアル化中に任意のコードを実行する可能性があります。未承認のユーザーがチェックポイント Amazon S3 バケットへの書き込みアクセス権を取得した場合、マネージド階層チェックポイントは、ロードされると実行される悪意のある pickle データを作成する可能性があります。
Amazon S3 ストレージのベストプラクティス
Amazon S3 ストレージでマネージド階層チェックポイントを使用する場合:
-
Amazon S3 バケットアクセスの制限: トレーニングクラスターに関連付けられた許可されたユーザーとロールのみが、チェックポイントに使用する Amazon S3 バケットにアクセスできるようにします。
-
バケットポリシーを実装する: 不正なアクセスや変更を防ぐために、適切なバケットポリシーを設定します。
-
アクセスパターンのモニタリング: チェックポイント Amazon S3 バケットへのアクセスのログ記録とモニタリングを実装します。
-
バケット名の検証: バケットの乗っ取りを防ぐため、バケット名の選択には注意が必要です。
ネットワークエンドポイント
マネージド階層チェックポイントでは、次のポートの各コンピューティングノードでネットワークエンドポイントが有効になります。9200/TCP、9209/UDP、9210/UDP、9219/UDP、9220/UDP、9229/UDP、9230/UDP、9239/UDP、9240/UDP。これらのポートは、チェックポイントサービスが機能し、データ同期を維持するために必要です。
デフォルトでは、SageMaker のネットワーク設定により、セキュリティ上の理由からこれらのエンドポイントへのアクセスは制限されています。これらのデフォルトの制限を維持することをお勧めします。
ノードと VPC のネットワーク設定を行う際は、VPC、セキュリティグループ、ACL に関する AWS のベストプラクティスに従ってください。詳細については、以下を参照してください。