Molnsäkerhet hos AWS har högsta prioritet. Amazon SageMaker Studio erbjudanden olika mekanismer för att skydda din data och kod med hjälp av integration med AWS säkerhetstjänster som AWS identitets- och åtkomsthantering (JAG ÄR), AWS nyckelhanteringstjänst (AWS KMS), eller nätverksisolering med Amazon Virtual Private Cloud (Amazon VPC).
Kunder i starkt reglerade branscher, som finansiella tjänster, kan ställ in Studio endast i VPC läge för att aktivera nätverksisolering och inaktivera internetåtkomst från Studio-datorer. Du kan använda IAM-integration med Studio för att styra vilka användare som har tillgång till resurser som Studio-anteckningsböcker, Studio IDE eller Amazon SageMaker utbildningsjobb.
Ett populärt användningsfall är att begränsa åtkomsten till Studio IDE endast till användare från ett specificerat nätverks CIDR-intervall eller en angiven VPC. Du kan uppnå detta genom att implementera IAM-identitetsbaserade SageMaker-policyer och bifoga dessa policyer till IAM-användare eller grupper som kräver dessa behörigheter. SageMaker-domänen måste dock konfigureras med IAM-autentiseringsläge, eftersom IAM-identitetsbaserade policyer inte stöds i AWS-inloggning (SSO) autentiseringsläge.
Många kunder använder AWS SSO för att möjliggöra centraliserad personalidentitetskontroll och ge en konsekvent användarinloggningsupplevelse. Det här inlägget visar hur du implementerar det här användningsfallet samtidigt som AWS SSO-funktioner behålls för att komma åt Studio.
Lösningsöversikt
När du konfigurerar en SageMaker-domän i endast VPC-läge och anger undernät och säkerhetsgrupper, skapar SageMaker elastiska nätverksgränssnitt (ENI) som är associerade med dina säkerhetsgrupper i de angivna undernäten. ENI:er tillåter dina träningsbehållare att ansluta till resurser i din VPC.
I det här läget är den direkta internetåtkomsten från bärbara datorer helt inaktiverad, och all trafik dirigeras genom en ENI i din privata VPC. Detta inkluderar också trafik från Studio UI-widgets och gränssnitt – som experimenthantering, autopilot och modellmonitor – till deras respektive SageMaker API:er. AWS rekommenderar att du använder endast VPC-läget för att utöva finkornig kontroll över nätverksåtkomst till Studio.
Den första utmaningen är att även om Studio är utplacerat utan internetanslutning, kan Studio IDE fortfarande nås från var som helst, förutsatt tillgång till AWS Management Console och Studio beviljas en IAM-rektor. Denna situation är inte acceptabel om du vill isolera Studio helt från ett offentligt nätverk och innehålla all kommunikation inom en hårt kontrollerad privat VPC.
För att ta itu med denna utmaning och inaktivera all åtkomst till Studio IDE förutom från en angiven VPC eller ett CIDR-intervall, kan du använda CreatePresignedDomainUrl SageMaker API. IAM-rollen eller användaren som används för att anropa detta API definierar behörigheterna för åtkomst till Studio. Nu kan du använda IAM-identitetsbaserade policyer för att implementera den önskade åtkomstkonfigurationen. Till exempel, för att endast aktivera åtkomst från en utsedd VPC, lägg till följande villkor i IAM-policyn, associerad med en IAM-principal, som används för att generera en fördefinierad domän-URL:
För att endast aktivera åtkomst från en eller flera utsedda VPC-slutpunkter, ange följande villkor:
Använd följande villkor för att begränsa åtkomst från ett angivet CIDR-intervall:
Den andra utmaningen är att IAM-baserad åtkomstkontroll endast fungerar när SageMaker-domänen är konfigurerad i IAM-autentiseringsläge; du kan inte använda den när SageMaker-domänen är distribuerad i AWS SSO-läge. Nästa avsnitt visar hur man hanterar dessa utmaningar och implementerar IAM-baserad åtkomstkontroll med AWS SSO-åtkomst till Studio.
Arkitekturöversikt
Studio publiceras som en SAML-applikation, som tilldelas en specifik SageMaker Studio-användarprofil. Användare kan enkelt komma åt Studio direkt från AWS SSO-portalen, som visas i följande skärmdump.
Lösningen integreras med en anpassad SAML 2.0-applikation som mekanismen för att utlösa användarautentisering för Studio. Det kräver att den anpassade SAML-applikationen är konfigurerad med Amazon API Gateway slutpunkts-URL som dess Assertion Consumer Service (ACS), och behöver mappningsattribut som innehåller AWS SSO-användar-ID såväl som SageMaker-domän-ID.
API Gateway-slutpunkten anropar en AWS Lambda funktion som analyserar SAML-svaret för att extrahera domän-ID och användar-ID och använda dem för att generera en fördesignad Studio-URL. Lambdafunktionen utför slutligen en omdirigering via ett HTTP 302-svar för att logga in användaren i Studio.
En IAM-policy styr nätverksmiljön som Studio-användare får logga in från, vilket inkluderar begränsningsvillkor som beskrivs i föregående avsnitt. Denna IAM-policy är kopplad till Lambdafunktionen. IAM-policyn innehåller tillstånd att anropa sagemaker:CreatePresignedDomainURL
API endast för en specifik användarprofil:
Följande diagram visar lösningsarkitekturen.
Lösningen distribuerar en SageMaker-domän i din privata VPC och VPC-slutpunkter för att komma åt Studio, SageMaker runtime och SageMaker API via en privat anslutning utan behov av en internetgateway. VPC-slutpunkterna är konfigurerade med privat DNS aktiverad (PrivateDnsEnabled=True
) att associera en privat värdzon med din VPC. Detta gör det möjligt för Studio att få åtkomst till SageMaker API med det offentliga standardnamnet för DNS api.sagemaker.<Region>.amazonaws.com
löst till slutpunktens privata IP-adress istället för att använda VPC-slutpunkts-URL.
Du måste lägga till VPC-slutpunkter till din VPC om du vill komma åt andra AWS-tjänster som Amazon enkel lagringstjänst (Amazon S3), Amazon Elastic Container Registry (Amazon ECR), AWS Security Token Service (AWS STS), AWS molnformation, eller AWS CodeCommit.
Du kan fullständigt kontrollera behörigheter som används för att generera den fördefinierade URL-adressen och alla andra API-anrop med IAM-policyer kopplade till Lambda-funktionsexekveringsrollen eller kontrollera åtkomsten till valfri använd AWS-tjänst via VPC-slutpolicy. För exempel på hur IAM-policyer används för att kontrollera åtkomst till Studio och SageMaker API, se Styr åtkomst till SageMaker API genom att använda identitetsbaserade policyer.
Även om lösningen kräver att Studio-domänen distribueras i IAM-läge, tillåter den att AWS SSO används som mekanism för slutanvändare att logga in på Studio.
Följande underavsnitt innehåller detaljerade beskrivningar av lösningens huvudkomponenter.
API-gateway
API Gateway-slutpunkten fungerar som mål för applikationens ACS-URL som konfigurerats i den anpassade SAML 2.0-applikationen. Slutpunkten är privat och har en resurs som kallas /saml
och en POST-metod med integrationsbegäran konfigurerad som Lambda-proxy. Lösningen använder en VPC-slutpunkt med en konfigurerad com.amazonaws.<region>.execute-api
DNS-namn för att anropa denna API-slutpunkt från VPC:n.
AWS SSO
En anpassad SAML 2.0-applikation är konfigurerad med API Gateway-slutpunkts-URL https:/{ restapi-id}.execute-api.amazonaws.com/saml
som sin applikations ACS-URL och använder attributmappningar med följande krav:
- Användaridentifierare:
- Användarattribut i applikationen - Användarnamn
- Maps användarattribut i AWS SSO -
${user:AD_GUID}
- SageMaker domän-ID identifierare:
- Användarattribut i applikationen -
domain-id
- Maps användarattribut i AWS SSO – Domän-ID för Studio-instansen
- Användarattribut i applikationen -
Applikationen implementerar åtkomstkontrollen för en AWS SSO-användare genom att tillhandahålla en Studio-användarprofil med namnet lika med AWS SSO-användar-ID.
Lambdafunktion
Lösningen konfigurerar en Lambda-funktion som en anropspunkt för API Gateway /saml
resurs. Funktionen analyserar SAMLResponse
skickat av AWS SSO, extraherar domain-id
samt användarnamnet och anropar createPresignedDomainUrl
SageMaker API för att hämta Studio URL och token och omdirigera användaren till att logga in med ett HTTP 302-svar. Lambdafunktionen har en specifik IAM-policy kopplad till sin exekveringsroll som tillåter sagemaker:createPresignedDomainUrl
åtgärd endast när den begärs från ett specifikt nätverks CIDR-intervall med hjälp av VpcSourceIp
skick.
Lambdafunktionen har ingen logik för att validera SAML-svaret, till exempel för att kontrollera en signatur. Men eftersom API Gateway-slutpunkten som fungerar som ACS är privat eller endast intern, är den inte obligatorisk för denna proof of concept-miljö.
Distribuera lösningen
Smakämnen GitHub repository tillhandahåller den fullständiga källkoden för end-to-end-lösningen.
För att distribuera lösningen måste du ha administratörsbehörighet (eller avancerad användare) för ett AWS-konto och installera AWS-kommandoradsgränssnitt (AWS CLI) och AWS SAM CLI och minimum python 3.8.
Lösningen stöder distribution till tre AWS-regioner: eu-west-1
, eu-central-1
och us-east-1
. Se till att du väljer en av dessa regioner för distribution.
För att börja testa lösningen måste du slutföra följande installationssteg från lösningens GitHub README-fil:
- Konfigurera AWS SSO om du inte har den konfigurerad.
- Distribuera lösningen med SAM-applikationen.
- Skapa en ny anpassad SAML 2.0-applikation.
När du har slutfört installationsstegen kan du fortsätta med lösningstestet.
Testa lösningen
Lösningen simulerar två användningsfall för att demonstrera användningen av AWS SSO och SageMaker identitetsbaserade policyer:
- Positivt användningsfall – En användare får åtkomst till Studio från ett angivet CIDR-intervall via en VPC-slutpunkt
- Negativt användningsfall – En användare kommer åt Studio från en offentlig IP-adress
För att testa dessa användningsfall skapade lösningen tre Amazon Elastic Compute Cloud (Amazon EC2)-instanser:
- Privat värd – En EC2 Windows-instans i ett privat undernät som kan komma åt Studio (din lokala säkra miljö)
- Bastion värd – En EC2 Linux-instans i det offentliga undernätet som används för att upprätta en SSH-tunnel till den privata värden på det privata nätverket
- Offentlig värd – En EC2 Windows-instans i ett offentligt undernät för att visa att användaren inte kan komma åt Studio från en obehörig IP-adress
Testa Studio-åtkomst från ett auktoriserat nätverk
Följ dessa steg för att utföra testet:
- För att komma åt EC2 Windows-instansen på det privata nätverket, kör kommandot som tillhandahålls som värdet på SAM-utgångsnyckeln
TunnelCommand
. Se till att den privata nyckeln för nyckelparet som anges i parametern finns i katalogen där SSH-tunnelkommandot körs från. Kommandot skapar en SSH-tunnel från den lokala datornlocalhost:3389
till EC2 Windows-instansen på det privata nätverket. Se följande exempelkod: - Öppna en ny RDP-anslutning (till exempel med hjälp av Microsoft Remote Desktop) på ditt lokala skrivbord eller bärbara dator
localhost
som målfjärrvärd. Denna anslutning tunnlas via bastionvärden till den privata EC2 Windows-instansen. Använd användarnamnetAdministrator
och lösenord från stackutgångenSageMakerWindowsPassword
. - Öppna webbläsaren Firefox från fjärrskrivbordet.
- Navigera och logga in på AWS SSO-portalen med hjälp av de referenser som är kopplade till användarnamnet som du angav som
ssoUserName
parameter. - Välj SageMaker Secure Demo AWS SSO-applikation från AWS SSO-portalen.
Du omdirigeras till Studio IDE i ett nytt webbläsarfönster.
Testa Studio-åtkomst från ett obehörigt nätverk
Följ nu dessa steg för att simulera åtkomst från ett obehörigt nätverk:
- Öppna en ny RDP-anslutning på IP-adressen som finns i
SageMakerWindowsPublicHost
SAML-utgång. - Öppna webbläsaren Firefox från fjärrskrivbordet.
- Navigera och logga in på AWS SSO-portalen med hjälp av de referenser som är kopplade till användarnamnet som angavs som
ssoUserName
parameter. - Välj SageMaker Secure Demo AWS SSO-applikation från AWS SSO-portalen.
Den här gången får du ett meddelande om obehörig åtkomst.
Städa upp
För att undvika avgifter måste du ta bort alla lösningsförsedda och manuellt skapade resurser från ditt AWS-konto. Följ instruktionerna i lösningens README-fil.
Slutsats
Vi visade att genom att införa ett autentiseringslager för mellanprogram mellan slutanvändaren och Studio kan vi kontrollera miljön som användaren får åtkomst till Studio från och explicit blockera alla andra obehöriga miljöer.
För att ytterligare skärpa säkerheten kan du lägga till en IAM-policy till en användarroll för att förhindra åtkomst till Studio från konsolen. Om du använder AWS-organisationer, kan du implementera följande tjänstekontrollpolicy för de organisationsenheter eller konton som behöver åtkomst till Studio:
Även om lösningen som beskrivs i det här inlägget använder API Gateway och Lambda, kan du utforska andra sätt som en EC2-instans med en instansroll använda samma arbetsflöde för behörighetsvalidering som beskrivs eller till och med ett oberoende system för att hantera användarautentisering och auktorisering och generera en förutbestämd URL från Studio.
Ytterligare läsning
Att säkra åtkomst till Studio är ett aktivt forskningsämne, och det finns andra relevanta inlägg om liknande tillvägagångssätt. Se följande inlägg på AWS Machine Learning Blog för att lära dig mer om andra tjänster och arkitekturer du kan använda:
Om författarna
Jerome Bachelet är en lösningsarkitekt på Amazon Web Services. Han trivs med att hjälpa kunder att få ut det mesta av AWS för att uppnå sina affärsmål. Jerome har över 10 års erfarenhet av att arbeta med dataskydd och datasäkerhetslösningar. Förutom att vara i molnet, tycker Jerome om resor och kvalitetstid med sin fru och två döttrar i området Genève, Schweiz.
Jevgenij Ilyin är lösningsarkitekt på AWS. Han har över 20 års erfarenhet av att arbeta på alla nivåer av programvaruutveckling och lösningsarkitektur och har använt programmeringsspråk från COBOL och Assembler till .NET, Java och Python. Han utvecklar och kodar molnlösningar med fokus på stor data, analys och datateknik.
- '
- "
- 100
- 7
- 9
- Om oss
- tillgång
- Konto
- Handling
- aktiv
- adress
- Alla
- amason
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- analytics
- api
- API: er
- Ansökan
- arkitektur
- OMRÅDE
- Autentisering
- tillstånd
- Autopiloten
- AWS
- Där vi får lov att vara utan att konstant prestera,
- Stora data
- Blogg
- webbläsare
- företag
- Ring
- fall
- utmanar
- utmaningar
- avgifter
- cloud
- moln infödd
- koda
- Kommunikation
- Compute
- konfiguration
- anslutning
- Anslutningar
- Konsol
- Konsumenten
- Behållare
- Behållare
- referenser
- Kunder
- datum
- dataskydd
- datasäkerhet
- Utveckling
- dns
- inte
- effekt
- Slutpunkt
- Teknik
- Miljö
- exempel
- utförande
- Motionera
- erfarenhet
- experimentera
- extrakt
- Slutligen
- finansiella
- finansiella tjänster
- firefox
- Förnamn
- Fokus
- följer
- full
- fungera
- generera
- gif
- Hur ser din drömresa ut
- How To
- HTTPS
- IAM
- Identitet
- genomföra
- genomföra
- industrier
- integrering
- Internet
- IP
- IP-adress
- isolering
- IT
- java
- Lediga jobb
- hålla
- Nyckel
- Språk
- LÄRA SIG
- inlärning
- linje
- linux
- lokal
- maskininlärning
- ledning
- Microsoft
- modell
- netto
- nät
- Nätverkstillgång
- bärbara datorer
- Erbjudanden
- öppet
- Övriga
- Lösenord
- Strategier
- policy
- Populära
- Portal
- inlägg
- kraft
- Principal
- privat
- privat nyckel
- Profil
- Programmering
- programmeringsspråk
- bevis
- bevis på koncept
- skydda
- skydd
- ge
- ger
- ombud
- allmän
- Python
- kvalitet
- område
- dirigera om
- Krav
- forskning
- resurs
- Resurser
- respons
- Körning
- sagemaker
- säkerhet
- Tjänster
- portion
- in
- liknande
- Enkelt
- Mjukvara
- mjukvaruutveckling
- Lösningar
- starta
- .
- förvaring
- Som stöds
- Stöder
- schweiz
- system
- Målet
- testa
- Testning
- Genom
- tid
- token
- trafik
- Utbildning
- ui
- användare
- värde
- Virtuell
- webb
- webbläsare
- webbservice
- fönster
- inom
- utan
- arbetsflöde
- arbetskraft
- fungerar
- år