Use um registro do Docker que exija autenticação para treinamento
Se seu registro do Docker exigir autenticação, você deverá criar uma função AWS Lambda que forneça credenciais de acesso ao SageMaker. Em seguida, crie um trabalho de treinamento e forneça o ARN dessa função do Lambda dentro da API create_training_job
Criar a função do Lambda
Crie uma função AWS Lambda que transmita as credenciais de acesso ao SageMaker e retorne uma resposta. O exemplo de código a seguir cria o manipulador da função do Lambda, da seguinte forma.
def handler(event, context): response = { "Credentials": {"Username": "username", "Password": "password"} } return response
O tipo de autenticação usado para configurar o registro privado do Docker determina o conteúdo da resposta retornada pela função do Lambda da seguinte forma.
-
Se seu registro privado do Docker usar autenticação básica, a função Lambda retornará o nome de usuário e a senha necessários para se autenticar no registro.
-
Se o seu registro privado do Docker usar a autenticação do token do portador
, o nome de usuário e a senha serão enviados ao seu servidor de autorização, que então retornará um token do portador. Esse token é então usado para se autenticar em seu registro privado do Docker.
nota
Se você tiver mais de uma função do Lambda para seus registros na mesma conta e a função de execução for a mesma para seus trabalhos de treinamento, os trabalhos de treinamento para registro terão acesso às funções do Lambda para outros registros.
Conceda as permissões de função corretas para a função do Lambda.
A Função do IAM que você usa na API create_training_job
precisa ter permissão para chamar uma função AWS Lambda. O exemplo de código a seguir mostra como estender uma política de permissões a uma função do IAM para chamar myLambdaFunction
.
{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*myLambdaFunction*" ] }
Para saber mais sobre como editar uma política de permissões de uma função, consulte Modificar a política de permissões de uma função (console), no Guia do usuário do Gerenciamento de acesso do AWS.
nota
Uma função do IAM com uma política gerenciada do AmazonSageMakerFullAccess anexada tem permissão para chamar qualquer função do Lambda com “SageMaker” em seu nome.
Criar um Endpoint de interface da VPC para o Lambda
Se você criar um endpoint de interface, a Amazon VPC poderá se comunicar com a função do Lambda sem enviar tráfego pela Internet. Para obter mais informações, consulte Configurar endpoints da VPC de interface para o Lambda no Guia do desenvolvedor AWS Lambda.
Depois que seu endpoint de interface for criado, o treinamento do SageMaker chamará sua função do Lambda enviando uma solicitação por meio de sua VPC para lambda.region.amazonaws.com
. Se você selecionar Habilitar nome DNS ao criar seu endpoint de interface, o Amazon Route 53 roteará a chamada para o endpoint da interface Lambda. Se você usar um provedor de DNS diferente, deverá relacionar o lambda.region.amazonaws.co
ao endpoint da interface Lambda.