Configuration des autorisations IAM pour MLflow - Amazon SageMaker

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 MLflow

Vous devez configurer les rôles de service IAM nécessaires pour commencer à utiliser MLflow sur Amazon. SageMaker

Si vous créez un nouveau SageMaker domaine Amazon pour accéder à vos tests dans Studio, vous pouvez configurer les autorisations IAM nécessaires lors de la configuration du domaine. Pour plus d’informations, consultez Configurer les autorisations IAM de MLflow lors de la création d'un nouveau domaine.

Pour configurer les autorisations à l'aide de la console IAM, consultezCréez les rôles de service IAM nécessaires dans la console IAM.

Vous devez configurer les contrôles AuthZ pour les sagemaker-mlflow actions. Vous pouvez éventuellement définir des contrôles AuthZ plus précis pour régir les autorisations MLflow spécifiques à une action. Pour plus d’informations, consultez Contrôles AuthZ spécifiques à une action.

Configurer les autorisations IAM de MLflow lors de la création d'un nouveau domaine

Lorsque vous configurez un nouveau SageMaker domaine Amazon 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.

Les activités MLflow ML suivantes sont disponibles dans Amazon SageMaker Role Manager :

  • Utiliser MLflow : cette activité ML accorde au rôle de service de 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 serveurs de suivi MLflow : cette activité ML accorde au rôle de service de domaine l'autorisation de créer, de mettre à jour, de démarrer, d'arrêter et de supprimer des serveurs de suivi.

  • Accès requis aux AWS services pour MLflow : cette activité ML fournit les autorisations de rôle de service de domaine nécessaires pour accéder à Amazon S3 et au SageMaker Model Registry. Cela vous permet d'utiliser le rôle de service de domaine comme rôle de service de serveur de suivi.

Suivez les étapes suivantes pour ajouter les activités MLflow ML à votre rôle de service de domaine :

Configurer les autorisations IAM pour utiliser MLflow SageMaker lors de la configuration d'un nouveau domaine
  1. Configurez un nouveau domaine à l'aide de la SageMaker console. Sur la page Configurer le SageMaker domaine, choisissez Configurer pour les organisations. Pour plus d’informations, consultez Configuration personnalisée à l'aide de la console.

  2. Lorsque vous configurez les utilisateurs et les activités ML, choisissez les activités ML suivantes pour MLflow : Utiliser MLflow, gérer les serveurs de suivi MLflow et Accès requis aux AWS services pour MLflow.

  3. Terminez la configuration et la création de votre nouveau domaine.

Pour plus d'informations sur les activités de machine learning dans Role Manager, consultezRéférence d'activité de ML.

Créez les rôles de service IAM nécessaires dans la console IAM

Si vous n'avez pas créé ou mis à jour votre rôle de service de domaine, vous devez créer les rôles de service suivants dans la console IAM afin de créer et d'utiliser un serveur de suivi MLflow :

  • Un rôle de service IAM de serveur de suivi que le serveur de suivi peut utiliser pour accéder aux ressources SageMaker

  • Rôle de service SageMaker IAM SageMaker pouvant être utilisé pour créer et gérer des ressources MLflow

Création du rôle de service IAM du serveur de suivi

Le rôle de service IAM du serveur de suivi est utilisé par le serveur de suivi pour accéder aux ressources dont il a besoin, telles qu'Amazon S3 et le SageMaker Model Registry.

Pour créer le rôle de service IAM du serveur de suivi, créez la politique de confiance IAM suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Dans la console IAM, ajoutez la politique suivante à votre rôle de service de serveur de suivi :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "s3:List*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:DescribeModelPackageGroup" ], "Resource": "*" } ] }

Création du rôle SageMaker de service IAM

Le rôle SageMaker de service est utilisé par le client qui accède au serveur de suivi MLflow et a besoin d'autorisations pour appeler les API REST MLflow. Le rôle SageMaker de service nécessite également des autorisations d' SageMaker API pour créer, mettre à jour, démarrer, arrêter et supprimer des serveurs de suivi.

Vous pouvez créer un nouveau rôle ou mettre à jour un rôle existant. Le rôle SageMaker de service nécessite la politique suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker-mlflow:*", "sagemaker:CreateMlflowTrackingServer", "sagemaker:UpdateMlflowTrackingServer", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:StartMlflowTrackingServer", "sagemaker:StopMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl" ], "Resource": "*" } ] }

