

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SageMaker HyperPod のカスタマーマネージド AWS KMS key 暗号化
<a name="smcluster-cmk"></a>

デフォルトでは、SageMaker HyperPod クラスターにアタッチされたルート Amazon EBS ボリュームは、 AWS KMS key が所有する を使用して暗号化されます AWS。ルート Amazon EBS ボリュームとセカンダリボリュームの両方を独自のカスタマーマネージド KMS キーで暗号化するオプションが利用できるようになりました。次のトピックでは、カスタマーマネージドキー (CMK) と HyperPod クラスター内のボリュームを組み合わせて使用する方法について説明します。

**注記**  
SageMaker HyperPod クラスターでカスタマーマネージドキーを使用する場合、次の除外が適用されます。  
カスタマーマネージドキーの暗号化は、継続的ノードプロビジョニングモードを使用するクラスターでのみサポートされます。制限付きインスタンスグループは、カスタマーマネージドキーをサポートしていません。
HyperPod クラスターは現在、カスタマーマネージドキー AWS KMS 暗号化リクエストでの暗号化コンテキストの受け渡しをサポートしていません。これにより、クラスターでキーが使用されなくなるため、KMS キーポリシーが暗号化コンテキスト条件を使用してスコープダウンされていないことを確認する必要があります。
KMS キーの移行は現在サポートされていないため、設定で指定された KMS キーを変更することはできません。別のキーを使用するには、目的のキーを使用して新しいインスタンスグループを作成し、古いインスタンスグループを削除します。
現時点では、コンソールを使用した HyperPod クラスターのカスタマーマネージドキーの指定はサポートされていません。

## アクセス許可
<a name="smcluster-cmk-permissions"></a>

