Configurar permissões do IAM para o MLflow
Você deve configurar os perfis de serviço do IAM necessários para começar a usar o MLflow no Amazon SageMaker.
Se você criar um novo domínio do Amazon SageMaker para acessar os 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 para sua organização, você pode configurar as permissões do IAM para o perfil de serviço de domínio por meio das configurações de Usuários e atividades de ML.
Para configurar as permissões do IAM para usar o MLflow com o SageMaker ao configurar um novo domínio
-
Configure um novo domínio usando o console do SageMaker. Na página Configurar domínio do SageMaker, escolha Configurar para organizações. Para obter mais informações, consulte Configuração personalizada usando o console.
-
Ao configurar os Usuários e atividades de ML, escolha entre as seguintes atividades de ML para o MLflow: Usar o MLflow, Gerenciar servidores de rastreamento MLflow e Acesso necessário aos serviços da AWS para o MLflow. Para obter mais informações sobre essas atividades, consulte as explicações posteriores a esse processo.
-
Conclua a configuração e a criação do seu novo domínio.
As seguintes atividades do MLflow ML estão disponíveis no Gerenciador de Perfis do Amazon SageMaker:
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 serviços do MLflow da AWS: essa atividade de ML fornece as permissões de perfil de serviço de domínio necessárias para acessar o Amazon S3 e o registro de modelo SageMaker. 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:
Um perfil de serviço do IAM do servidor de rastreamento que o servidor de rastreamento pode usar para acessar os recursos do SageMaker.
Um perfil de serviço do SageMaker IAM que o SageMaker 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
O perfil de serviço do IAM do servidor de rastreamento é usado pelo servidor de rastreamento para acessar os recursos necessários, como o Amazon S3 e o registro de modelo SageMaker.
Ao criar o perfil de serviço do IAM do servidor de rastreamento, use a seguinte política de confiança do IAM:
{ "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:
{ "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 o perfil de serviço do SageMaker IAM
O perfil de serviço do SageMaker é usado pelo cliente que acessa o servidor de rastreamento MLflow e precisa de permissões para chamar as APIs REST do MLflow. O perfil de serviço do SageMaker também precisa das permissões da API do SageMaker para criar, visualizar, atualizar, iniciar, interromper e excluir servidores de rastreamento.
Você pode criar um novo perfil ou atualizar o existente. O perfil de serviço do SageMaker precisa da seguinte política:
{ "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 ouCriar um servidor de rastreamento com o uso da AWS CLI.
O comando a seguir cria um arquivo chamado mlflow-policy.json
que fornece ao seu servidor de rastreamento as permissões do IAM para todas as ações disponíveis do SageMaker MLflow. 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-documentfile://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 MLflow são compatíveis com o controle de acesso por 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