SageMaker HyperPod のカスタマーマネージド AWS KMS key 暗号化 - Amazon SageMaker AI

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

SageMaker HyperPod のカスタマーマネージド AWS KMS key 暗号化

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

注記

SageMaker HyperPod クラスターでカスタマーマネージドキーを使用する場合、次の除外が適用されます。

  • カスタマーマネージドキーの暗号化は、継続的ノードプロビジョニングモードを使用するクラスターでのみサポートされます。制限付きインスタンスグループは、カスタマーマネージドキーをサポートしていません。

  • HyperPod クラスターは現在、カスタマーマネージドキー AWS KMS 暗号化リクエストでの暗号化コンテキストの受け渡しをサポートしていません。これにより、クラスターでキーが使用されなくなるため、KMS キーポリシーが暗号化コンテキスト条件を使用してスコープダウンされていないことを確認する必要があります。

  • KMS キーの移行は現在サポートされていないため、設定で指定された KMS キーを変更することはできません。別のキーを使用するには、目的のキーを使用して新しいインスタンスグループを作成し、古いインスタンスグループを削除します。

  • 現時点では、コンソールを使用した HyperPod クラスターのカスタマーマネージドキーの指定はサポートされていません。

アクセス許可

HyperPod でカスタマーマネージドキーを使用する前に、次の前提条件を満たす必要があります。

  • SageMaker AI AWS に使用している IAM 実行ロールに、次のアクセス許可 AWS KMS が追加されていることを確認します。 kms:CreateGrant アクセス許可により、HyperPod は KMS キーへのアクセス許可を使用して次のアクションを実行できます。

    • インスタンス数のスケールアウト (UpdateCluster オペレーション)

    • クラスターノードの追加 (BatchAddClusterNodes オペレーション)

    • ソフトウェアへのパッチ適用 (UpdateClusterSoftware オペレーション)

    IAM ロールのアクセス許可の更新の詳細については、「 IAM ユーザーガイド」の「IAM ID のアクセス許可の追加および削除」を参照してください。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }
  • カスタム KMS キーに次のアクセス許可を追加します。詳細については、「AWS KMS デベロッパーガイド」の「キーポリシーを変更する」を参照してください。

    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 キーの使用方法

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

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

ルートボリュームを設定する場合、次の要件が適用されます。

  • RootVolumeTrue に設定する必要があります。デフォルト値は False で、代わりにセカンダリボリュームを設定します。

  • VolumeKmsKeyId フィールドは必須であり、カスタマーマネージドキーを指定する必要があります。これは、ルートボリュームは常に AWS 所有キーまたはカスタマーマネージドキーで暗号化する必要があるためです (独自のキーを指定しない場合、 AWS 所有キーが使用されます)。

  • HyperPod がルートボリュームのサイズを決定するため、ルートボリュームの VolumeSizeInGB フィールドを指定することはできません。

セカンダリボリュームを設定する場合、次の要件が適用されます。

  • RootVolumeFalse に設定する必要があります (このフィールドのデフォルト値は False です)。

  • VolumeKmsKeyId フィールドはオプションです。ルートボリュームに指定したのと同じカスタマーマネージドキーを使用するか、別のキーを使用できます。

  • セカンダリボリュームに必要なサイズを指定する必要があるため、VolumeSizeInGB フィールドは必須です。

重要

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

  • KMS キーを無効にします。

  • 拒否ポリシーを KMS キーポリシーに適用します。

  • (1 つの許可を取り消すのではなく) キーのすべてのインスタンスグループの許可を取り消します。

  • インスタンスグループを削除します。

  • クラスターを削除します。

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

クラスターの作成リクエストと更新リクエストの設定の詳細については、「SageMaker HyperPod クラスターの作成」および「SageMaker HyperPod クラスターの設定を更新する」を参照してください。

CreateCluster

次の例は、カスタマーマネージドキー暗号化を使用した create-cluster 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 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" } } ] }]'