HyperPod でカスタマーマネージドキーを使用する前に、次の前提条件を満たす必要があります。
+ SageMaker AI AWS に使用している IAM 実行ロールに、次のアクセス許可 AWS KMS が追加されていることを確認します。`[ kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)` アクセス許可により、HyperPod は KMS キーへのアクセス許可を使用して次のアクションを実行できます。
  + インスタンス数のスケールアウト (UpdateCluster オペレーション）
  + クラスターノードの追加 (BatchAddClusterNodes オペレーション）
  + ソフトウェアへのパッチ適用 (UpdateClusterSoftware オペレーション）

  IAM ロールのアクセス許可の更新の詳細については、「* IAM ユーザーガイド*」の「[IAM ID のアクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kms:CreateGrant",
                  "kms:DescribeKey"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ カスタム KMS キーに次のアクセス許可を追加します。詳細については、「**AWS KMS デベロッパーガイド」の「[キーポリシーを変更する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)」を参照してください。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "hyperpod-key-policy",
      "Statement": [
          {
              "Sid": "Enable IAM User Permissions",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Action": "kms:*",
              "Resource": "*"
          },
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/<iam-role>"
              },
              "Action": "kms:CreateGrant",
              "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
              "Condition": {
                  "StringEquals": {
                      "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                  },
                  "Bool": {
                      "kms:GrantIsForAWSResource": "true"
                  }
              }
          },
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/<iam-role>"
              },
              "Action": "kms:DescribeKey",
              "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
              "Condition": {
                  "StringEquals": {
                      "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                  }
              }
          }
      ]
  }
  ```

------

## KMS キーの使用方法
<a name="smcluster-cmk-usage"></a>

[CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html) API オペレーションと [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) API オペレーションを使用して、クラスターを作成または更新する際にカスタマーマネージドキーを指定できます。この `InstanceStorageConfigs` 構造では、ルート Amazon EBS ボリュームと、オプションでセカンダリボリュームを設定できる最大 2 つの `EbsVolumeConfig` 設定が可能です。必要に応じて、ボリュームごとに同じ KMS キーまたは異なる KMS キーを使用できます。

カスタマーマネージドキーは、どちらのボリュームでも、両方でも指定できます。または、どちらのボリュームでも指定しないこともできます。ただし、2 つのルートボリュームまたは 2 つのセカンダリボリュームを指定することはできません。

ルートボリュームを設定する場合、次の要件が適用されます。
+ `RootVolume` を `True` に設定する必要があります。デフォルト値は `False` で、代わりにセカンダリボリュームを設定します。
+ `VolumeKmsKeyId` フィールドは必須であり、カスタマーマネージドキーを指定する必要があります。これは、ルートボリュームは常に AWS 所有キーまたはカスタマーマネージドキーで暗号化する必要があるためです (独自のキーを指定しない場合、 AWS 所有キーが使用されます）。
+ HyperPod がルートボリュームのサイズを決定するため、ルートボリュームの `VolumeSizeInGB` フィールドを指定することはできません。

セカンダリボリュームを設定する場合、次の要件が適用されます。
+ `RootVolume` は `False` に設定する必要があります (このフィールドのデフォルト値は `False` です)。
+ `VolumeKmsKeyId` フィールドはオプションです。ルートボリュームに指定したのと同じカスタマーマネージドキーを使用するか、別のキーを使用できます。
+ セカンダリボリュームに必要なサイズを指定する必要があるため、`VolumeSizeInGB` フィールドは必須です。

**重要**  
カスタマーマネージドキーを使用する場合は、クラスター内のインスタンスグループごとに異なる KMS キーを使用することを強くお勧めします。複数のインスタンスグループで同じカスタマーマネージドキーを使用すると、許可を取り消しようとしても、意図しないアクセス許可が継続する可能性があります。たとえば、1 つのインスタンスグループのボリュームの AWS KMS 許可を取り消すと、同じキーを使用して他のインスタンスグループに存在する許可により、そのインスタンスグループでスケーリングおよびパッチ適用オペレーションが引き続き許可される場合があります。この問題を回避するには、クラスター内の各インスタンスグループに一意の KMS キーを割り当てます。インスタンスグループのアクセス許可を制限する必要がある場合は、次のいずれかのオプションを試すことができます。  
KMS キーを無効にします。
拒否ポリシーを KMS キーポリシーに適用します。
(1 つの許可を取り消すのではなく) キーのすべてのインスタンスグループの許可を取り消します。
インスタンスグループを削除します。
クラスターを削除します。

次の例は、CreateCluster API と UpdateCluster API を使用して、ルートボリュームとセカンダリボリュームの両方にカスタマーマネージドキーを指定する方法を説明しています。これらの例は、カスタマーマネージドキー統合の必須フィールドのみを示しています。カスタマーマネージドキーを 1 つのボリュームのみに設定するには、1 つの `EbsVolumeConfig` のみを指定します。

クラスターの作成リクエストと更新リクエストの設定の詳細については、「[SageMaker HyperPod クラスターの作成](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md)」および「[SageMaker HyperPod クラスターの設定を更新する](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md)」を参照してください。

------
#### [ CreateCluster ]

次の例は、カスタマーマネージドキー暗号化を使用した [ create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) AWS CLI リクエストを示しています。

```
aws sagemaker create-cluster \
  --cluster-name <your-hyperpod-cluster> \
  --instance-groups '[{
    "ExecutionRole": "arn:aws:iam::111122223333:role/<your-SageMaker-Execution-Role>",
    "InstanceCount": 2,
    "InstanceGroupName": "<your-ig-name>",
    "InstanceStorageConfigs": [
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id"
                }
            },
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id"
                }
            }
    ],
    "InstanceType": "<desired-instance-type>"
  }]' \
  --vpc-config '{
    "SecurityGroupIds": ["<sg-id>"],
    "Subnets": ["<subnet-id>"]
  }'
```

------
#### [ UpdateCluster ]

次の例は、カスタマーマネージドキー暗号化を使用した [ update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) AWS CLI リクエストを示しています。

```
aws sagemaker update-cluster \
  --cluster-name <your-hyperpod-cluster> \
  --instance-groups '[{
    "InstanceGroupName": "<your-ig-name>",
    "InstanceStorageConfigs": [
            {
                "EbsVolumeConfig": {
                    "RootVolume": true,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id"
                }
            },
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id"
                }
            }
    ]
  }]'
```

------