Cloud-Sicherheit hat bei AWS höchste Priorität. Amazon SageMaker-Studio bietet verschiedene Mechanismen zum Schutz Ihrer Daten und Ihres Codes durch die Integration mit AWS-Sicherheitsdiensten wie z AWS Identity and Access Management and (ICH BIN), AWS-Schlüsselverwaltungsservice (AWS KMS) oder Netzwerkisolation mit Amazon Virtual Private Cloud (Amazon-VPC).
Kunden in stark regulierten Branchen wie Finanzdienstleistern können dies tun Richten Sie Studio nur in VPC ein -Modus, um die Netzwerkisolierung zu aktivieren und den Internetzugang von Studio-Notebooks zu deaktivieren. Sie können die IAM-Integration mit Studio verwenden, um zu steuern, welche Benutzer Zugriff auf Ressourcen wie Studio-Notebooks, die Studio-IDE oder Amazon Sage Maker Ausbildungsberufe.
Ein beliebter Anwendungsfall ist to schränken Sie den Zugriff auf die Studio-IDE ein nur für Benutzer innerhalb eines bestimmten Netzwerk-CIDR-Bereichs oder einer bestimmten VPC. Sie können dies erreichen, indem Sie implementieren IAM-identitätsbasierte SageMaker-Richtlinien und Anhängen dieser Richtlinien an die IAM-Benutzer oder -Gruppen, die diese Berechtigungen benötigen. Die SageMaker-Domäne muss jedoch mit konfiguriert werden IAM-Authentifizierungsmodus, da die identitätsbasierten IAM-Richtlinien in nicht unterstützt werden AWS-Einzelanmeldung (SSO) Authentifizierungsmodus.
Viele Kunden verwenden AWS SSO, um eine zentralisierte Kontrolle der Personalidentität zu ermöglichen und eine konsistente Benutzeranmeldung zu ermöglichen. Dieser Beitrag zeigt, wie Sie diesen Anwendungsfall implementieren und gleichzeitig die AWS-SSO-Funktionen für den Zugriff auf Studio beibehalten.
Lösungsüberblick
Wenn Sie eine SageMaker-Domäne im reinen VPC-Modus einrichten und die Subnetze und Sicherheitsgruppen angeben, erstellt SageMaker elastische Netzwerkschnittstellen (ENIs), die Ihren Sicherheitsgruppen in den angegebenen Subnetzen zugeordnet sind. ENIs ermöglichen es Ihren Trainingscontainern, sich mit Ressourcen in Ihrer VPC zu verbinden.
In diesem Modus ist der direkte Internetzugang von Notebooks vollständig deaktiviert und der gesamte Datenverkehr wird über eine ENI in Ihrer privaten VPC geleitet. Dazu gehört auch der Datenverkehr von Studio-UI-Widgets und -Schnittstellen – wie Experimentverwaltung, Autopilot und Modellüberwachung – zu ihren jeweiligen Back-End-SageMaker-APIs. AWS empfiehlt die Verwendung des Nur-VPC-Modus, um eine feinkörnige Kontrolle über den Netzwerkzugriff von Studio auszuüben.
Die erste Herausforderung besteht darin, dass, obwohl Studio ohne Internetverbindung bereitgestellt wird, immer noch von überall aus auf die Studio-IDE zugegriffen werden kann, sofern der Zugriff auf die AWS-Managementkonsole und Studio wird einem IAM-Prinzipal gewährt. Diese Situation ist nicht akzeptabel, wenn Sie Studio vollständig von einem öffentlichen Netzwerk isolieren und die gesamte Kommunikation in einer streng kontrollierten privaten VPC enthalten möchten.
Um dieses Problem anzugehen und jeglichen Zugriff auf die Studio-IDE außer von einer bestimmten VPC oder einem CIDR-Bereich zu deaktivieren, können Sie die CreatePresignedDomainUrl SageMaker-API. Die zum Aufrufen dieser API verwendete IAM-Rolle oder der Benutzer definiert die Berechtigungen für den Zugriff auf Studio. Jetzt können Sie identitätsbasierte IAM-Richtlinien verwenden, um die gewünschte Zugriffskonfiguration zu implementieren. Um beispielsweise den Zugriff nur von einer bestimmten VPC zu ermöglichen, fügen Sie die folgende Bedingung zur IAM-Richtlinie hinzu, die einem IAM-Prinzipal zugeordnet ist, der zum Generieren einer vorsignierten Domänen-URL verwendet wird:
Um den Zugriff nur von einem bestimmten VPC-Endpunkt oder Endpunkten zu ermöglichen, geben Sie die folgende Bedingung an:
Verwenden Sie die folgende Bedingung, um den Zugriff auf einen bestimmten CIDR-Bereich zu beschränken:
Die zweite Herausforderung besteht darin, dass die IAM-basierte Zugriffskontrolle nur funktioniert, wenn die SageMaker-Domäne im IAM-Authentifizierungsmodus konfiguriert ist; Sie können es nicht verwenden, wenn die SageMaker-Domäne im AWS SSO-Modus bereitgestellt wird. Der nächste Abschnitt zeigt, wie Sie diese Herausforderungen angehen und eine IAM-basierte Zugriffskontrolle mit AWS SSO-Zugriff auf Studio implementieren.
Architektur Überblick
Studio wird als SAML-Anwendung veröffentlicht, die einem bestimmten SageMaker Studio-Benutzerprofil zugewiesen wird. Benutzer können bequem direkt über das AWS SSO-Portal auf Studio zugreifen, wie im folgenden Screenshot gezeigt.
Die Lösung integriert sich mit a benutzerdefinierte SAML 2.0-Anwendung als Mechanismus zum Auslösen der Benutzerauthentifizierung für Studio. Es erfordert, dass die benutzerdefinierte SAML-Anwendung mit konfiguriert ist Amazon API-Gateway Endpunkt-URL als Assertion Consumer Service (ACS) und benötigt Zuordnungsattribute, die die AWS SSO-Benutzer-ID sowie die SageMaker-Domänen-ID enthalten.
Der API Gateway-Endpunkt ruft eine auf AWS Lambda Funktion, die die SAML-Antwort parst, um die Domänen-ID und die Benutzer-ID zu extrahieren und sie zum Generieren einer vorsignierten Studio-URL zu verwenden. Die Lambda-Funktion führt schließlich eine Umleitung über eine HTTP 302-Antwort durch, um den Benutzer in Studio anzumelden.
Eine IAM-Richtlinie steuert die Netzwerkumgebung, in der sich Studio-Benutzer anmelden dürfen, einschließlich einschränkender Bedingungen, wie im vorherigen Abschnitt beschrieben. Diese IAM-Richtlinie ist an die Lambda-Funktion angehängt. Die IAM-Richtlinie enthält eine Berechtigung zum Aufrufen der sagemaker:CreatePresignedDomainURL
API nur für ein bestimmtes Benutzerprofil:
Das folgende Diagramm zeigt die Lösungsarchitektur.
Die Lösung stellt eine SageMaker-Domäne in Ihrer privaten VPC bereit und VPC-Endpunkte um über eine private Verbindung auf Studio, die SageMaker-Laufzeitumgebung und die SageMaker-API zuzugreifen, ohne dass ein Internet-Gateway erforderlich ist. Die VPC-Endpunkte sind mit aktiviertem privatem DNS konfiguriert (PrivateDnsEnabled=True
) zu verbinden a private gehostete Zone mit Ihrer VPC. Dadurch kann Studio unter Verwendung des öffentlichen Standard-DNS-Namens auf die SageMaker-API zugreifen api.sagemaker.<Region>.amazonaws.com
in die private IP-Adresse des Endpunkts aufgelöst, anstatt die VPC-Endpunkt-URL zu verwenden.
Sie müssen Ihrer VPC VPC-Endpunkte hinzufügen, wenn Sie auf andere AWS-Services wie z Amazon Simple Storage-Service (Amazon S3), Amazon Elastic Container-Registrierung (Amazon ECR), AWS-Sicherheitstoken-Service (AWS STS), AWS CloudFormation, oder AWS-CodeCommit.
Sie können die Berechtigungen, die zum Generieren der vorsignierten URL und aller anderen API-Aufrufe mit IAM-Richtlinien verwendet werden, die an die Lambda-Funktionsausführungsrolle angehängt sind, vollständig steuern oder den Zugriff auf jeden verwendeten AWS-Service über steuern VPC-Endpunktrichtlinien. Beispiele für die Verwendung von IAM-Richtlinien zur Steuerung des Zugriffs auf die Studio- und SageMaker-API finden Sie unter Steuern Sie den Zugriff auf die SageMaker-API mithilfe identitätsbasierter Richtlinien.
Obwohl die Lösung erfordert, dass die Studio-Domäne im IAM-Modus bereitgestellt wird, ermöglicht sie die Verwendung von AWS SSO als Mechanismus für die Anmeldung von Endbenutzern bei Studio.
Die folgenden Unterabschnitte enthalten detaillierte Beschreibungen der Hauptkomponenten der Lösung.
API-Gateway
Der API Gateway-Endpunkt fungiert als Ziel für die Anwendungs-ACS-URL, die in der benutzerdefinierten SAML 2.0-Anwendung konfiguriert ist. Der Endpunkt ist privat und hat eine Ressource namens /saml
und eine POST-Methode mit als Lambda-Proxy konfigurierter Integrationsanforderung. Die Lösung verwendet einen VPC-Endpunkt mit einem konfigurierten com.amazonaws.<region>.execute-api
DNS-Name zum Aufrufen dieses API-Endpunkts innerhalb der VPC.
AWS-SSO
Eine benutzerdefinierte SAML 2.0-Anwendung wird mit der API Gateway-Endpunkt-URL konfiguriert https:/{ restapi-id}.execute-api.amazonaws.com/saml
als seine Anwendungs-ACS-URL und verwendet Attributzuordnungen mit den folgenden Anforderungen:
- Benutzerkennung:
- Benutzerattribut in der Anwendung - Nutzername
- Ordnet das Benutzerattribut in AWS SSO zu -
${user:AD_GUID}
- SageMaker-Domänen-ID-Kennung:
- Benutzerattribut in der Anwendung -
domain-id
- Ordnet das Benutzerattribut in AWS SSO zu – Domänen-ID für die Studio-Instanz
- Benutzerattribut in der Anwendung -
Die Anwendung implementiert die Zugriffskontrolle für einen AWS SSO-Benutzer, indem sie ein Studio-Benutzerprofil mit dem Namen bereitstellt, der der AWS SSO-Benutzer-ID entspricht.
Lambda-Funktion
Die Lösung konfiguriert eine Lambda-Funktion als Aufrufpunkt für das API-Gateway /saml
Ressource. Die Funktion analysiert die SAMLResponse
von AWS SSO gesendet, extrahiert die domain-id
sowie den Benutzernamen und ruft die auf createPresignedDomainUrl
SageMaker-API zum Abrufen der Studio-URL und des Tokens und Umleiten des Benutzers zur Anmeldung mit einer HTTP 302-Antwort. Die Lambda-Funktion hat eine spezifische IAM-Richtlinie, die an ihre Ausführungsrolle angehängt ist, die die sagemaker:createPresignedDomainUrl
Aktion nur, wenn sie von einem bestimmten Netzwerk-CIDR-Bereich mithilfe von angefordert wird VpcSourceIp
Zustand.
Die Lambda-Funktion hat keine Logik zum Validieren der SAML-Antwort, beispielsweise zum Prüfen einer Signatur. Da der als ACS dienende API Gateway-Endpunkt jedoch nur privat oder intern ist, ist er für diese Proof-of-Concept-Umgebung nicht zwingend erforderlich.
Stellen Sie die Lösung bereit
Das GitHub-Repository stellt den vollständigen Quellcode für die End-to-End-Lösung bereit.
Um die Lösung bereitzustellen, müssen Sie über Administrator- (oder Hauptbenutzer-) Berechtigungen für ein AWS-Konto verfügen und die AWS-Befehlszeilenschnittstelle (AWS CLI) und AWS SAM-CLI und minimal Python 3.8.
Die Lösung unterstützt die Bereitstellung in drei AWS-Regionen: eu-west-1
, eu-central-1
und us-east-1
. Stellen Sie sicher, dass Sie eine dieser Regionen für die Bereitstellung auswählen.
Um mit dem Testen der Lösung zu beginnen, müssen Sie die folgenden Bereitstellungsschritte der Lösung ausführen GitHub-README-Datei:
- Richten Sie AWS SSO ein, wenn Sie es nicht konfiguriert haben.
- Stellen Sie die Lösung mit der SAM-Anwendung bereit.
- Erstellen Sie eine neue benutzerdefinierte SAML 2.0-Anwendung.
Nachdem Sie die Bereitstellungsschritte abgeschlossen haben, können Sie mit dem Lösungstest fortfahren.
Testen Sie die Lösung
Die Lösung simuliert zwei Anwendungsfälle, um die Verwendung von AWS SSO und identitätsbasierten SageMaker-Richtlinien zu demonstrieren:
- Positiver Anwendungsfall – Ein Benutzer greift innerhalb eines bestimmten CIDR-Bereichs über einen VPC-Endpunkt auf Studio zu
- Negativer Anwendungsfall – Ein Benutzer greift über eine öffentliche IP-Adresse auf Studio zu
Um diese Anwendungsfälle zu testen, erstellte die Lösung drei Amazon Elastic Compute-Cloud (Amazon EC2) Instanzen:
- Privater Gastgeber – Eine EC2-Windows-Instanz in einem privaten Subnetz, die auf Studio zugreifen kann (Ihre gesicherte Umgebung vor Ort)
- Bastion-Host – Eine EC2-Linux-Instance im öffentlichen Subnetz, die verwendet wird, um einen SSH-Tunnel zum privaten Host im privaten Netzwerk einzurichten
- Öffentlicher Host – Eine EC2-Windows-Instance in einem öffentlichen Subnetz, um zu demonstrieren, dass der Benutzer nicht von einer nicht autorisierten IP-Adresse aus auf Studio zugreifen kann
Testen Sie den Zugriff auf Studio über ein autorisiertes Netzwerk
Befolgen Sie diese Schritte, um den Test durchzuführen:
- Um auf die EC2-Windows-Instance im privaten Netzwerk zuzugreifen, führen Sie den Befehl aus, der als Wert des SAM-Ausgabeschlüssels bereitgestellt wird
TunnelCommand
. Stellen Sie sicher, dass sich der private Schlüssel des im Parameter angegebenen Schlüsselpaars in dem Verzeichnis befindet, von dem aus der SSH-Tunnelbefehl ausgeführt wird. Der Befehl erstellt eine SSH-Tunnel vom lokalen Computer anlocalhost:3389
zur EC2-Windows-Instance im privaten Netzwerk. Siehe folgenden Beispielcode: - Öffnen Sie auf Ihrem lokalen Desktop oder Notebook eine neue RDP-Verbindung (z. B. über Microsoft Remote Desktop) mit
localhost
als Ziel-Remote-Host. Diese Verbindung wird über den Bastion-Host zur privaten EC2-Windows-Instance getunnelt. Verwenden Sie den BenutzernamenAdministrator
und Passwort aus der StapelausgabeSageMakerWindowsPassword
. - Öffnen Sie den Firefox-Webbrowser auf dem Remote-Desktop.
- Navigieren Sie zum AWS SSO-Portal und melden Sie sich mit den Anmeldeinformationen an, die dem Benutzernamen zugeordnet sind, den Sie als angegeben haben
ssoUserName
Parameters. - Wähle die SageMaker Secure-Demo AWS SSO-Anwendung aus dem AWS SSO-Portal.
Sie werden in einem neuen Browserfenster zur Studio-IDE weitergeleitet.
Testen Sie den Zugriff auf Studio von einem nicht autorisierten Netzwerk aus
Befolgen Sie nun diese Schritte, um den Zugriff von einem nicht autorisierten Netzwerk zu simulieren:
- Öffnen Sie eine neue RDP-Verbindung auf der in der bereitgestellten IP
SageMakerWindowsPublicHost
SAML-Ausgabe. - Öffnen Sie den Firefox-Webbrowser auf dem Remote-Desktop.
- Navigieren Sie zum AWS SSO-Portal und melden Sie sich mit den Anmeldeinformationen an, die dem Benutzernamen zugeordnet sind, der als angegeben wurde
ssoUserName
Parameters. - Wähle die SageMaker Secure-Demo AWS SSO-Anwendung aus dem AWS SSO-Portal.
Diesmal erhalten Sie eine Meldung über einen nicht autorisierten Zugriff.
Aufräumen
Um Gebühren zu vermeiden, müssen Sie alle von der Lösung bereitgestellten und manuell erstellten Ressourcen aus Ihrem AWS-Konto entfernen. Befolgen Sie die Anweisungen in der Lösung README-Datei.
Zusammenfassung
Wir haben gezeigt, dass wir durch die Einführung einer Middleware-Authentifizierungsschicht zwischen dem Endbenutzer und Studio die Umgebung kontrollieren können, aus der der Benutzer auf Studio zugreifen darf, und jede andere nicht autorisierte Umgebung explizit blockieren können.
Um die Sicherheit weiter zu erhöhen, können Sie einer Benutzerrolle eine IAM-Richtlinie hinzufügen, um den Zugriff auf Studio von der Konsole aus zu verhindern. Wenn du benutzt AWS-Organisationen, können Sie Folgendes implementieren Dienstkontrollrichtlinie für die Organisationseinheiten oder Konten, die Zugriff auf Studio benötigen:
Obwohl die in diesem Beitrag beschriebene Lösung API Gateway und Lambda verwendet, können Sie andere Möglichkeiten erkunden, z. B. eine EC2-Instance mit einer Instanzrolle Verwenden Sie den gleichen Berechtigungsvalidierungs-Workflow wie beschrieben oder sogar ein unabhängiges System, um die Benutzerauthentifizierung und -autorisierung zu handhaben und eine vorsignierte Studio-URL zu generieren.
Weiterführende Literatur
Das Sichern des Zugriffs auf Studio ist ein aktives Forschungsthema, und es gibt andere relevante Beiträge zu ähnlichen Ansätzen. Lesen Sie die folgenden Beiträge im AWS Machine Learning-Blog, um mehr über andere Services und Architekturen zu erfahren, die Sie verwenden können:
Über die Autoren
Hieronymus Bachelet ist Lösungsarchitekt bei Amazon Web Services. Er lebt davon, Kunden dabei zu helfen, den größtmöglichen Nutzen aus AWS zu ziehen, um ihre Geschäftsziele zu erreichen. Jerome hat über 10 Jahre Erfahrung in der Arbeit mit Datenschutz- und Datensicherheitslösungen. Abgesehen davon, dass er in der Cloud ist, genießt Jerome Reisen und schöne Stunden mit seiner Frau und seinen zwei Töchtern in der Region Genf, Schweiz.
Jewgenij Iljin ist Lösungsarchitekt bei AWS. Er verfügt über mehr als 20 Jahre Erfahrung auf allen Ebenen der Softwareentwicklung und Lösungsarchitektur und hat Programmiersprachen von COBOL und Assembler bis zu .NET, Java und Python verwendet. Er entwickelt und codiert Cloud-native Lösungen mit den Schwerpunkten Big Data, Analytics und Data Engineering.
- '
- "
- 100
- 7
- 9
- Über uns
- Zugang
- Konto
- Action
- aktiv
- Adresse
- Alle
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- Analytik
- Bienen
- APIs
- Anwendung
- Architektur
- Bereich
- Authentifizierung
- Genehmigung
- Autopilot
- AWS
- Sein
- Big Data
- Blog
- Browser
- Geschäft
- rufen Sie uns an!
- Fälle
- challenges
- Herausforderungen
- Gebühren
- Cloud
- Wolke native
- Code
- Kommunikation
- Berechnen
- Konfiguration
- Verbindung
- Konnektivität
- Konsul (Console)
- Verbraucher
- Container
- Behälter
- Referenzen
- Kunden
- technische Daten
- Datenschutz
- Datensicherheit
- Entwicklung
- dns
- Tut nicht
- bewirken
- Endpunkt
- Entwicklung
- Arbeitsumfeld
- Beispiel
- Ausführung
- Training
- ERFAHRUNGEN
- Experiment
- KONZENTRAT
- Endlich
- Revolution
- Finanzdienstleistungen
- Firefox
- Vorname
- Setzen Sie mit Achtsamkeit
- folgen
- voller
- Funktion
- erzeugen
- gif
- Ultraschall
- Hilfe
- HTTPS
- IAM
- Identitätsschutz
- implementieren
- Umsetzung
- Branchen
- Integration
- Internet
- IP
- IP Address
- Isolierung
- IT
- Javac
- Jobs
- Aufbewahrung
- Wesentliche
- Sprachen
- LERNEN
- lernen
- Line
- linux
- aus einer regionalen
- Maschinelles Lernen
- Management
- Microsoft
- Modell
- Netto-
- Netzwerk
- Netzwerkzugang
- Laptops
- Angebote
- XNUMXh geöffnet
- Andere
- Passwort
- Politik durchzulesen
- Datenschutzrichtlinien
- Beliebt
- Portal
- BLOG-POSTS
- Werkzeuge
- Principal
- privat
- Private Key
- Profil
- Programmierung
- Programmiersprachen
- Beweis
- Proof of Concept
- Risiken zu minimieren
- Sicherheit
- die
- bietet
- Stellvertreter
- Öffentlichkeit
- Python
- Qualität
- Angebot
- umleiten
- Voraussetzungen:
- Forschungsprojekte
- Ressourcen
- Downloads
- Antwort
- Führen Sie
- sagemaker
- Sicherheitdienst
- Leistungen
- Dienst
- kompensieren
- ähnlich
- Einfacher
- Software
- Software-Entwicklung
- Lösungen
- Anfang
- Erklärung
- Lagerung
- Unterstützte
- Unterstützt
- Schweiz
- System
- Target
- Test
- Testen
- Durch
- Zeit
- Zeichen
- der Verkehr
- Ausbildung
- ui
- Nutzer
- Wert
- Assistent
- Netz
- Web-Browser
- Web-Services
- Fenster
- .
- ohne
- Arbeitsablauf.
- Belegschaft
- Werk
- Jahr