View a markdown version of this page

Utilisation AWS KMS autorisations pour MLflow Applications - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation AWS KMS autorisations pour MLflow Applications

Vous pouvez protéger vos données au repos à l'aide du chiffrement pour les MLflow applications. Par défaut, MLflow les applications utilisent le chiffrement côté serveur avec une clé propre AWS . SageMaker prend également en charge une option de chiffrement côté serveur avec une clé KMS gérée par le client.

Note

La clé gérée par le client chiffre les données SageMaker gérées pour l'MLflowapplication. Il ne chiffre pas les artefacts que vous stockez dans votre propre boutique d'artefacts Amazon S3. Ce compartiment Amazon S3 est créé et détenu par vous, et non géré par AWS vous. Vous êtes donc responsable de la configuration de son chiffrement. Pour chiffrer vos artefacts à l'aide d'une clé gérée par le client, définissez le chiffrement par défaut sur votre compartiment Amazon S3. Pour plus d’informations, consultez Configuration du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3 dans le Guide de l’utilisateur Amazon Simple Storage Service.

Server-side chiffrement avec AWS clés possédées

Par défaut, MLflow les applications chiffrent vos données au repos à l'aide d'une clé AWS personnelle.

Server-side chiffrement à l'aide de clés KMS gérées par le client

En option, vous pouvez utiliser une clé symétrique gérée par le client que vous créez, possédez et gérez pour remplacer le chiffrement AWS détenu existant. Étant donné que vous avez le contrôle total de cette couche de chiffrement, vous pouvez effectuer les tâches suivantes :

  • Établissement et gestion des stratégies de clé

  • Établissement et gestion des politiques IAM et des octrois

  • Activation et désactivation des stratégies de clé

  • Rotation des matériaux de chiffrement de clé

  • Ajout de balises

  • Création d’alias de clé

  • Planification des clés pour la suppression

Pour plus d’informations, consultez Clés gérées par le client dans le Guide du développeur AWS Key Management Service .

Comment ? MLflow Les applications utilisent des subventions dans AWS KMS

Pour utiliser votre clé gérée par le client, votre MLflow application nécessite une subvention. Lorsque vous créez une MLflow application chiffrée avec une clé gérée par le client, elle SageMaker crée une subvention en votre nom en envoyant une CreateGrant demande à AWS KMS. AWS KMS les autorisations permettent aux MLflow applications d'accéder à votre clé gérée par le client. Lorsque vous supprimez une MLflow application, la SageMaker subvention est supprimée.

Vous pouvez révoquer l'autorisation ou supprimer l'accès du service à votre clé gérée par le client à tout moment. La révocation de l'accès n'interrompt pas immédiatement une MLflow application en cours d'exécution. La couche de stockage sous-jacente continue d'utiliser l'accès accordé lors de la création de l'application. Après avoir révoqué l'accès, vous ne SageMaker pouvez plus utiliser votre clé pour les opérations ultérieures qui l'exigent, telles que la maintenance planifiée. Si votre clé devient définitivement indisponible, par exemple si vous la désactivez ou si vous planifiez sa suppression, vos données au repos ne peuvent plus être déchiffrées et l'MLflowapplication devient irrécupérable.

Configuration d'une clé KMS gérée par le client pour un MLflow Appli

Vous pouvez créer une clé symétrique gérée par le client à l'aide des API Console de gestion AWS ou des AWS KMS API.

Vous pouvez spécifier la clé gérée par le client pour une MLflow application uniquement au moment de sa création. Vous ne pouvez pas le modifier pendant la durée de vie de l'application. MLflow Les applications ne permettent pas de basculer une application existante entre une clé AWS détenue et une clé gérée par le client, ni de remplacer une clé gérée par le client par une autre. Si vous souhaitez utiliser une autre clé, supprimez l'MLflowapplication et créez-en une nouvelle avec la configuration de cryptage souhaitée.

Création d'une clé gérée par le client symétrique

Suivez les étapes de Création de clés KMS de chiffrement symétriques dans le Guide du développeur AWS Key Management Service .

Stratégie de clé

Les stratégies de clé contrôlent l’accès à votre clé gérée par le client. Chaque clé gérée par le client doit avoir exactement une stratégie de clé, qui contient des instructions qui déterminent les personnes pouvant utiliser la clé et comment elles peuvent l’utiliser. Lorsque vous créez votre clé gérée par le client, vous pouvez spécifier une stratégie de clé. Pour plus d’informations, consultez Détermination de l’accès aux clés AWS KMS dans le Guide du développeur AWS Key Management Service .

Pour utiliser votre clé gérée par le client avec votre MLflow application, votre politique de clé doit autoriser les opérations d'API suivantes. Le principal de ces opérations dépend du fait que le rôle est utilisé pour créer ou utiliser l’application.

