Herstellen einer Verbindung zu einer Notebook-Instance über einen VPC-Schnittstellenendpunkt - Amazon SageMaker AI

Herstellen einer Verbindung zu einer Notebook-Instance über einen VPC-Schnittstellenendpunkt

Anstatt eine Verbindung über das Internet herzustellen, können Sie einen Schnittstellenendpunkt in Ihrer Virtual Private Cloud (VPC) für die Verbindung mit Ihrer Notebook-Instance verwenden. Wenn Sie einen VPC-Schnittstellenendpunkt verwenden, erfolgt die Kommunikation zwischen Ihrer VPC und der Notebook-Instance vollständig und sicher über das AWS-Netzwerk.

SageMaker Notebook-Instances unterstützen Amazon Virtual Private Cloud (Amazon VPC)-Schnittstellenendpunkte, die von AWSPrivateLink betrieben werden. Jeder VPC-Endpunkt wird durch eine oder mehrere Elastic Network-Schnittstellen mit privaten IP-Adressen in Ihren VPC-Subnetzen repräsentiert.

Anmerkung

Bevor Sie einen Schnittstellen-VPC-Endpunkt zur Verbindung mit einer Notebook-Instance erstellen, erstellen Sie einen Schnittstellen-VPC-Endpunkt zur Verbindung mit dem SageMaker API. Wenn Benutzer CreatePresignedNotebookInstanceUrl aufrufen, um die URL für die Verbindung mit der Notebook-Instance zu erhalten, geht dieser Aufruf auch über den Schnittstellen-VPC-Endpunkt. Weitere Informationen finden Sie unter Verbinden mit SageMaker AI innerhalb Ihrer VPC.

Sie können mit den Befehlen AWS-Managementkonsole oder AWS Command Line Interface (AWS CLI) einen Schnittstellenendpunkt erstellen, um eine Verbindung zu Ihrer Notebook-Instance herzustellen. Anweisungen finden Sie unter Erstellen eines Schnittstellenendpunkts. Stellen Sie sicher, dass Sie einen Schnittstellenendpunkt für alle Subnetze in Ihrer VPC erstellen, von dem aus Sie sich mit der Notebook-Instance verbinden möchten.

Geben Sie bei der Erstellung des Schnittstellenendpunkts aws.sagemaker.Region.notebook als Servicenamen an. Nachdem Sie einen VPC-Endpunkt erstellt haben, aktivieren Sie das private DNS für Ihren VPC-Endpunkt. Jeder, der die SageMaker-API, AWS CLI oder die Konsole verwendet, um sich von der VPC aus mit der Notebook-Instance zu verbinden, verbindet sich mit der Notebook-Instance über den VPC-Endpunkt und nicht über das öffentliche Internet.

SageMaker-Notebook-Instances unterstützen VPC-Endpunkte in allen AWS-Regionen, in denen sowohl Amazon VPC als auch SageMaker AI verfügbar sind.

Um eine Verbindung zu Ihrer Notebook-Instance über Ihre VPC herzustellen, müssen Sie entweder eine Verbindung von einer Instance innerhalb der VPC herstellen oder Ihr privates Netzwerk mit Ihrer VPC verbinden, indem Sie ein AWS Virtual Private Network (Site-to-Site VPN) oder Direct Connect verwenden. Informationen über Site-to-Site VPN finden Sie unter VPN-Verbindungen im Amazon Virtual Private Cloud Benutzerhandbuch. Informationen zu AWS Direct Connect finden Sie unter Erstellen einer Verbindung im AWSDirect Connect-Benutzerhandbuch.

Sie können eine Richtlinie für Amazon VPC-Endpunkte für SageMaker-Notebook-Instances erstellen, um Folgendes festzulegen:

  • Prinzipal, der die Aktionen ausführen kann.

  • Aktionen, die ausgeführt werden können

  • Die Ressourcen, für die Aktionen ausgeführt werden können.

Weitere Informationen finden Sie unter Steuerung des Zugriffs auf Services mit VPC-Endpunkten im Amazon VPC User Guide.

