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.
Configuration des autorisations IAM pour les applications MLflow
Vous devez configurer les rôles de service IAM nécessaires pour commencer à utiliser MLflow Apps dans Amazon SageMaker AI.
Si vous créez un nouveau domaine Amazon SageMaker AI pour accéder à vos expériences dans Studio, vous pouvez configurer les autorisations IAM nécessaires lors de la configuration du domaine. Pour de plus amples informations, veuillez consulter Configuration des autorisations IAM MLflow lors de la création d’un domaine.
Pour configurer les autorisations à l’aide de la console IAM, consultez Création des rôles de service IAM nécessaires dans la console IAM.
Vous devez configurer les contrôles d’autorisation pour les actions sagemaker-mlflow. Vous pouvez éventuellement définir des contrôles d’autorisation plus précis pour régir les autorisations MLflow spécifiques à une action. Pour de plus amples informations, veuillez consulter Création de contrôles d’autorisation spécifiques aux actions.
Configuration des autorisations IAM MLflow lors de la création d’un domaine
Lorsque vous configurez un nouveau domaine Amazon SageMaker AI pour votre organisation, vous pouvez configurer les autorisations IAM pour votre rôle de service de domaine via les paramètres Utilisateurs et Activités ML.
-
Configurez un nouveau domaine à l'aide de la console SageMaker AI. Sur la page Configurer le domaine SageMaker AI, choisissez Configurer pour les organisations. Pour de plus amples informations, veuillez consulter Configuration personnalisée à l’aide de la console.
-
Lorsque vous configurez les utilisateurs et les activités ML, choisissez parmi les activités ML suivantes pour MLflow : Utiliser MLflow, gérer les applications MLflow et Accès requis aux AWS services pour MLflow. Pour plus d’informations sur ces activités, consultez les explications qui suivent cette procédure.
-
Terminez la configuration et la création de votre domaine.
Les activités MLflow ML suivantes sont disponibles dans Amazon SageMaker Role Manager :
Utiliser MLflow : cette activité de ML accorde au rôle de service du domaine l’autorisation d’appeler les API REST MLflow afin de gérer les expériences, les exécutions et les modèles dans MLflow.
Gérer les applications MLflow : cette activité de machine learning accorde au rôle de service de domaine l'autorisation de créer, de mettre à jour et de supprimer des applications MLflow.
Accès requis Services AWS pour les applications MLflow : cette activité de machine learning fournit les autorisations de rôle de service de domaine nécessaires pour accéder à Amazon S3 et au SageMaker AI Model Registry. Cela vous permet d’utiliser le rôle de service du domaine comme rôle de service du serveur de suivi.
Pour plus d’informations sur les activités de ML dans le gestionnaire de rôles, consultez Référence d’activité de ML.
Création des rôles de service IAM nécessaires dans la console IAM
Si vous n'avez pas créé ni mis à jour votre rôle de service de domaine, vous devez plutôt créer les rôles de service suivants dans la console IAM afin de créer et d'utiliser une application MLflow :
Un rôle de service IAM de l'application MLflow que l'application peut utiliser pour accéder aux ressources d'IA SageMaker
Un rôle de service SageMaker AI IAM que l' SageMaker IA peut utiliser pour créer et gérer des ressources MLflow
Politiques IAM pour le rôle de service IAM de l'application MLflow
Le rôle de service IAM de l'application MLflow est utilisé par l'application pour accéder aux ressources dont elle a besoin, telles qu'Amazon S3 et le SageMaker Model Registry.
Lorsque vous créez le rôle de service IAM de l'application, utilisez la politique de confiance IAM suivante :
Dans la console IAM, ajoutez la politique d'autorisations suivante à votre rôle de service d'application :
Politique IAM pour le rôle de SageMaker service AI IAM
Le rôle de service SageMaker AI est utilisé par le client accédant à l'application MLflow et a besoin d'autorisations pour appeler les API REST MLflow. Le rôle de service d' SageMaker IA nécessite également des autorisations d' SageMaker API pour créer, afficher, mettre à jour et supprimer des applications.
Vous pouvez créer un rôle ou mettre à jour un rôle existant. Le rôle de service d' SageMaker IA nécessite la politique suivante :
Création de contrôles d’autorisation spécifiques aux actions
Vous devez configurer des contrôles d'autorisation pour sagemaker-mlflow et pouvez éventuellement configurer des contrôles d'autorisation spécifiques à une action afin de régir les autorisations MLflow plus granulaires dont disposent vos utilisateurs sur une application MLflow.
Note
Les étapes suivantes supposent que vous disposez d'un ARN pour une application MLflow déjà disponible.
Actions IAM du plan de données prises en charge pour les applications MLflow
Les actions SageMaker AI MLflow suivantes sont prises en charge pour le contrôle des autorisations et des accès :
-
saucière : CallMlflowAppApi
Autorisations IAM pour la synchronisation du Model Registry et la gestion du cycle de vie
Lorsque vous enregistrez des modèles MLflow auprès du registre des modèles SageMaker AI, le rôle de service IAM de l'application MLflow nécessite les autorisations suivantes pour effectuer l'enregistrement des modèles, la gestion du cycle de vie et le suivi du lignage :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:AddTags" ], "Resource": "*" }, { "Sid": "S3ArtifactAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "LineageTracking", "Effect": "Allow", "Action": [ "sagemaker:CreateAction", "sagemaker:AddAssociation" ], "Resource": "*" } ] }
Le tableau suivant décrit ce que chaque autorisation permet :
| Action | Objectif |
|---|---|
sagemaker:CreateModelPackageGroup |
Crée un groupe de packages de modèles lorsque vous enregistrez un nouveau nom de modèle. |
sagemaker:DescribeModelPackageGroup |
Vérifie si un groupe de packages modèles existe déjà avant d'en créer un. |
sagemaker:CreateModelPackage |
Crée un package de modèles (version) lorsque vous enregistrez une version de modèle. |
sagemaker:UpdateModelPackage |
Met à jour l'étape et l'état du cycle de vie du package modèle lorsque vous définissez des alias de cycle de vie. |
sagemaker:AddTags |
Marque le package de modèles avec des métadonnées le reliant au modèle MLflow. |
s3:GetObject |
Lit les spécifications d'inférence et les artefacts d'évaluation d'Amazon S3 lors de l'enregistrement. |
sagemaker:CreateAction, sagemaker:AddAssociation |
Crée des associations de lignage entre le modèle MLflow et le package de modèles SageMaker AI. En cas d'absence, la lignée est ignorée silencieusement. |
Limitez les transitions de cycle de vie grâce aux clés de condition IAM
Vous pouvez utiliser les clés de condition IAM pour contrôler les transitions de cycle de vie qu'un rôle est autorisé à effectuer. Les clés de condition suivantes sont disponibles pour l'sagemaker:UpdateModelPackageaction :
sagemaker:ModelLifeCycle/stage— L'étape du cycle de vie est en cours de définition. Valeurs :staging,production.sagemaker:ModelLifeCycle/stageStatus— L'état du cycle de vie est en cours de définition. Valeurs :pending,active.
Exemple : Refuser les promotions de production
La politique suivante empêche un rôle de promouvoir des mannequins sur production scène :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "production" } } } ] }
Exemple : Autoriser uniquement staging/pending les transitions
La politique suivante limite un rôle aux seuls modèles à mettre en staging scène avec pending statut :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "staging", "sagemaker:ModelLifeCycle/stageStatus": "pending" } } } ] }