【Security Hub修復手順】[SageMaker.9] SageMaker データ品質ジョブ定義では、コンテナ間のトラフィック暗号化を有効にする必要があります
こんにちは!クラウド事業本部のグムです。
皆さん、お使いのAWS環境のセキュリティチェックはしていますか?
本記事では、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。
本記事の対象コントロール
[SageMaker.9] SageMaker データ品質ジョブ定義では、コンテナ間のトラフィック暗号化を有効にする必要があります
[SageMaker.9] SageMaker data quality job definitions should have inter-container traffic encryption enabled
前提条件
本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。
AWS Security Hubの詳細についてはこちらのブログをご覧ください。
対象コントロールの説明
このコントロールは、SageMaker AIのデータ品質ジョブ定義でコンテナ間トラフィックの暗号化が有効になっているかをチェックします。
EnableInterContainerTrafficEncryption パラメータが true になっていれば成功(PASSED)、未設定または false の場合は失敗(FAILED)となります。
データ品質ジョブは、モデルに入力されるデータの品質やドリフトを監視するジョブです。
複数のコンピューティングインスタンスを使った分散処理では、インスタンス間でモデルの重みや処理データなどの情報が転送されます。
コンテナ間トラフィックの暗号化を有効にすると、この分散処理中にインスタンス間を流れるデータが暗号化されます。
コンテナ間トラフィックはデフォルトでは暗号化されません。
暗号化されていない場合、分散処理中にインスタンス間を流れる機微なMLデータが同一ネットワーク内で盗聴されるリスクがあります。
本番環境では、このリスクを低減するために対応が必須です。
なお、複数インスタンスを使う分散ジョブでは、暗号化を有効にすると処理時間や追加コストが増加する場合があります。
本番以外の環境で、単一インスタンスでの処理のみを行う場合や、処理時間・コストの増加を許容できない場合は、必ずしも対応する必要はありません。
ただし、本番環境との設定の乖離を防ぐためにも、本番以外の環境でも有効化することを推奨します。
修復手順
データ品質ジョブ定義は作成後に設定を変更できないため、修復にはコンテナ間トラフィックの暗号化を有効にした新しいジョブ定義の再作成が必要です。
データ品質ジョブ定義はマネジメントコンソールでの編集に対応していないため、本記事ではAWS CLIでの手順をご紹介します。
ステークホルダーに確認
修復を行う前に、以下の点をステークホルダーに確認してください。
- 対象のジョブ定義が監視スケジュール(Monitoring Schedule)から参照されているか。参照されている場合、スケジュールを新しいジョブ定義に切り替える必要があります
- 分散処理(複数インスタンス)を利用している場合、暗号化の有効化により処理時間や実行コストが増加する可能性があること
- ジョブ定義を再作成する間、対象の監視が一時的に停止することの業務影響
修復手順
1. 既存ジョブ定義の設定を確認する
再作成にあたり、既存のジョブ定義の設定内容を控えます。
aws sagemaker describe-data-quality-job-definition \
--job-definition-name <対象のジョブ定義名> \
--region ap-northeast-1
出力された DataQualityAppSpecification、DataQualityJobInput、DataQualityJobOutputConfig、JobResources、RoleArn の各設定を控えておきます。
2. 暗号化を有効にした新しいジョブ定義を作成する
控えた設定に加えて、--network-config で EnableInterContainerTrafficEncryption を true に指定した新しいジョブ定義を作成します。
aws sagemaker create-data-quality-job-definition \
--job-definition-name <新しいジョブ定義名> \
--data-quality-app-specification '{"ImageUri":"<控えたImageUri>"}' \
--data-quality-job-input '<控えた入力設定>' \
--data-quality-job-output-config '<控えた出力設定>' \
--job-resources '<控えたリソース設定>' \
--role-arn '<控えたロールARN>' \
--network-config '{"EnableInterContainerTrafficEncryption":true}' \
--region ap-northeast-1
プライベートVPCを利用する構成の場合は、--network-config に VpcConfig を含め、対象のセキュリティグループにコンテナ間通信用のインバウンド/アウトバウンドルールを追加してください。
3. 監視スケジュールを新しいジョブ定義へ切り替える(該当する場合)
対象のジョブ定義が監視スケジュールから参照されている場合は、スケジュールを新しいジョブ定義に更新します。
aws sagemaker update-monitoring-schedule \
--monitoring-schedule-name <監視スケジュール名> \
--monitoring-schedule-config '{"MonitoringJobDefinitionName":"<新しいジョブ定義名>","MonitoringType":"DataQuality"}' \
--region ap-northeast-1
4. 古いジョブ定義を削除する
新しいジョブ定義への切り替えが完了したら、暗号化が無効な古いジョブ定義を削除します。
aws sagemaker delete-data-quality-job-definition \
--job-definition-name <対象のジョブ定義名> \
--region ap-northeast-1
最後に
今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。
コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!
最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。
以上、グムでした!




