Configura le 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à.

Configura le autorizzazioni IAM per MLflow

È necessario configurare i ruoli di servizio IAM necessari per iniziare MLflow a utilizzare 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 Configura le autorizzazioni MLflow IAM quando crei 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 specifiche delle azioni. MLflow Per ulteriori informazioni, consulta Creazione di controlli di autorizzazione specifici per azione.

Configura le autorizzazioni MLflow IAM quando crei 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 da utilizzare MLflow con l' SageMaker intelligenza artificiale 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: Utilizzo MLflow, gestione MLflow dei server di tracciamento 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à di MLflow machine learning sono disponibili in Amazon SageMaker Role Manager:

  • Uso MLflow: questa attività di machine learning concede al ruolo del servizio di dominio l'autorizzazione a chiamare MLflow REST APIs per gestire esperimenti, esecuzioni e modelli. MLflow

  • Gestione MLflow dei server di tracciamento: questa attività di machine learning concede al ruolo del servizio di dominio l'autorizzazione a creare, aggiornare, avviare, arrestare ed eliminare i server di tracciamento.

  • Accesso richiesto ai AWS servizi per MLflow: questa attività di machine learning 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 non hai creato o aggiornato il ruolo di servizio di dominio, devi invece creare i seguenti ruoli di servizio nella console IAM per creare e utilizzare un server di MLflow tracciamento:

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

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

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 MLflow Tracking Server e necessita delle autorizzazioni per chiamare MLflow REST APIs. 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 i controlli di autorizzazione per esagemaker-mlflow, facoltativamente, configurare controlli di autorizzazione specifici per le azioni per gestire le MLflow autorizzazioni più granulari di cui dispongono gli utenti su un server di tracciamento. MLflow

Nota

I passaggi seguenti presuppongono che sia già disponibile un ARN per un server di MLflow tracciamento. 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 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 MLflow azioni SageMaker AI 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: GetDownload URIFor ModelVersionArtifacts

  • 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