Chiffrement par AWS KMS key gérée par le client pour SageMaker HyperPod
Par défaut, le volume Amazon EBS racine attaché à votre cluster SageMaker HyperPod est chiffré à l’aide d’une AWS KMS key détenue par AWS. Vous avez désormais la possibilité de chiffrer à la fois le volume Amazon EBS racine et le volume secondaire avec vos propres clés KMS gérées par le client. La rubrique suivante décrit le fonctionnement des clés gérées par le client (CMK) avec des volumes dans des clusters HyperPod.
Note
Les exclusions suivantes s’appliquent lors de l’utilisation de clés gérées par le client pour les clusters SageMaker HyperPod :
-
Le chiffrement de clé gérée par le client est pris en charge uniquement pour les clusters utilisant le mode de provisionnement continu des nœuds. Les groupes d’instances restreints ne prennent pas en charge les clés gérées par le client.
-
Les clusters HyperPod ne prennent actuellement pas en charge le transfert de contexte de chiffrement AWS KMS dans les demandes de chiffrement par clé gérée par le client. Par conséquent, assurez-vous que votre stratégie de clé KMS n’est pas limitée par des conditions de contexte de chiffrement, car cela empêche le cluster d’utiliser la clé.
-
La transition de clé KMS n’étant pas prise en charge actuellement, vous ne pouvez pas modifier la clé KMS spécifiée dans votre configuration. Pour utiliser une autre clé, créez un nouveau groupe d’instances avec la clé souhaitée et supprimez votre ancien groupe d’instances.
-
La spécification de clés gérées par le client pour les clusters HyperPod via la console n’est actuellement pas prise en charge.
Autorisations
Avant de pouvoir utiliser votre clé gérée par le client avec HyperPod, vous devez remplir les conditions préalables suivantes :
-
Assurez-vous que le rôle d’exécution AWS IAM que vous utilisez pour SageMaker AI dispose des autorisations suivantes pour AWS KMS ajoutées. L’autorisation
kms:CreateGrantpermet à HyperPod d’effectuer les actions suivantes à l’aide des autorisations associées à votre clé KMS :-
Augmentation horizontale de votre nombre d’instances (opérations UpdateCluster)
-
Ajout de nœuds de cluster (opérations BatchAddClusterNodes)
-
Application de correctifs logiciels (opérations UpdateClusterSoftware)
Pour plus d’informations sur la mise à jour des autorisations de votre rôle IAM, consultez Ajout et suppression d’autorisations basées sur l’identité IAM dans le Guide de l’utilisateur IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] } -
-
Ajoutez les autorisations suivantes à votre stratégie de clé KMS. Pour plus d’informations, consultez Modification d’une stratégie de clé dans le Guide du développeur AWS KMS.
{ "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" } } } ] }
Comment utiliser votre clé KMS
Vous pouvez spécifier vos clés gérées par le client lors de la création ou de la mise à jour d’un cluster à l’aide des opérations d’API CreateCluster et UpdateCluster. La structure InstanceStorageConfigs permet jusqu’à deux configurations EbsVolumeConfig, dans lesquelles vous pouvez configurer le volume Amazon EBS racine et, éventuellement, un volume secondaire. Vous pouvez utiliser la même clé KMS ou une autre clé KMS pour chaque volume, selon vos besoins.
Vous pouvez choisir de spécifier une clé gérée par le client pour aucun volume, pour les deux volumes, ou pour l’un ou l’autre volume. Toutefois, vous ne pouvez pas spécifier deux volumes racines ou deux volumes secondaires.
Lors de la configuration du volume racine, les conditions suivantes s’appliquent :
-
RootVolumedoit être défini surTrue. La valeur par défaut estFalse, qui configure le volume secondaire à la place. -
Le champ
VolumeKmsKeyIdest requis et vous devez spécifier votre clé gérée par le client. En effet, le volume racine doit toujours être chiffré à l’aide d’une clé détenue par AWS ou d’une clé gérée par le client (si vous ne spécifiez pas la vôtre, une clé détenue par AWS est utilisée). -
Vous ne pouvez pas spécifier le champ
VolumeSizeInGBpour les volumes racine, car HyperPod détermine la taille du volume racine pour vous.
Lors de la configuration du volume secondaire, les conditions suivantes s’appliquent :
-
RootVolumedoit avoir pour valeurFalse(la valeur par défaut de ce champ estFalse). -
Le champ
VolumeKmsKeyIdest facultatif. Vous pouvez utiliser la clé gérée par le client que vous avez spécifiée pour le volume racine, ou vous pouvez utiliser une clé différente. -
Ce champ
VolumeSizeInGBest obligatoire, car vous devez spécifier la taille souhaitée pour le volume secondaire.
Important
Lorsque vous utilisez des clés gérées par le client, nous vous recommandons vivement d’utiliser des clés KMS différentes pour chaque groupe d’instances dans votre cluster. L’utilisation de la même clé gérée par le client dans plusieurs groupes d’instances peut entraîner le maintien involontaire d’autorisations, même si vous essayez de révoquer une autorisation. Par exemple, si vous révoquez une autorisation AWS KMS pour les volumes d’un groupe d’instances, ce groupe d’instances peut toujours autoriser les opérations de mise à l’échelle et de correction en raison des autorisations existantes sur d’autres groupes d’instances utilisant la même clé. Pour éviter ce problème, assurez-vous d’attribuer des clés KMS uniques à chaque groupe d’instances de votre cluster. Pour restreindre les autorisations sur les groupes d’instances, vous pouvez essayer l’une des options suivantes :
Désactivez la clé KMS.
Appliquez des politiques de refus à la stratégie de clé KMS.
Révoquez toutes les autorisations de groupe d’instances pour la clé (plutôt que de révoquer une seule autorisation).
Supprimez le groupe d’instances.
Supprimez le cluster.
Les exemples suivants montrent comment spécifier des clés gérées par le client pour les volumes racine et secondaire à l’aide des API CreateCluster et UpdateCluster. Ces exemples montrent uniquement les champs obligatoires pour l’intégration des clés gérées par le client. Pour configurer une clé gérée par le client pour un seul des volumes, spécifiez un seul élément EbsVolumeConfig.
Pour plus d’informations sur la configuration de demandes de création et de mise à jour de clusters, consultez Création d’un cluster SageMaker HyperPod et Mise à jour de la configuration du cluster SageMaker HyperPod.