Configurar a autenticação do AWS para a implantação do SageMaker
Este artigo descreve como configurar o perfil da instância para permitir que o senhor implante modelosMLflow em AWS SageMaker. É possível usar a chave de acesso para um usuário AWS com permissões semelhantes às do IAM role especificadas aqui, mas o Databricks recomenda usar o perfil da instância para dar uma permissão de clustering para ser implantado no SageMaker.
Etapa 1: Criar um site AWS IAM role 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 em linha para acesso ao recurso de implantação do SageMaker
Adicione uma política à função.
-
Clique
.
-
Cole a seguinte definição JSON:
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:
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: Permita que sua função Databricks workspace AWS passe a função
-
Acesse sua funçãoDatabricks workspace AWS.
-
Clique
.
-
Cole e salve a seguinte definição JSON:
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 clustering Databricks instance profile
-
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 o tutorial: Configurar o acesso S3 com um instance profile.
Etapa 6: Inicie um clustering com o comando instance profile
Veja o perfil da instância.