

# データ保護
<a name="data-protection"></a>

 ML ワークロードを設計する前に、セキュリティに影響する基本的なプラクティスを整えておく必要があります。例えば、[データ分類](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/data-classification.html)は機密レベルに基づいてデータを分類する方法を提供し、暗号化は不正アクセスに対してデータを解読できないようにすることでデータを保護します。これらの方法は、誤操作の防止や規制義務の遵守などの目的に役立つため、重要です。

 SageMaker AI Studio には、保管中および転送中のデータを保護するための機能がいくつか用意されています。ただし、「[AWS 責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)」で説明しているように、AWS グローバルインフラストラクチャでホストされているコンテンツを管理する責任はお客様にあります。このセクションでは、お客様がこれらの機能を使用してどのようにデータを保護できるかについて説明します。

## 保管中のデータの保護
<a name="protect-data-at-rest"></a>

 SageMaker AI Studio ノートブックとモデル構築データおよびモデルアーティファクトを保護するために、SageMaker AI ではノートブックと、トレーニングジョブやバッチ変換ジョブの出力を暗号化します。SageMaker AI は、[Amazon S3 の AWS マネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/services-s3.html)を使用して、これらをデフォルトで暗号化します。この Amazon S3 の AWS マネージドキーは、クロスアカウントアクセスでは共有できません。クロスアカウントアクセスの場合は、SageMaker AI リソースの作成時にカスタマーマネージドキーを指定してクロスアカウントアクセスで共有できるようにします。

 SageMaker AI Studio では、データを次の場所に保存できます。
+  **S3 バケット** — 共有可能なノートブックが有効になっている場合、SageMaker AI Studio はノートブックのスナップショットとメタデータを S3 バケットで共有します。
+  **EFS ボリューム** — SageMaker AI Studio は、EFS ボリュームをドメインにアタッチしてノートブックとデータファイルを保存します。この EFS ボリュームは、ドメインを削除した後も保持されます。
+  **EBS ボリューム** — ノートブックが動作しているインスタンスに EBS をアタッチします。このボリュームは、インスタンスの存続期間中、保持されます。

### AWS KMS による保管中の暗号化
<a name="encryption-at-rest-with-aws-kms"></a>
+  [AWS KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)を渡して、ノートブック、トレーニング、チューニング、バッチ変換ジョブ、エンドポイントに接続されている EBS ボリュームを暗号化できます。
+  KMS キーを指定しない場合、SageMaker AI はオペレーティングシステム (OS) のボリュームと ML データボリュームの両方をシステムマネージドの KMS キーで暗号化します。
+  コンプライアンス上の理由から KMS キーを使用して暗号化する必要がある機密データは、ML ストレージボリュームまたは Amazon S3 に保存する必要があります。どちらの場合も、必要に応じて、指定した KMS キーを使用して暗号化できます。

## 転送中のデータの保護
<a name="protect-data-in-transit"></a>

 SageMaker AI Studio は、ML モデルのアーティファクトや他のシステムアーティファクトを転送中と保管中に確実に暗号化します。SageMaker AI の API とコンソールに対するリクエストには、安全な SSL 接続を使用します。転送中のネットワーク内データ (サービスプラットフォーム内) の一部は暗号化されません。これには、以下が含まれます。
+  サービスコントロールプレーンとトレーニングジョブインスタンス (顧客データではない) の間のコマンドとコントロールの通信。
+  分散処理ジョブとトレーニングジョブ (ネットワーク内) のノード間の通信。

 ただし、トレーニングクラスター内のノード間の通信は、暗号化することを選択できます。コンテナ間のトラフィック暗号化を有効にすると、特に分散型深層学習アルゴリズムを使用している場合に、トレーニング時間が増える可能性があります。  

 デフォルトでは、Amazon SageMaker AI はトレーニングジョブを Amazon VPC で実行し、データのセキュリティを確保します。プライベート VPC を設定することで、別のレベルのセキュリティを追加して、トレーニングコンテナとデータを保護することができます。さらに、SageMaker AI Studio ドメインを VPC 専用モードで実行するように設定し、インターネット経由でトラフィックを出力せずにプライベートネットワーク経由でルーティングするように VPC エンドポイントを設定できます。