Das folgende Beispiel einer VPC-Endpunktrichtlinie gibt an, dass alle Benutzer, die Zugriff auf den Endpunkt haben, auch auf die Notebook-Instance mit dem Namen myNotebookInstance zugreifen können.

{ "Statement": [ { "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:123456789012:notebook-instance/myNotebookInstance", "Principal": "*" } ] }

Der Zugriff auf weitere Notebook-Instances wird verweigert.

Selbst wenn Sie einen Schnittstellenendpunkt in Ihrer VPC einrichten, können Benutzer außerhalb der VPC sich über das Internet mit der Notebook-Instance verbinden.

Wichtig

Wenn Sie eine IAM-Richtlinie anwenden, die einer der folgenden ähnelt, können Benutzer nicht über die Konsole auf die angegebenen SageMaker-APIs oder die Notebook-Instance zugreifen.

Zum Beschränken des Zugriffs ausschließlich auf Verbindungen von innerhalb Ihrer VPC erstellen Sie eine AWS Identity and Access Management-Richtlinie, die den Zugriff ausschließlich auf Aufrufe beschränkt, die von innerhalb Ihrer VPC ausgehen. Dann fügen Sie diese Richtlinie sämtlichen AWS Identity and Access Management-Benutzern, -Gruppen oder -Rollen hinzu, die für den Zugriff auf die Notebook-Instance verwendet werden.

Anmerkung

Diese Richtlinie erlaubt Verbindungen nur zu Aufrufern innerhalb eines Subnetzes, in dem Sie einen Schnittstellendpunkt erstellt haben.

JSON
{ "Id": "notebook-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableNotebookAccess", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

Wenn Sie den Zugriff auf die Notebook-Instance auf Verbindungen beschränken möchten, die über den Schnittstellenendpunkt hergestellt werden, verwenden Sie den aws:SourceVpce-Bedingungsschlüssel anstelle von aws:SourceVpc:

JSON
{ "Id": "notebook-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableNotebookAccess", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

Beide Richtlinienbeispiele setzen voraus, dass Sie auch einen Schnittstellenendpunkt für die SageMaker-API erstellt haben. Weitere Informationen finden Sie unter Verbinden mit SageMaker AI innerhalb Ihrer VPC. Im zweiten Beispiel ist einer der Werte für aws:SourceVpce die ID des Schnittstellenendpunkts für die Notebook-Instance. Die andere ist die ID des Schnittstellen-Endpunkts für die SageMaker-API.

Zu den Beispielen für Richtlinien gehört DescribeNotebookInstance, denn normalerweise ruft man DescribeNotebookInstance auf, um sich zu vergewissern, dass das NotebookInstanceStatus auch InService ist, bevor man versucht, eine Verbindung herzustellen. Zum Beispiel:

aws sagemaker describe-notebook-instance \ --notebook-instance-name myNotebookInstance { "NotebookInstanceArn": "arn:aws:sagemaker:us-west-2:1234567890ab:notebook-instance/mynotebookinstance", "NotebookInstanceName": "myNotebookInstance", "NotebookInstanceStatus": "InService", "Url": "mynotebookinstance.notebook.us-west-2.sagemaker.aws", "InstanceType": "ml.m4.xlarge", "RoleArn": "arn:aws:iam::1234567890ab:role/service-role/AmazonSageMaker-ExecutionRole-12345678T123456", "LastModifiedTime": 1540334777.501, "CreationTime": 1523050674.078, "DirectInternetAccess": "Disabled" } aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name myNotebookInstance { "AuthorizedUrl": "https://mynotebookinstance.notebook.us-west-2.sagemaker.aws?authToken=AuthToken }
Anmerkung

Das generierte presigned-notebook-instance-url, AuthorizedUrl, kann von überall im Internet genutzt werden.

Für beide Aufrufe müssen Sie die Endpunkt-URL im Aufruf angeben, wenn Sie keine privaten DNS-Hostnamen für Ihren VPC-Endpunkt aktiviert haben oder wenn Sie eine Version des AWS-SDK verwenden, die vor dem 13. August 2018 veröffentlicht wurde. Zum Beispiel lautet der Aufruf von create-presigned-notebook-instance-url:

aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name myNotebookInstance --endpoint-url VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com