Contrôles AuthZ spécifiques à une action

Vous devez configurer des contrôles AuthZ poursagemaker-mlflow, et vous pouvez éventuellement configurer des contrôles AuthZ spécifiques à une action pour régir les autorisations MLflow plus détaillées dont disposent vos utilisateurs sur un serveur de suivi MLflow.

Note

Les étapes suivantes supposent que vous disposez déjà d'un ARN pour un serveur de suivi MLflow. Pour savoir comment créer un serveur de suivi, consultez Création d'un serveur de suivi à l'aide de Studio ouCréez un serveur de suivi à l'aide du AWS CLI.

La commande suivante crée un fichier appelé mlflow-policy.json qui fournit à votre serveur de suivi les autorisations IAM pour toutes les actions SageMaker MLflow disponibles. Vous pouvez éventuellement limiter les autorisations d'un utilisateur en choisissant les actions spécifiques que vous souhaitez que cet utilisateur effectue. Pour obtenir la liste des actions disponibles, consultez Actions IAM prises en charge pour MLflow.

# Replace "Resource":"*" with "Resource":"TrackingServerArn" # Replace "sagemaker-mlflow:*" with specific actions printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker-mlflow:*", "Resource": "*" } ] }' > mlflow-policy.json

Utilisez le mlflow-policy.json fichier pour créer une politique IAM à l'aide du AWS CLI.

aws iam create-policy \ --policy-name MLflowPolicy \ --policy-document file://mlflow-policy.json

Récupérez votre identifiant de compte et associez la politique à votre rôle IAM.

# Get your account ID aws sts get-caller-identity # Attach the IAM policy using your exported role and account ID aws iam attach-role-policy \ --role-name $role_name \ --policy-arn arn:aws:iam::123456789012:policy/MLflowPolicy

Actions IAM prises en charge pour MLflow

Les actions SageMaker MLflow suivantes sont prises en charge pour le contrôle d'accès AuthZ :

  • SageMaker-MLFlow : Accès à l'interface utilisateur

  • SageMaker-mlflow : CreateExperiment

  • SageMaker-mlflow : SearchExperiments

  • SageMaker-mlflow : GetExperiment

  • SageMaker-mlflow : GetExperimentByName

  • SageMaker-mlflow : DeleteExperiment

  • SageMaker-mlflow : RestoreExperiment

  • SageMaker-mlflow : UpdateExperiment

  • SageMaker-mlflow : CreateRun

  • SageMaker-mlflow : DeleteRun

  • SageMaker-mlflow : RestoreRun

  • SageMaker-mlflow : GetRun

  • SageMaker-mlflow : LogMetric

  • SageMaker-mlflow : LogBatch

  • SageMaker-mlflow : LogModel

  • SageMaker-mlflow : LogInputs

  • SageMaker-mlflow : SetExperimentTag

  • SageMaker-mlflow : SetTag

  • SageMaker-mlflow : DeleteTag

  • SageMaker-mlflow : LogParam

  • SageMaker-mlflow : GetMetricHistory

  • SageMaker-mlflow : SearchRuns

  • SageMaker-mlflow : ListArtifacts

  • SageMaker-mlflow : UpdateRun

  • SageMaker-mlflow : CreateRegisteredModel

  • SageMaker-mlflow : GetRegisteredModel

  • SageMaker-mlflow : RenameRegisteredModel

  • SageMaker-mlflow : UpdateRegisteredModel

  • SageMaker-mlflow : DeleteRegisteredModel

  • SageMaker-mlflow : GetLatestModelVersions

  • SageMaker-mlflow : CreateModelVersion

  • SageMaker-mlflow : GetModelVersion

  • SageMaker-mlflow : UpdateModelVersion

  • SageMaker-mlflow : DeleteModelVersion

  • SageMaker-mlflow : SearchModelVersions

  • sagemaker-mlflow : URI GetDownload ForModelVersionArtifacts

  • SageMaker-mlflow : TransitionModelVersionStage

  • SageMaker-mlflow : SearchRegisteredModels

  • SageMaker-mlflow : SetRegisteredModelTag

  • SageMaker-mlflow : DeleteRegisteredModelTag

  • SageMaker-mlflow : DeleteModelVersionTag

  • SageMaker-mlflow : DeleteRegisteredModelAlias

  • SageMaker-mlflow : SetRegisteredModelAlias

  • SageMaker-mlflow : GetModelVersionByAlias