Utilizar un registro de Docker que requiera autenticación para el entrenamiento - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilizar un registro de Docker que requiera autenticación para el entrenamiento

Si su registro de Docker requiere autenticación, debe crear una AWS Lambda función que proporcione credenciales de acceso a. SageMaker A continuación, cree un trabajo de entrenamiento y proporcione el ARN de esta función de Lambda dentro de la API create_training_job. Por último, si lo desea, puede crear un punto de conexión de VPC de interfaz para que su VPC pueda comunicarse con su función de Lambda sin enviar tráfico a través de Internet. En la siguiente guía se muestra cómo crear una función de Lambda, asignarle la función correcta y crear un punto de conexión de VPC de interfaz.

Crear la función de Lambda

Cree una AWS Lambda función que transmita las credenciales de acceso SageMaker y devuelva una respuesta. En el siguiente ejemplo de código se crea el controlador de funciones de Lambda, de la siguiente manera.

def handler(event, context): response = { "Credentials": {"Username": "username", "Password": "password"} } return response

El tipo de autenticación utilizado para configurar el registro privado de Docker determina el contenido de la respuesta que devuelve la función de Lambda como se muestra a continuación.

  • Si su registro privado de Docker utiliza la autenticación básica, la función de Lambda devolverá el nombre de usuario y la contraseña necesarios para autenticarse en el registro.

  • Si su registro privado de Docker utiliza la autenticación por token de portador, el nombre de usuario y la contraseña se envían a su servidor de autorización, que luego devuelve un token de portador. Luego, este token se usa para autenticarse en su registro privado de Docker.

nota

Si tiene más de una función de Lambda para sus registros en la misma cuenta y el rol de ejecución es el mismo para sus trabajos de entrenamiento, los trabajos de entrenamiento para el registro uno tendrían acceso a las funciones de Lambda de los demás registros.

Conceda el permiso de rol correcto a la función de Lambda.

El iamRole que utilices en la create_training_job API debe tener permiso para llamar a una AWS Lambda función. En el siguiente ejemplo de código, se muestra cómo asociar una política de un rol de IAM para llamar a myLambdaFunction.

{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*myLambdaFunction*" ] }

Para obtener más información acerca de cómo editar la política de permisos de un rol, consulte Modificación de una política de permisos de rol (consola) en la Guía del usuario de AWS Identity and Access Management.

nota

Un rol de IAM con una política AmazonSageMakerFullAccessgestionada adjunta tiene permiso para llamar a cualquier función de Lambda que tenga SageMaker «» en su nombre.

Crear un punto de conexión de VPC de la interfaz para Lambda

Si crea un punto de conexión de interfaz, su VPC de Amazon puede comunicarse con su función de Lambda sin enviar tráfico a través de Internet. Para obtener más información, consulte Configuración de puntos de conexión de VPC de interfaz para Lambda en la AWS Lambda Guía para desarrolladores.

Una vez creado el punto final de la interfaz, la SageMaker formación llamará a la función Lambda enviando una solicitud a través de la VPC a. lambda.region.amazonaws.com Si selecciona Enable DNS Name (Habilitar nombre de DNS) al crear el punto de conexión de la interfaz, Amazon Route 53 dirige la llamada al punto de conexión de la interfaz de Lambda. Si utiliza un proveedor de DNS diferente, debe asignar lambda.region.amazonaws.com al punto de conexión de la interfaz de Lambda.