## データ保護のガードレール
<a name="data-protection-guardrails"></a>

### 保管中の SageMaker AI ホスティングボリュームの暗号化
<a name="encrypt-sagemaker-hosting-volumes-at-rest"></a>

 オンライン推論用の SageMaker AI エンドポイントのホスティング中に暗号化を適用するには、次のポリシーを使用します。

```
{
   "Version": "2012-10-17",
   "Statement": [
     {
         "Sid": "Encryption",
         "Effect": "Allow",
         "Action": [
             "sagemaker:CreateEndpointConfig"
         ],
         "Resource": "*",
         "Condition": {
             "Null": {
                 "sagemaker:VolumeKmsKey": "false"
             }      
         }
     }
   ]
 }
```

### モデルモニタリング中に使用する S3 バケットの暗号化
<a name="encrypt-s3-buckets-used-during-model-monitoring"></a>

 [モデルモニタリング](https://www.dominodatalab.com/data-science-dictionary/model-monitoring)では、SageMaker AI エンドポイントに送信されたデータをキャプチャし、S3 バケットに保存します。データキャプチャ設定をセットアップするときは、S3 バケットを暗号化する必要があります。現在、これに代わる制御は他にありません。

 モデルモニタリングサービスは、エンドポイント出力をキャプチャするだけでなく、事前に指定したベースラインに対するドリフトもチェックします。ドリフトのモニタリングに使用する出力と中間ストレージボリュームを暗号化する必要があります。

```
{
   "Version": "2012-10-17",
   "Statement": [
     {
         "Sid": "Encryption",
         "Effect": "Allow",
         "Action": [
             "sagemaker:CreateMonitoringSchedule",
             "sagemaker:UpdateMonitoringSchedule"
         ],
         "Resource": "*",
         "Condition": {
             "Null": {
                 "sagemaker:VolumeKmsKey": "false",
                 "sagemaker:OutputKmsKey": "false"
             }      
         }
     }
   ]
 }
```

### SageMaker AI Studio ドメインのストレージボリュームの暗号化
<a name="encrypt-a-sagemaker-studio-domain-storage-volume"></a>

 Studio ドメインにアタッチしたストレージボリュームに暗号化を適用します。このポリシーでは、スタジオドメインにアタッチしたストレージボリュームを暗号化するための CMK をユーザーが提供する必要があります。

```
{
     "Version": "2012-10-17",
     "Statement": [
         {
             "Sid": "EncryptDomainStorage",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:CreateDomain"
             ],
             "Resource": "*",
             "Condition": {
                 "Null": {
                     "sagemaker:VolumeKmsKey": "false"
                 }      
             }
         }
     ]
 }
```

### ノートブックの共有に使用する S3 に保存されているデータの暗号化
<a name="encrypt-data-stored-in-s3-that-is-used-to-share-notebooks"></a>

 これは、SageMaker AI Studio ドメイン内のユーザー間でノートブックを共有するために使用するバケットに保存されているデータをすべて暗号化するポリシーです。

```
{
     "Version": "2012-10-17",
     "Statement": [
         {
             "Sid": "EncryptDomainSharingS3Bucket",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:CreateDomain",
                 "sagemaker:UpdateDomain"
             ],
             "Resource": "*",
             "Condition": {
                 "Null": {
                     "sagemaker:DomainSharingOutputKmsKey": "false"
                 }      
             }
         }
     ]
 }
```

## 制限
<a name="limitations-1"></a>
+  ドメインの作成後は、アタッチした EFS ボリュームストレージをカスタム AWS KMS で更新することはできません。
+  作成後のトレーニング/処理ジョブやエンドポイント設定を KMS キーで更新することはできません。