View a markdown version of this page

Configurar permissões do IAM para o MLflow - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar permissões do IAM para o MLflow

Você deve configurar as funções de serviço do IAM necessárias para começar a usar o MLflow na Amazon SageMaker AI.

Se você criar um novo domínio do Amazon SageMaker AI para acessar seus experimentos no Studio, poderá configurar as permissões necessárias do IAM durante a configuração do domínio. Para obter mais informações, consulte Configurar permissões do MLflow ao criar um novo domínio.

Para configurar as permissões usando o console do IAM, consulte Criar os perfis de serviço do IAM necessários no console do IAM.

Você deve configurar os controles de autorização para ações com sagemaker-mlflow. Ou então, você pode definir controles de autorização mais detalhados para controlar as permissões do MLflow específicas para ações. Para obter mais informações, consulte Criar controles de autorização específicos para ações.

Configurar permissões do MLflow ao criar um novo domínio

Ao configurar um novo domínio do Amazon SageMaker AI para sua organização, você pode configurar as permissões do IAM para sua função de serviço de domínio por meio das configurações Usuários e Atividades de ML.

Para configurar as permissões do IAM para usar o MLflow com SageMaker AI ao configurar um novo domínio
  1. Configure um novo domínio usando o console de SageMaker IA. Na página Configurar domínio SageMaker AI, escolha Configurar para organizações. Para obter mais informações, consulte Configuração personalizada usando o console.

  2. Ao configurar usuários e atividades de ML, escolha entre as seguintes atividades de ML para o MLflow: usar o MLflow, gerenciar servidores de rastreamento do MLflow e acesso necessário aos AWS serviços do MLflow. Para obter mais informações sobre essas atividades, consulte as explicações posteriores a esse processo.

  3. Conclua a configuração e a criação do seu novo domínio.

As seguintes atividades do MLflow ML estão disponíveis no Amazon SageMaker Role Manager:

  • Usar o MLflow: essa atividade do ML concede ao perfil de serviço do domínio permissão para chamar as APIs REST do MLflow para gerenciar experimentos, execuções e modelos no MLflow.

  • Gerenciar servidores de rastreamento MLflow: essa atividade de ML concede ao perfil de serviço de domínio permissão para criar, atualizar, iniciar, parar e excluir servidores de rastreamento.

  • Acesso necessário aos AWS serviços do MLflow: essa atividade de ML fornece as permissões de função de serviço de domínio necessárias para acessar o Amazon S3 e SageMaker o AI Model Registry. Isso permite que você use o perfil de serviço de domínio como o perfil de serviço do servidor de rastreamento.

Para obter mais informações sobre atividades de ML no Gerenciador de Perfis, consulte Referência da atividade de ML.

Criar os perfis de serviço do IAM necessários no console do IAM

Se você não criou nem atualizou seu perfil de serviço de domínio, você deve criar os seguintes perfis de serviço no console do IAM para criar e usar um servidor de rastreamento MLflow:

  • Uma função de serviço IAM do servidor de rastreamento que o servidor de rastreamento pode usar para acessar recursos de SageMaker IA

  • Uma função de serviço do SageMaker AI IAM que a SageMaker IA pode usar para criar e gerenciar recursos do MLflow

Políticas do IAM para o perfil de serviço do IAM do servidor de rastreamento

A função de serviço IAM do servidor de rastreamento é usada pelo servidor de rastreamento para acessar os recursos necessários, como o Amazon S3 e o SageMaker Model Registry.

Ao criar o perfil de serviço do IAM do servidor de rastreamento, use a seguinte política de confiança do IAM:

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

No console do IAM, adicione a seguinte política de permissões ao seu perfil de serviço do servidor de rastreamento:

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

Política do IAM para a função de serviço SageMaker AI IAM

A função de serviço de SageMaker IA é usada pelo cliente que acessa o MLflow Tracking Server e precisa de permissões para chamar as APIs REST do MLflow. A função de serviço de SageMaker IA também precisa de permissões de SageMaker API para criar, visualizar, atualizar, iniciar, parar e excluir servidores de rastreamento.

Você pode criar um novo perfil ou atualizar o existente. A função de serviço de SageMaker IA precisa da seguinte política:

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

Criar controles de autorização específicos para ações

Você deve configurar controles de autorização para sagemaker-mlflow, ou pode configurar controles de autorização específicos para ações para controlar as permissões mais detalhadas do MLflow que os usuários possuem em um servidor de rastreamento MLflow.

nota

As etapas a seguir pressupõem que você já tenha um ARN para um servidor de rastreamento MLflow. Para saber como criar um servidor de rastreamento, consulte Criar um servidor de rastreamento com o uso do Studio ouCrie um servidor de rastreamento usando o AWS CLI.

O comando a seguir cria um arquivo chamado mlflow-policy.json que fornece ao servidor de rastreamento permissões do IAM para todas as ações do SageMaker AI MLflow disponíveis. Você também pode limitar as permissões que um usuário tem ao selecionar as ações específicas que deseja que esse usuário execute. Para obter uma lista das ações disponíveis, consulte Ações do IAM compatíveis com o 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

Use o arquivo mlflow-policy.json para criar uma política do IAM com uso da AWS CLI.

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

Recupere o ID da conta e anexe a política ao seu perfil do 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

Ações do IAM compatíveis com o MLflow

As seguintes ações do SageMaker AI MLflow são suportadas para controle de acesso de autorização:

  • 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