Vous trouverez ci-dessous des exemples de déclarations de politique que vous pouvez ajouter pour les MLflow applications selon que le personnage est un administrateur ou un utilisateur. Pour plus d’informations sur la spécification d’autorisations dans une stratégie, consultez Autorisations AWS KMS dans le Guide du développeur AWS Key Management Service . Pour plus d’informations sur la résolution des problèmes, consultez Résolution des problèmes de clé d’accès dans le Guide du développeur AWS Key Management Service .

Administrateur

La politique suivante peut être utilisée pour l'administrateur qui crée des MLflow applications.

{ "Sid": "AllowMLflowAppAdministratorAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/mlflow-app-admin-role" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "sagemaker.region.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "CreateGrant", "Decrypt", "DescribeKey", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] } } }
  • kms:ViaService— Limite l'utilisation de la clé aux demandes provenant d'une SageMaker région spécifique. Avec"kms:ViaService": "sagemaker.region.amazonaws.com", les kms:DescribeKey autorisations kms:CreateGrant et ne peuvent être exercées que lorsque la demande est faite SageMaker en votre nom, et non directement par un autre fournisseur ou service. Cela garantit que votre clé est utilisée uniquement pour votre MLflow application.

  • kms:GrantOperations— Limite les opérations que la subvention SageMaker est autorisée à contenir. Lorsque vous créez une MLflow application, les SageMaker appels permettent CreateGrant à son plan de données de chiffrer et de déchiffrer vos données au repos. L'ajout kms:GrantOperations à la kms:CreateGrant déclaration garantit que SageMaker vous ne pouvez créer qu'une subvention contenant exactement les opérations requises à cette fin : CreateGrant Decrypt DescribeKeyEncrypt,GenerateDataKey,GenerateDataKeyWithoutPlaintext,ReEncryptFrom,ReEncryptTo, etRetireGrant.

  • Contexte de chiffrement — Non applicable. MLflow Les applications ne définissent pas de contexte de chiffrement personnalisé pour l'autorisation. Vous ne pouvez donc pas utiliser la clé de kms:EncryptionContext condition pour restreindre davantage l'accès.

Utilisateur

L'accès à une MLflow application, via les MLflow API ou une URL présignée, n'implique AWS KMS pas. SageMaker chiffre et déchiffre vos données au repos pour vous, et aucune AWS KMS demande n'est faite lorsque vous accédez à l'application. Par conséquent, si vous accédez à une MLflow application, vous n'avez besoin d'aucune AWS KMS autorisation. Vous n'avez pas besoin de prendre en compte l' AWS KMS accès lorsque vous définissez des politiques de sécurité pour vos utilisateurs.

Création d'un nouveau MLflow Application avec clé KMS gérée par le client

Pour chiffrer votre MLflow application à l'aide d'une clé gérée par le client, spécifiez la clé lorsque vous créez l'application à l'aide du --kms-key-id paramètre de la create-mlflow-app AWS CLI commande. Si vous omettez ce paramètre, SageMaker utilise une clé AWS détenue. Le rôle que create-mlflow-app doivent avoir les appels kms:CreateGrant et kms:DescribeKey les autorisations sur la clé gérée par le client.

aws sagemaker create-mlflow-app \ --name app-name \ --artifact-store-uri s3://bucket-name \ --role-arn role-arn \ --kms-key-id your-kms-key-id \ --region your-region

Pour plus d'informations sur la création d'une MLflow application, consultezCréer une application MLflow.

Contrôle MLflow Interaction des applications avec AWS KMS

Vous pouvez l'utiliser CloudTrail pour suivre les demandes qui sont adressées en votre AWS KMS nom lorsque votre MLflow application utilise une clé gérée par le client. Pour plus d'informations sur la recherche et l'interprétation AWS KMS des événements dans CloudTrail, consultez la section Journalisation des appels d' AWS KMS API CloudTrail dans le Guide du AWS Key Management Service développeur.

Les AWS KMS CloudTrail événements suivants sont enregistrés pour une MLflow application chiffrée avec une clé gérée par le client :

  • DescribeKeyet CreateGrant — Enregistré lorsque vous créez une MLflow application. SageMaker valide votre clé et crée la licence qui permet de crypter et de déchiffrer vos données au repos en votre nom.

  • GenerateDataKeyWithoutPlaintext,Encrypt, et Decrypt — Enregistré pendant le provisionnement et le fonctionnement de l'MLflowapplication. La couche de stockage SageMaker sous-jacente utilise la clé gérée par votre client pour crypter et déchiffrer vos données au repos. Ces demandes sont effectuées par AWS des services agissant en votre nom par le biais de la subvention, de sorte que l' CloudTrail userIdentityélément indique un AWS service en tant qu'appelant plutôt qu'un principal IAM depuis votre compte.

  • RetireGrant— Enregistré lorsque vous supprimez une MLflow application. Les subventions créées pour l'application sont supprimées afin que votre clé gérée par le client ne puisse plus être utilisée pour celle-ci.