View a markdown version of this page

Impostazione delle autorizzazioni IAM per MLflow. - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione delle autorizzazioni IAM per MLflow.

È necessario configurare i ruoli di servizio IAM necessari per iniziare a usare MLFlow in Amazon SageMaker AI.

Se crei un nuovo dominio Amazon SageMaker AI per accedere ai tuoi esperimenti in Studio, puoi configurare le autorizzazioni IAM necessarie durante la configurazione del dominio. Per ulteriori informazioni, consulta Configurazione delle autorizzazioni IAM MLflow quando si crea un nuovo dominio.

Per configurare le autorizzazioni utilizzando la console IAM, consulta Creazione dei ruoli di servizio IAM necessari nella console IAM.

È necessario configurare i controlli di autorizzazione per le azioni sagemaker-mlflow. Facoltativamente, puoi definire controlli di autorizzazione più granulari per gestire le autorizzazioni MLflow specifiche per azione. Per ulteriori informazioni, consulta Creazione di controlli di autorizzazione specifici per azione.

Configurazione delle autorizzazioni IAM MLflow quando si crea un nuovo dominio

Quando configuri un nuovo dominio Amazon SageMaker AI per la tua organizzazione, puoi configurare le autorizzazioni IAM per il tuo ruolo di servizio di dominio tramite le impostazioni Users and ML Activities.

Per configurare le autorizzazioni IAM per l'utilizzo di MLFlow con SageMaker AI durante la configurazione di un nuovo dominio
  1. Configura un nuovo dominio utilizzando la console SageMaker AI. Nella pagina Configura dominio SageMaker AI, scegli Configura per le organizzazioni. Per ulteriori informazioni, consulta Configurazione personalizzata tramite la console.

  2. Quando configuri utenti e attività ML, scegli tra le seguenti attività ML per MLFlow: Usa MLFlow, gestisci i server di tracciamento MLFlow e Accesso richiesto ai AWS servizi per MLFlow. Per ulteriori informazioni su tali attività, consulta le spiegazioni che seguono questa procedura.

  3. Completa la configurazione e la creazione del tuo nuovo dominio.

Le seguenti attività MLFlow ML sono disponibili in Amazon SageMaker Role Manager:

  • Usa MLflow: questa attività ML concede al ruolo del servizio di dominio l’autorizzazione a chiamare le REST API di MLflow per gestire esperimenti, esecuzioni e modelli in MLflow.

  • Gestisci i server di tracciamento MLflow: questa attività ML concede al ruolo di servizio del dominio l’autorizzazione a creare, aggiornare, avviare, arrestare ed eliminare i server di tracciamento.

  • Accesso richiesto a AWS Services for MLFlow: questa attività ML fornisce le autorizzazioni del ruolo di servizio di dominio necessarie per accedere ad Amazon S3 e al AI SageMaker Model Registry. Questo consente di utilizzare il ruolo del servizio di dominio come ruolo di servizio del server di tracciamento.

Per ulteriori informazioni sulle attività ML in Gestione dei ruoli, consulta Riferimento all'attività ML.

Creazione dei ruoli di servizio IAM necessari nella console IAM

Se invece non hai creato o aggiornato il ruolo di servizio del dominio, devi creare i seguenti ruoli di servizio nella console IAM per creare e utilizzare un server di tracciamento MLflow:

  • Un ruolo del servizio IAM del server di tracciamento che il server di tracciamento può utilizzare per accedere alle risorse AI SageMaker

  • Un ruolo di servizio IAM SageMaker SageMaker AI che l'IA può utilizzare per creare e gestire le risorse MLFlow

Policy IAM per il ruolo di servizio IAM del server di tracciamento

Il ruolo del servizio IAM del server di tracciamento viene utilizzato dal server di tracciamento per accedere alle risorse di cui ha bisogno, come Amazon S3 e il SageMaker Model Registry.

Quando crei il ruolo di servizio IAM del server di tracciamento, utilizza la seguente policy di attendibilità IAM:

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

Nella console IAM, aggiungi al ruolo di servizio del server di tracciamento la seguente policy di autorizzazione:

JSON
{ "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": "*" } ] }

Politica IAM per il ruolo del servizio SageMaker AI IAM

Il ruolo del servizio SageMaker AI viene utilizzato dal client che accede al server di tracciamento MLFlow e necessita delle autorizzazioni per chiamare le API REST di MLFlow. Il ruolo del servizio SageMaker AI richiede anche le autorizzazioni SageMaker API per creare, visualizzare, aggiornare, avviare, arrestare ed eliminare i server di tracciamento.

Puoi creare un nuovo ruolo o aggiornarne uno esistente. Il ruolo del servizio SageMaker AI richiede la seguente politica:

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

Creazione di controlli di autorizzazione specifici per azione

È necessario impostare controlli di autorizzazione per sagemaker-mlflow e, facoltativamente, configurare controlli di autorizzazione specifici per azione per gestire le autorizzazioni MLflow più granulari disponibili per gli utenti su un server di tracciamento MLflow.

Nota

Le fasi seguenti presuppongono che sia già disponibile un ARN per un server di tracciamento MLflow. Per informazioni su come creare un server di tracciamento, consulta Creazione di un server di tracciamento utilizzando Studio o Crea un server di tracciamento utilizzando il AWS CLI.

Il comando seguente crea un file chiamato mlflow-policy.json che fornisce al server di tracciamento le autorizzazioni IAM per tutte le azioni SageMaker AI MLFlow disponibili. Facoltativamente, puoi limitare le autorizzazioni disponibili per gli utenti scegliendo quali azioni specifiche desideri che questi eseguano. Per un elenco delle operazioni disponibili, consulta Azioni IAM supportate per 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

Utilizza il file mlflow-policy.json per creare una policy IAM utilizzando la AWS CLI.

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

Recupera l’ID del tuo account e collega la policy al tuo ruolo 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

Azioni IAM supportate per MLflow

Le seguenti azioni SageMaker AI MLFlow sono supportate per il controllo degli accessi alle autorizzazioni:

  • sagemaker-mlflow:AccessUI

  • 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: GetDownloadURIForModelVersionArtifacts

  • sagemaker-mlflow: TransitionModelVersionStage

  • sagemaker-mlflow: SearchRegisteredModels

  • sagemaker-mlflow: SetRegisteredModelTag

  • sagemaker-mlflow: DeleteRegisteredModelTag

  • sagemaker-mlflow: DeleteModelVersionTag

  • sagemaker-mlflow: DeleteRegisteredModelAlias

  • sagemaker-mlflow: SetRegisteredModelAlias

  • sagemaker-mlflow: GetModelVersionByAlias

  • sagemaker-mlflow: FinalizeLoggedModel

  • sagemaker-mlflow: GetLoggedModel

  • sagemaker-mlflow: DeleteLoggedModel

  • sagemaker-mlflow: SearchLoggedModels

  • sagemaker-mlflow: SetLoggedModelTags

  • sagemaker-mlflow: DeleteLoggedModelTag

  • sagemaker-mlflow: ListLoggedModelArtifacts

  • sagemaker-mlflow: LogLoggedModelParams

  • sagemaker-mlflow: LogOutputs