Verwenden Sie eine Docker-Registry, für die eine Authentifizierung für das Training erforderlich ist - Amazon SageMaker AI

Verwenden Sie eine Docker-Registry, für die eine Authentifizierung für das Training erforderlich ist

Wenn Ihre Docker-Registry eine Authentifizierung erfordert, müssen Sie eine AWS Lambda Funktion erstellen, die Zugangsdaten für SageMaker AI bereitstellt. Erstellen Sie dann einen Trainingsauftrag und geben Sie den ARN dieser Lambda-Funktion in der create_training_job-API an. Schließlich können Sie optional einen VPC-Schnittstellen-Endpunkt erstellen, sodass Ihre VPC mit Ihrer Lambda-Funktion kommunizieren kann, ohne Datenverkehr über das Internet zu senden. Die folgende Anleitung zeigt, wie Sie eine Lambda-Funktion erstellen, ihr die richtige Rolle zuweisen und einen Schnittstellen-VPC-Endpunkt erstellen.

So erstellen Sie die Lambda-Funktion:

Erstellen Sie eine AWS Lambda Funktion, die Zugangsdaten an SageMaker AI weitergibt und eine Antwort zurückgibt. Im folgenden Codebeispiel wird der Lambda-Funktionshandler wie folgt erstellt.

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

Die Art der Authentifizierung, die zum Einrichten Ihrer privaten Docker-Registry verwendet wird, bestimmt den Inhalt der Antwort, die von Ihrer Lambda-Funktion zurückgegeben wird, wie folgt.

  • Wenn Ihre private Docker-Registry die Standardauthentifizierung verwendet, gibt die Lambda-Funktion den Benutzernamen und das Passwort zurück, die für die Authentifizierung bei der Registrierung erforderlich sind.

  • Wenn Ihre private Docker-Registry die Bearer-Token-Authentifizierung verwendet, werden der Benutzername und das Passwort an Ihren Autorisierungsserver gesendet, der dann ein Bearer-Token zurückgibt. Dieses Token wird dann zur Authentifizierung bei Ihrer privaten Docker-Registry verwendet.

Anmerkung

Wenn Sie mehr als eine Lambda-Funktion für Ihre Verzeichnisse in demselben Konto haben und die Ausführungsrolle für Ihre Trainingsaufträge dieselbe ist, dann hätten Trainingsaufträge für Registry One Zugriff auf die Lambda-Funktionen für andere Verzeichnisse.

Gewähren Sie der Lambda-Funktion die korrekte Rolle.

Die IAMrole, die Sie in der create_training_job API verwenden, muss berechtigt sein, eine AWS Lambda Funktion aufzurufen. Das folgende Codebeispiel zeigt, wie die Berechtigungsrichtlinie einer IAM-Rolle erweitert werden kann, um myLambdaFunction aufzurufen.

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

Weitere Informationen zum Bearbeiten von Rollenberechtigungsrichtlinien finden Sie unter Modifizierung einer Rollenberechtigungsrichtline (Konsole) in dem AWS Benutzerhandbuch für Identitäts- und Zugriffsmanagement.

Anmerkung

Eine IAM-Rolle mit einer angehängten verwalteten AmazonSageMaker AIFullAccess-Richtlinie ist berechtigt, jede Lambda-Funktion aufzurufen, deren Name „SageMaker AI“ enthält.

So erstellen Sie einen Schnittstellen-VPC-Endpunkt für Lambda

Wenn Sie einen Schnittstellenendpunkt erstellen, kann Ihre Amazon VPC mit Ihrer Lambda-Funktion kommunizieren, ohne Datenverkehr über das Internet zu senden. Weitere Informationen finden Sie unterKonfigurieren von Schnittstellen-VPC-Endpunkten für LambdaimAWS LambdaEntwicklerhandbuch.

Nachdem Ihr Schnittstellenendpunkt erstellt wurde, ruft das SageMaker-Training Ihre Lambda-Funktion auf, indem eine Anfrage über Ihre VPC an gesendet wird. lambda.region.amazonaws.com Wenn Sie bei der Erstellung Ihres Schnittstellenendpunkts die Option DNS-Name aktivieren auswählen, leitet Amazon Route 53 den Anruf an den Lambda-Schnittstellenendpunkt weiter. Wenn Sie einen anderen DNS-Anbieter verwenden, müssen Sie lambda.region.amazonaws.co, Ihrem Lambda-Schnittstellenendpunkt zuordnen.