Bezpieczeństwo w chmurze w AWS jest najwyższym priorytetem. Studio Amazon SageMaker oferuje różne mechanizmy w celu ochrony danych i kodu za pomocą integracji z usługami bezpieczeństwa AWS, takimi jak AWS Zarządzanie tożsamością i dostępem (JESTEM), Usługa zarządzania kluczami AWS (AWS KMS) lub izolacja sieci z Wirtualna prywatna chmura Amazon (Amazonka VPC).
Klienci z branż ściśle regulowanych, takich jak usługi finansowe, mogą skonfigurować Studio tylko w VPC tryb, aby włączyć izolację sieci i wyłączyć dostęp do Internetu z notebooków Studio. Możesz użyć integracji IAM z Studio, aby kontrolować, którzy użytkownicy mają dostęp do zasobów, takich jak notatniki Studio, środowisko IDE Studio lub Amazon Sage Maker prace szkoleniowe.
Popularnym przypadkiem użycia jest: ograniczyć dostęp do IDE Studio tylko użytkownikom z określonego zakresu CIDR sieci lub wyznaczonego środowiska VPC. Możesz to osiągnąć, wdrażając Zasady SageMaker oparte na tożsamości IAM i dołączenie tych zasad do użytkowników lub grup uprawnień, które wymagają tych uprawnień. Jednak domena SageMaker musi być skonfigurowana za pomocą Tryb uwierzytelniania uprawnień, ponieważ zasady IAM oparte na tożsamości nie są obsługiwane w Jednokrotne logowanie AWS (OSM) Tryb uwierzytelniania.
Wielu klientów korzysta z logowania jednokrotnego AWS, aby umożliwić scentralizowaną kontrolę tożsamości pracowników i zapewnić spójne środowisko logowania użytkowników. W tym poście pokazano, jak zaimplementować ten przypadek użycia, zachowując możliwości logowania jednokrotnego AWS w celu uzyskania dostępu do Studio.
Omówienie rozwiązania
Po skonfigurowaniu domeny SageMaker w trybie tylko VPC i określeniu podsieci i grup zabezpieczeń, SageMaker tworzy elastyczne interfejsy sieciowe (ENI), które są skojarzone z grupami zabezpieczeń w określonych podsieciach. ENI umożliwiają kontenerom treningowym łączenie się z zasobami w VPC.
W tym trybie bezpośredni dostęp do Internetu z notebooków jest całkowicie wyłączony, a cały ruch jest kierowany przez ENI w Twoim prywatnym VPC. Obejmuje to również ruch z widżetów i interfejsów interfejsu użytkownika Studio — takich jak zarządzanie eksperymentami, autopilot i monitor modelu — do odpowiednich interfejsów API SageMaker zaplecza. AWS zaleca korzystanie tylko z trybu VPC, aby zapewnić szczegółową kontrolę nad dostępem do sieci w Studio.
Pierwszym wyzwaniem jest to, że chociaż Studio jest wdrożone bez połączenia z Internetem, IDE Studio jest nadal dostępne z dowolnego miejsca, zakładając dostęp do Konsola zarządzania AWS a Studio jest przyznawane zleceniodawcy uprawnień. Ta sytuacja jest nie do zaakceptowania, jeśli chcesz całkowicie odizolować Studio od sieci publicznej i umieścić całą komunikację w ściśle kontrolowanej prywatnej sieci VPC.
Aby sprostać temu wyzwaniu i wyłączyć wszelki dostęp do Studio IDE z wyjątkiem wyznaczonego VPC lub zakresu CIDR, możesz użyć CreatePresignedDomainUrl API SageMaker. Rola lub użytkownik uprawnień używany do wywoływania tego interfejsu API określa uprawnienia dostępu do Studio. Teraz możesz użyć zasad IAM opartych na tożsamościach, aby zaimplementować żądaną konfigurację dostępu. Na przykład, aby umożliwić dostęp tylko z wyznaczonego środowiska VPC, dodaj następujący warunek do zasady uprawnień skojarzonej z podmiotem uprawnień, który jest używany do generowania wstępnie podpisanego adresu URL domeny:
Aby umożliwić dostęp tylko z wyznaczonego punktu końcowego lub punktów końcowych VPC, określ następujący warunek:
Użyj następującego warunku, aby ograniczyć dostęp z wyznaczonego zakresu CIDR:
Drugie wyzwanie polega na tym, że kontrola dostępu oparta na IAM działa tylko wtedy, gdy domena SageMaker jest skonfigurowana w trybie uwierzytelniania IAM; nie możesz jej używać, gdy domena SageMaker jest wdrożona w trybie AWS SSO. W następnej sekcji pokazano, jak sprostać tym wyzwaniom i wdrożyć kontrolę dostępu opartą na uprawnieniach z dostępem AWS SSO do Studio.
Przegląd architektury
Studio jest publikowane jako aplikacja SAML, która jest przypisana do określonego profilu użytkownika SageMaker Studio. Użytkownicy mogą wygodnie uzyskać dostęp do Studio bezpośrednio z portalu AWS SSO, jak pokazano na poniższym zrzucie ekranu.
Rozwiązanie integruje się z niestandardowa aplikacja SAML 2.0 jako mechanizm wyzwalający uwierzytelnianie użytkownika w Studio. Wymaga, aby niestandardowa aplikacja SAML była skonfigurowana z Brama Amazon API adres URL punktu końcowego jako jego usługę klienta potwierdzenia (ACS) i wymaga atrybutów mapowania zawierających identyfikator użytkownika AWS SSO oraz identyfikator domeny SageMaker.
Punkt końcowy API Gateway wywołuje an AWS Lambda funkcja analizująca odpowiedź SAML w celu wyodrębnienia identyfikatora domeny i identyfikatora użytkownika oraz użycia ich do wygenerowania wstępnie podpisanego adresu URL Studio. Funkcja Lambda w końcu wykonuje przekierowanie za pośrednictwem odpowiedzi HTTP 302 w celu zalogowania użytkownika w Studio.
Zasada uprawnień kontroluje środowisko sieciowe, z którego użytkownicy Studio mogą się logować, co obejmuje warunki ograniczające opisane w poprzedniej sekcji. Ta zasada uprawnień jest dołączona do funkcji Lambda. Polityka uprawnień zawiera uprawnienie do dzwonienia do sagemaker:CreatePresignedDomainURL
API tylko dla określonego profilu użytkownika:
Poniższy diagram przedstawia architekturę rozwiązania.
Rozwiązanie wdraża domenę SageMaker w Twoim prywatnym VPC i Punkty końcowe VPC dostęp do Studio, środowiska uruchomieniowego SageMaker i API SageMaker za pośrednictwem prywatnego połączenia bez konieczności korzystania z bramy internetowej. Punkty końcowe VPC są skonfigurowane z włączonym prywatnym DNS (PrivateDnsEnabled=True
) skojarzyć prywatna strefa hostowana z VPC. Dzięki temu Studio może uzyskać dostęp do interfejsu API SageMaker przy użyciu domyślnej publicznej nazwy DNS api.sagemaker.<Region>.amazonaws.com
zostanie rozwiązany na prywatny adres IP punktu końcowego, a nie za pomocą adresu URL punktu końcowego VPC.
Musisz dodać punkty końcowe VPC do swojego VPC, jeśli chcesz uzyskać dostęp do innych usług AWS, takich jak Usługa Amazon Simple Storage (Amazonka S3), Rejestr elastycznego pojemnika Amazon (Amazon ECR), Usługa tokena bezpieczeństwa AWS (AWS STS), Tworzenie chmury AWSlub Zatwierdzenie kodu AWS.
Możesz w pełni kontrolować uprawnienia używane do generowania presygnowanego adresu URL i wszelkich innych wywołań API za pomocą polityk IAM dołączonych do roli wykonywania funkcji Lambda lub kontrolować dostęp do dowolnej używanej usługi AWS poprzez Zasady dotyczące punktów końcowych VPC. Przykłady użycia zasad uprawnień do kontroli dostępu do Studio i SageMaker API można znaleźć w Kontroluj dostęp do interfejsu API SageMaker za pomocą zasad opartych na tożsamości.
Chociaż rozwiązanie wymaga wdrożenia domeny Studio w trybie uprawnień, umożliwia ono używanie logowania jednokrotnego AWS jako mechanizmu umożliwiającego użytkownikom końcowym logowanie się do Studio.
Poniższe podrozdziały zawierają szczegółowe opisy głównych elementów rozwiązania.
API Gateway
Punkt końcowy API Gateway działa jako cel dla adresu URL usługi ACS aplikacji skonfigurowanego w niestandardowej aplikacji SAML 2.0. Punkt końcowy jest prywatny i ma zasób o nazwie /saml
oraz metodę POST z żądaniem integracji skonfigurowanym jako proxy Lambda. Rozwiązanie wykorzystuje punkt końcowy VPC ze skonfigurowanym com.amazonaws.<region>.execute-api
Nazwa DNS do wywoływania tego punktu końcowego interfejsu API z poziomu VPC.
Jednokrotne logowanie w AWS
Niestandardowa aplikacja SAML 2.0 jest skonfigurowana z adresem URL punktu końcowego API Gateway https:/{ restapi-id}.execute-api.amazonaws.com/saml
jako adres URL aplikacji ACS i używa mapowań atrybutów z następującymi wymaganiami:
- Identyfikator użytkownika:
- Atrybut użytkownika w aplikacji - Nazwa Użytkownika
- Atrybut użytkownika Map w AWS SSO -
${user:AD_GUID}
- Identyfikator domeny SageMaker:
- Atrybut użytkownika w aplikacji -
domain-id
- Atrybut użytkownika Map w AWS SSO – Identyfikator domeny dla instancji Studio
- Atrybut użytkownika w aplikacji -
Aplikacja implementuje kontrolę dostępu dla użytkownika AWS SSO poprzez udostępnienie profilu użytkownika Studio o nazwie równej identyfikatorowi użytkownika AWS SSO.
Funkcja Lambdy
Rozwiązanie konfiguruje funkcję Lambda jako punkt wywołania dla API Gateway /saml
ratunek. Funkcja analizuje SAMLResponse
wysłane przez AWS SSO, wyodrębnia domain-id
jak również nazwę użytkownika i wywołuje createPresignedDomainUrl
Interfejs API SageMaker do pobierania adresu URL i tokena Studio oraz przekierowywania użytkownika do logowania za pomocą odpowiedzi HTTP 302. Funkcja Lambda ma określoną politykę uprawnień dołączoną do jej roli wykonawczej, która umożliwia: sagemaker:createPresignedDomainUrl
akcja tylko wtedy, gdy jest żądana z określonego zakresu CIDR sieci przy użyciu VpcSourceIp
warunek.
Funkcja Lambda nie ma żadnej logiki do walidacji odpowiedzi SAML, na przykład do sprawdzenia podpisu. Jednak ponieważ punkt końcowy bramy interfejsu API służący jako usługa ACS jest tylko prywatny lub wewnętrzny, nie jest to obowiązkowe w przypadku tego środowiska weryfikacji koncepcji.
Wdróż rozwiązanie
Połączenia Repozytorium GitHub dostarcza pełny kod źródłowy rozwiązania end-to-end.
Aby wdrożyć rozwiązanie, musisz mieć uprawnienia administratora (lub użytkownika zaawansowanego) do konta AWS i zainstalować Interfejs wiersza poleceń AWS (AWS CLI) i CLI AWS SAM i minimum Python 3.8.
Rozwiązanie obsługuje wdrożenie do trzech regionów AWS: eu-west-1
, eu-central-1
, us-east-1
. Upewnij się, że wybrałeś jeden z tych regionów do wdrożenia.
Aby rozpocząć testowanie rozwiązania, musisz wykonać następujące kroki wdrażania z rozwiązania Plik README GitHuba:
- Skonfiguruj logowanie jednokrotne w AWS, jeśli nie zostało skonfigurowane.
- Wdróż rozwiązanie za pomocą aplikacji SAM.
- Utwórz nową niestandardową aplikację SAML 2.0.
Po wykonaniu kroków wdrażania możesz przystąpić do testu rozwiązania.
Przetestuj rozwiązanie
Rozwiązanie symuluje dwa przypadki użycia, aby zademonstrować użycie zasad AWS SSO i SageMaker opartych na tożsamości:
- Pozytywny przypadek użycia – Użytkownik uzyskuje dostęp do Studio z wyznaczonego zakresu CIDR za pośrednictwem punktu końcowego VPC
- Negatywny przypadek użycia – Użytkownik uzyskuje dostęp do Studio z publicznego adresu IP
Aby przetestować te przypadki użycia, rozwiązanie stworzyło trzy Elastyczna chmura obliczeniowa Amazon (Amazon EC2) instancje:
- Prywatny gospodarz – Instancja EC2 Windows w prywatnej podsieci, która ma dostęp do Studio (Twoje lokalne, zabezpieczone środowisko)
- Gospodarz bastionu – Instancja EC2 Linux w publicznej podsieci używana do ustanowienia tunelu SSH do prywatnego hosta w sieci prywatnej
- Host publiczny – Instancja EC2 Windows w publicznej podsieci, aby wykazać, że użytkownik nie może uzyskać dostępu do Studio z nieautoryzowanego adresu IP
Dostęp do Studia testowego z autoryzowanej sieci
Wykonaj poniższe czynności, aby przeprowadzić test:
- Aby uzyskać dostęp do instancji EC2 Windows w sieci prywatnej, uruchom polecenie podane jako wartość klucza wyjściowego SAM
TunnelCommand
. Upewnij się, że klucz prywatny pary kluczy określonej w parametrze znajduje się w katalogu, z którego uruchomiono polecenie tunelowania SSH. Polecenie tworzy Tunel SSH z komputera lokalnego nalocalhost:3389
do instancji EC2 Windows w sieci prywatnej. Zobacz następujący przykładowy kod: - Na lokalnym pulpicie lub notebooku otwórz nowe połączenie RDP (na przykład za pomocą Microsoft Remote Desktop), używając
localhost
jako docelowy zdalny host. To połączenie jest tunelowane przez host bastionu do prywatnej instancji EC2 Windows. Użyj nazwy użytkownikaAdministrator
i hasło z wyjścia stosuSageMakerWindowsPassword
. - Otwórz przeglądarkę Firefox z pulpitu zdalnego.
- Przejdź i zaloguj się do portalu AWS SSO przy użyciu poświadczeń powiązanych z nazwą użytkownika określoną jako
ssoUserName
parametr. - Wybierz Bezpieczne demo SageMakera Aplikacja AWS SSO z portalu AWS SSO.
W nowym oknie przeglądarki nastąpi przekierowanie do środowiska IDE Studio.
Testuj dostęp do Studio z nieautoryzowanej sieci
Teraz wykonaj następujące kroki, aby zasymulować dostęp z nieautoryzowanej sieci:
- Otwórz nowe połączenie RDP na adresie IP podanym w
SageMakerWindowsPublicHost
Dane wyjściowe SAML. - Otwórz przeglądarkę Firefox z pulpitu zdalnego.
- Przejdź i zaloguj się do portalu AWS SSO przy użyciu poświadczeń powiązanych z nazwą użytkownika, która została określona jako
ssoUserName
parametr. - Wybierz Bezpieczne demo SageMakera Aplikacja AWS SSO z portalu AWS SSO.
Tym razem otrzymasz wiadomość o nieautoryzowanym dostępie.
Sprzątać
Aby uniknąć opłat, musisz usunąć wszystkie udostępnione i ręcznie utworzone zasoby ze swojego konta AWS. Postępuj zgodnie z instrukcjami w rozwiązaniu Plik README.
Wnioski
Pokazaliśmy, że wprowadzając warstwę uwierzytelniania oprogramowania pośredniego między użytkownikiem końcowym a Studio, możemy kontrolować środowisko, z którego użytkownik może uzyskać dostęp do Studio, i jawnie blokować każde inne nieautoryzowane środowisko.
Aby jeszcze bardziej zwiększyć bezpieczeństwo, możesz dodać zasady uprawnień do roli użytkownika, aby uniemożliwić dostęp do Studio z konsoli. Jeśli użyjesz Organizacje AWS, możesz zaimplementować następujące polityka kontroli usług dla jednostek organizacyjnych lub kont, które potrzebują dostępu do Studio:
Chociaż rozwiązanie opisane w tym poście wykorzystuje API Gateway i Lambda, możesz zbadać inne sposoby, takie jak instancja EC2 z rola instancji przy użyciu tego samego przepływu pracy walidacji uprawnień, jak opisano, lub nawet niezależnego systemu do obsługi uwierzytelniania i autoryzacji użytkowników oraz generowania presygnowanego adresu URL Studio.
Dalsze czytanie
Zabezpieczanie dostępu do Studio jest aktywnym tematem badawczym i istnieją inne odpowiednie posty na temat podobnych podejść. Zapoznaj się z następującymi postami na blogu AWS Machine Learning, aby dowiedzieć się więcej o innych usługach i architekturach, których możesz użyć:
O autorach
Hieronim Bachelet jest architektem rozwiązań w Amazon Web Services. Jego celem jest pomaganie klientom w uzyskaniu jak największej wartości z AWS w celu osiągnięcia ich celów biznesowych. Jerome ma ponad 10-letnie doświadczenie w pracy z rozwiązaniami do ochrony i bezpieczeństwa danych. Poza tym, że jest w chmurze, Jerome lubi podróżować i spędzać czas z żoną i 2 córkami w Genewie w Szwajcarii.
Jewgienij Iljin jest architektem rozwiązań w AWS. Ma ponad 20-letnie doświadczenie w pracy na wszystkich poziomach tworzenia oprogramowania i architektury rozwiązań. Używał języków programowania od COBOL i Assembler po .NET, Java i Python. Tworzy i koduje rozwiązania natywne w chmurze ze szczególnym uwzględnieniem big data, analityki i inżynierii danych.
- '
- "
- 100
- 7
- 9
- O nas
- dostęp
- Konto
- Działania
- aktywny
- adres
- Wszystkie kategorie
- Amazonka
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- analityka
- api
- Pszczoła
- Zastosowanie
- architektura
- POWIERZCHNIA
- Uwierzytelnianie
- autoryzacja
- autopilot
- AWS
- jest
- Big Data
- Blog
- przeglądarka
- biznes
- wezwanie
- Etui
- wyzwanie
- wyzwania
- Opłaty
- Chmura
- Chmura rodzimych
- kod
- Komunikacja
- obliczać
- systemu
- połączenie
- Łączność
- Konsola
- konsument
- Pojemnik
- Pojemniki
- Listy uwierzytelniające
- Klientów
- dane
- Ochrona danych
- bezpieczeństwo danych
- oprogramowania
- dns
- Nie
- efekt
- Punkt końcowy
- Inżynieria
- Środowisko
- przykład
- egzekucja
- Ćwiczenie
- doświadczenie
- eksperyment
- Wyciągi
- W końcu
- budżetowy
- usługi finansowe
- Firefox
- i terminów, a
- Skupiać
- obserwuj
- pełny
- funkcjonować
- Generować
- gif
- W jaki sposób
- How To
- HTTPS
- IAM
- tożsamość
- wdrożenia
- wykonawczych
- przemysłowa
- integracja
- Internet
- IP
- Adres IP
- izolacja
- IT
- Java
- Oferty pracy
- konserwacja
- Klawisz
- Języki
- UCZYĆ SIĘ
- nauka
- Linia
- linux
- miejscowy
- uczenie maszynowe
- i konserwacjami
- Microsoft
- model
- netto
- sieć
- Dostęp do sieci
- laptopy
- Oferty
- koncepcja
- Inne
- Hasło
- polityka
- polityka
- Popularny
- Portal
- Wiadomości
- power
- Główny
- prywatny
- Klucz prywatny
- Profil
- Programowanie
- języki programowania
- dowód
- dowód koncepcji
- chronić
- ochrona
- zapewniać
- zapewnia
- pełnomocnik
- publiczny
- Python
- jakość
- zasięg
- przekierowanie
- wymagania
- Badania naukowe
- Zasób
- Zasoby
- odpowiedź
- run
- sagemaker
- bezpieczeństwo
- Usługi
- służąc
- zestaw
- podobny
- Prosty
- Tworzenie
- rozwoju oprogramowania
- Rozwiązania
- początek
- Zestawienie sprzedaży
- przechowywanie
- Utrzymany
- podpory
- Szwajcaria
- system
- cel
- test
- Testowanie
- Przez
- czas
- żeton
- ruch drogowy
- Trening
- ui
- Użytkownicy
- wartość
- Wirtualny
- sieć
- przeglądarka internetowa
- usługi internetowe
- okna
- w ciągu
- bez
- workflow
- Siła robocza
- działa
- lat