Configurar autenticação da AWS para implantação do SageMaker
Este artigo descreve como configurar instance profiles para permitir que você implemente modelos do MLflow no AWS SageMaker.É possível usar chaves de acesso para um usuário da AWS com permissões semelhantes às da IAM role especificada aqui, mas a Databricks recomenda o uso de instance profiles para dar permissão para implantar um cluster no SageMaker.
Etapa 1: criar uma IAM role da AWS e anexar a política de permissão do SageMaker
No console da AWS, acesse o serviço IAM .
Clique na guia Funções na barra lateral.
Clique em Criar função.
Em Selecionar tipo de entidade confiável, selecione Serviço da AWS.
Em Escolher o serviço que utilizará essa função, clique no serviço EC2.
Clique em Próximo: permissões.
Na tela Anexar políticas de permissões, selecione AmazonSageMakerFullAccess.
Clique em Próximo: revisão.
No campo Nome da função, insira um nome de papel.
Clique em Criar função.
Na lista Funções, clique no nome da função.
Anote o ARN da sua função, que tem o formato arn:aws:iam::<account-id>:role/<role-name>
.
Etapa 2: adicionar uma política embutida para acessar os recursos de implantação do SageMaker
Adicione uma política à função.
Clique em .
Cole a seguinte definição JSON:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObjectAcl", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::mlflow-sagemaker-*-<account-id>", "arn:aws:s3:::mlflow-sagemaker-*-<account-id>/*" ], "Effect": "Allow" }, { "Action": [ "iam:GetRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<role-name>" ], "Effect": "Allow" }, { "Action": [ "ecr:DescribeGitRepositories" ], "Resource": [ "arn:aws:ecr:*:<account-id>:repository/*" ], "Effect": "Allow" } ] }
Essas permissões são necessárias para permitir que o cluster Databricks:
Obtenha o ARN canônico da nova função.
Faça upload de objetos com escopo de permissão para o S3 para uso pelos servidores de endpoint do SageMaker.
As permissões da função terão a seguinte aparência:
Etapa 3: atualizar a política de confiança da função
Adicione iam:AssumeRole
acesso ao sagemaker.amazonaws.com
.
Acesse Resumo da função > Relações de confiança > Editar relação de confiança.
Cole e salve o seguinte JSON:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Os relacionamentos de confiança da sua função devem se assemelhar ao seguinte:
Etapa 4: permitir que a função Databricks workspace AWS passe a função
Acesse sua função Databricks workspace AWS.
Clique em .
Cole e salve a seguinte definição JSON:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<role-name>" ], "Effect": "Allow" } ] }
em que account-id
é o ID da account que executa o serviço AWS SageMaker e role-name
é a função que você definiu na Etapa 1.
Etapa 5: criar um instance profile de clusters da Databricks
Nas configurações de administrador do Databricks workspace , acesse Security tab e clique em gerenciar ao lado de instance profile.
Clique em Add instance profile (Adicionar perfil de instância).
Cole o ARN do instance profile associado à função da AWS que você criou. Esse ARN tem o formato
arn:aws:iam::<account-id>:instance-profile/<role-name>
e pode ser encontrado no console da AWS:Clique no botão Adicionar .
Para obter detalhes, consulte tutorial: Configure o acesso S3 com um instance profile.
Etapa 6: iniciar um cluster com o instance profile
Veja o perfil da instância.