Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie schränke ich den Zugriff auf meine SageMaker AI-Notebook-Instance von einer Amazon VPC oder einem Unternehmensnetzwerk aus ein?
Ich möchte den Zugriff auf meine Amazon SageMaker AI-Notebook-Instance von einer Amazon Virtual Private Cloud (Amazon VPC) oder einem Unternehmensnetzwerk aus einschränken.
Lösung
Verwende eine der folgenden Methoden, um den Zugriff auf deine SageMaker AI-Notebook-Instance von einer Amazon VPC oder einem Unternehmensnetzwerk aus einzuschränken.
IAM-Richtlinie verwenden, um zu verhindern, dass eine Identität eine Notebook-Instance startet
Wenn das System eine SageMaker AI-Notebook-Instance startet, führt das System einen CreatePresignedNotebookInstanceUrl-API-Aufruf durch. Um zu verhindern, dass eine Identität eine Notebook-Instance startet, musst du eine AWS Identity and Access Management (IAM)-Richtlinie verwenden. Richte sie so ein, dass sie den Zugriff auf diesen API-Aufruf einzuschränkt.
Führe die folgenden Schritte aus:
- Öffne die IAM-Konsole.
- Wähle im Navigationsbereich Zugriffsmanagement und dann Rollen aus.
- Wähle die Rolle aus, die du mit deiner SageMaker AI-Notebook-Instance verwendest.
- Wähle in den Rollendetails im Abschnitt Berechtigungen die Option Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.
- Wähle JSON aus.
- Verwende die folgende Beispielrichtlinie, um den Zugriff auf einen SageMaker-API-Aufruf zu verweigern:
Hinweis: Diese Richtlinie schränkt den Systemzugriff ein, um alle SageMaker AI-Notebook-Instances zu starten. Wenn die Rolle nur die Erstellung einer ausgewählten Ressource verweigern muss, ändere * in den entsprechenden SageMaker AI-Notebook-Instance-Amazon Resource Name (ARN).{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*" } ] }
SCPs verwenden
Verwende Service-Kontrollrichtlinien (SCPs), um den Zugriff auf API-Aufrufe einzuschränken. Du kannst eine Richtlinie verwenden, die der in Schritt 6 des vorherigen Verfahrens genannten Richtlinie ähnelt, und die Schritte unter Anhängen von Organisationsrichtlinien an AWS-Organisationen befolgen.
Du kannst auch eine VPC-Endpunktrichtlinie aktualisieren, um ein Notebook zu sperren. Auf diese Weise ist das Notebook nur verfügbar, wenn die Internet- und Root-Zugriffsoptionen ausgeschaltet sind.
Verwende eine VPC-Endpunktrichtlinie
Du kannst eine VPC-Konfiguration verwenden, um Zugriffsebenen für deine Notebook-Instances festzulegen.
Gehe von einem Szenario aus, in dem du versuchst, über eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance auf die Notebook-Instances zuzugreifen. Diese Amazon EC2-Instance wird in der Regel innerhalb einer VPC erstellt, um eine Sicherheitsvereinbarung in einer Unternehmensumgebung aufrechtzuerhalten. Führe in diesem Szenario die folgenden Schritte aus:
- Öffne die Amazon VPC-Konsole.
- Wähle PrivateLink und Lattice und dann Endpunkte aus.
- Wähle den VPC-Endpunkt aus, den du für den Zugriff auf das Notebook mit den erforderlichen Einschränkungen verwenden möchtest.
- Um die VPC-Endpunktrichtlinie zu bearbeiten, wähle Aktionen und dann Zugriff verwalten aus.
- Wende eine VPC-Endpunktrichtlinie auf den VPC-Endpunkt an, mit der du eine Verbindung zu den Notebook-Instances herstellen kannst.
Beispiel:
Dies ermöglicht den Zugriff auf diese Notebook-Instance nur über den VPC-Endpunkt: „arn:aws:sagemaker:us-west-2:123456789012:notebook-instance/myNotebookInstance“.{ "Statement": [ { "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Effect": "Allow", "Resource": "arn:aws:sagemaker:us-west-2:123456789012:notebook-instance/myNotebookInstance", "Principal": "*" } ] } - Verwende die folgenden Befehle, um auf die Notebook-Instance zuzugreifen, auf die du den Zugriff beschränkt hast. Wenn du die VPC_Endpoint_ID angibst, wird die Richtlinie wirksam und schränkt den Zugriff auf die Ressourcen gemäß deinen Anforderungen ein:
aws sagemaker describe-notebook-instance \ --notebook-instance-name myNotebookInstance { "NotebookInstanceArn": "arn:aws:sagemaker:us-west-2:123456789023:notebook-instance/mynotebookinstance", "NotebookInstanceName": "myNotebookInstance", "NotebookInstanceStatus": "InService", "Url": "mynotebookinstance.notebook.us-west-2.sagemaker.aws", "InstanceType": "ml.m4.xlarge", "RoleArn": "arn:aws:iam::123456789023:role/service-role/AmazonSageMaker-ExecutionRole-12345678T123456", "LastModifiedTime": 1540334777.501, "CreationTime": 1523050674.078, "DirectInternetAccess": "Disabled" }
Eine Notebook-Ausführungsrolle verwenden
Um den Zugriff auf Verbindungen einzuschränken, die nur innerhalb der VPC hergestellt werden, erstelle eine IAM-Richtlinie, die den Zugriff auf Aufrufe beschränkt, die aus deiner VPC kommen. Wenn du die Notebook-Instance erstellst, ruft der IAM-Benutzer, mit dem du angemeldet bist, CreatePresignedNotebookInstanceUrl auf. Du kannst diese Identität mit dem folgenden Berechtigungssatz aktualisieren. Führe die folgenden Schritte aus:
- Öffne die IAM-Konsole.
- Wähle Zugriffsmanagement und dann Benutzer aus und gib den Benutzernamen ein, mit dem du dich bei der IAM-Konsole anmeldest.
- Verwende den Rollennamen, um die Rolle zu öffnen. Gehe anschließend zu Berechtigungen, wähle Berechtigungen hinzufügen und dann Inline-Richtlinie erstellen aus.
- Verwende den JSON-Editor auf der Seite des Richtlinien-Editors, um die folgende Beispielrichtlinie anzuhängen:
{ "Id": "notebook-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable Notebook Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }
In dieser Beispielrichtlinie ist der API-Aufruf nur zulässig, wenn die Aufrufe für den Zugriff auf die Notebook-Instance von „vpc-111bbaaa“ aus erfolgen. Andernfalls wird der Anruf abgelehnt.
Hinweis: Der Anrufer muss sich in dem Subnetz befinden, das über den Schnittstellenendpunkt eine Verbindung zu Notebooks hat.
Anstatt über die VPC kannst du die VPC-Schnittstellenendpunkte verwenden, um die Verbindung einzurichten.
Beispiel:
{ "Id": "notebook-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable Notebook Access", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl", "sagemaker:DescribeNotebookInstance" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }
Diese Richtlinie wird für den IAM-Benutzer festgelegt, den du zum Erstellen der Notebook-Instance verwendest. Wenn ein Benutzer diese Rolle annimmt und versucht, auf das Notebook zuzugreifen, wird ihm der Zugriff nur gewährt, wenn er die Schnittstellenendpunkte „vpce-111bbccc“ oder „vpce-111bbddd“ verwendet.
Verwende den folgenden Befehl, um über die VPC-Endpunkte auf eine Notebook-Instance zuzugreifen, nachdem du die IAM-Richtlinie erstellt hast:
aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name myNotebookInstance --endpoint-url VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com
Du kannst ähnliche VPC-Subnetzkonfigurationen verwenden, um den Zugriff auf Notebook-Instances anstelle von VPC-Endpunkten oder VPCs einzuschränken. Verwende dazu das Tag „sagemaker:VpcSubnets“ im Bedingungsblock und gib die entsprechende Subnetz-ID an.
Privates Netzwerk verwenden
Um eine Verbindung zu einer Notebook-Instance herzustellen, die sich in einer VPC befindet, kannst du die folgenden Aktionen ausführen:
- Stelle eine Verbindung über eine unterstützte Ressource her, die sich in einer VPC befindet.
- Verwende AWS VPN oder AWS Direct Connect, um das private Netzwerk mit der VPC zu verbinden.
Informationen zum Einrichten des Notebooks mit einem privaten Netzwerk findest du unter Dein privates Netzwerk mit deiner VPC verbinden.
Ressourcen-Tags verwenden
Du kannst IAM-Richtlinien mit Ressourcen-Tags erstellen, um eine Zugriffskontrolle einzurichten, die auch als attributebasierte Zugriffskontrolle (ABAC) bezeichnet wird. Verwende Tags, um den Zugriff auf bestimmte Benutzergruppen einzuschränken.
Beispielszenario: Team 1 arbeitet an Projekt A. Team 2 arbeitet an Projekt B. Du bist ein Unternehmensadministrator und möchtest aus Vertraulichkeits- und Sicherheitsgründen nicht, dass eines der Teams auf die Notebook-Instances des anderen Teams zugreift. Gehe wie folgt vor, um die Infrastruktur für diese Situation einzurichten:
-
Füge der SageMaker AI-Notebook-Instance, die Team A verwendet, ein Tag mit dem folgenden Schlüssel-Wert-Paar hinzu: {"Project":"A"}
-
Füge der SageMaker AI-Notebook-Instance, die Team B verwendet, ein Tag mit dem folgenden Schlüssel-Wert-Paar hinzu: {"Project":"B"}
-
Weise Team 1 und Team 2 unterschiedliche Rollen für den Zugriff auf SageMaker AI zu.
-
Verwende für die Rolle, die Team A für den Zugriff auf die Notebook-Instance verwendet, die folgende IAM-Richtlinie, um den Zugriff auf Projekt B einzuschränken:
{ "Effect": "Deny", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "B" } } } -
Verwende für die Rolle, die Team B für den Zugriff auf die Notebook-Instance verwendet, die folgende IAM-Richtlinie, um den Zugriff auf Projekt A einzuschränken:
{ "Effect": "Deny", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "A" } } }Hinweis: Wenn du den Zugriff auf Notebook-Instances für verschiedene Benutzer einschränken möchtest, verwende das Ressourcen-Tag aws:username für die Benutzer, um Einschränkungen festzulegen.
Die folgende Beispielrichtlinie verweigert einem bestimmten Benutzer den Zugriff, sodass er eine Notebook-Instance nicht starten, beenden oder beschreiben kann. Außerdem wird der Benutzer daran gehindert, vorsignierte URLs zu generieren. Weitere Informationen findest du unter Steuern des Zugriffs auf SageMaker AI-Ressourcen mithilfe von Tags.{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "sagemaker:StartNotebookInstance", "sagemaker:StopNotebookInstance", "sagemaker:DescribeNotebookInstance", "sagemaker:CreatePresignedNotebookInstanceUrl" ], "Resource": "*", "Condition": { "StringNotEquals": { "sagemaker:ResourceTag/owner": "${aws:username}" } } } ] }Verwende eine Zulassungsliste und ein Proxy-Setup für IP-Adressen
Stelle dir ein Szenario vor, in dem du einen Proxy verwendest, um die IP-Adressen festzulegen, die Verbindungen für dein Unternehmensnetzwerk zulassen. Verwende in diesem Szenario allowlist, um die IP-Adressen für die Notebooks festzulegen, für die du auf verschiedene Ressourcen zugreifen möchtest.
Wenn du beispielsweise dein Notebook in einem CIDR-Bereich von 172.31.0.0 bis 172.31.0.16 erstellst, lasse nur diesen CIDR-Block in deinem Proxy zu.
Die IP-Adresse für das Notebook ist dynamisch und wird auf der Grundlage des Subnetzes zugewiesen, das mit der Notebook-Instance verbunden ist. Verwende den Befehl route -n, um die IP-Adresse des Notebooks zu ermitteln. Weitere Informationen findest du unter Grundlegendes zu Netzwerkkonfigurationen von Amazon SageMaker-Notebook-Instances und erweiterten Routing-Optionen.
Hinweis: Dieses Szenario ist nur möglich, wenn du ein Subnetz an das Notebook anschließt.
- Tags
- Amazon SageMaker
- Sprache
- Deutsch
