View a markdown version of this page

Configurar permissões do IAM para aplicativos MLflow - SageMaker IA 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 aplicativos MLflow

Você deve configurar as funções de serviço IAM necessárias para começar a usar os aplicativos MLflow no 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 de IAM necessárias 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 de Usuários e Atividades de ML.

  1. Configure um novo domínio usando o console de SageMaker IA. Na página Configurar domínio de SageMaker IA, 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: Use o MLflow, gerencie os aplicativos do MLflow e o 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 aplicativos MLflow: esta atividade de ML concede à função de serviço de domínio permissão para criar, atualizar e excluir aplicativos MLflow.

  • Acesso necessário Serviços da AWS para aplicativos 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 o SageMaker 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 ou atualizou sua função de serviço de domínio, você deve criar as seguintes funções de serviço no console do IAM para criar e usar um aplicativo MLflow:

  • Uma função de serviço do MLflow App IAM que o aplicativo pode usar para acessar recursos de SageMaker IA

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

Políticas de IAM para a função de serviço IAM do aplicativo MLflow

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

Ao criar a função de serviço IAM do aplicativo, 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 à sua função de serviço de aplicativo:

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 de 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 aplicativo MLflow 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 e excluir aplicativos.

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 parasagemaker-mlflow, e pode, opcionalmente, configurar controles de autorização específicos de ação para controlar permissões de MLflow mais granulares que seus usuários têm em um aplicativo MLflow.

nota

As etapas a seguir pressupõem que você já tenha um ARN para um aplicativo MLflow disponível.

Ações IAM do Data Plane suportadas para aplicativos MLflow

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

  • sábio: CallMlflowAppApi

Permissões do IAM para sincronização e gerenciamento do ciclo de vida do Model Registry

Quando você registra modelos MLflow no SageMaker AI Model Registry, a função de serviço MLflow App IAM exige as seguintes permissões para realizar o registro do modelo, o gerenciamento do ciclo de vida e o rastreamento de linhagem:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:AddTags" ], "Resource": "*" }, { "Sid": "S3ArtifactAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "LineageTracking", "Effect": "Allow", "Action": [ "sagemaker:CreateAction", "sagemaker:AddAssociation" ], "Resource": "*" } ] }

A tabela a seguir descreve o que cada permissão permite:

Ação Finalidade
sagemaker:CreateModelPackageGroup Cria um grupo de pacotes de modelos quando você registra um novo nome de modelo.
sagemaker:DescribeModelPackageGroup Verifica se um grupo de pacotes modelo já existe antes de criar um.
sagemaker:CreateModelPackage Cria um pacote de modelo (versão) quando você registra uma versão do modelo.
sagemaker:UpdateModelPackage Atualiza o estágio e o status do ciclo de vida do pacote modelo quando você define aliases de ciclo de vida.
sagemaker:AddTags Marca o pacote modelo com metadados vinculando-o ao modelo MLflow.
s3:GetObject Lê a especificação de inferência e os artefatos de avaliação do Amazon S3 durante o registro.
sagemaker:CreateAction, sagemaker:AddAssociation Cria associações de linhagem entre o modelo MLflow e o SageMaker AI Model Package. Se faltar, a linhagem é ignorada silenciosamente.

Restrinja as transições do ciclo de vida com chaves de condição do IAM

Você pode usar as chaves de condição do IAM para controlar quais transições do ciclo de vida uma função pode realizar. As seguintes chaves de condição estão disponíveis para a sagemaker:UpdateModelPackage ação:

  • sagemaker:ModelLifeCycle/stage— O estágio do ciclo de vida que está sendo definido. Valores:staging,production.

  • sagemaker:ModelLifeCycle/stageStatus— O status do ciclo de vida que está sendo definido. Valores:pending,active.

Exemplo: negar promoções de produção

A política a seguir impede que uma função promova modelos até o production palco:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "production" } } } ] }

Exemplo: Permitir somente staging/pending transições

A política a seguir restringe uma função a apenas definir modelos para o staging palco com pending status:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "staging", "sagemaker:ModelLifeCycle/stageStatus": "pending" } } } ] }