Use um registro do Docker que exija autenticação para treinamento - Amazon SageMaker

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á.

Use um registro do Docker que exija autenticação para treinamento

Se o registro do Docker exigir autenticação, você deverá criar uma AWS Lambda função que forneça credenciais de acesso a. SageMaker Em seguida, crie um trabalho de treinamento e forneça o ARN dessa função do Lambda dentro da API create_training_job. Por fim, você pode criar opcionalmente um Endpoint de interface da VPC para que sua VPC possa se comunicar com a função do Lambda sem enviar tráfego pela Internet. O guia a seguir mostra como criar uma função do Lambda, atribuir a ela a função correta e criar um Endpoint de interface da VPC.

Criar a função do Lambda

Crie uma AWS Lambda função que transmita as credenciais de acesso 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.

O IamRole que você usa na create_training_job API precisa ter permissão para chamar uma AWS Lambda função. 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 AmazonSageMakerFullAccessgerenciada 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 SageMaker treinamento chamará sua função 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.