Cloudsikkerhed hos AWS har højeste prioritet. Amazon SageMaker Studio tilfører derimod forskellige mekanismer at beskytte dine data og kode ved hjælp af integration med AWS-sikkerhedstjenester som f.eks AWS identitets- og adgangsstyring (JEG ER), AWS Key Management Service (AWS KMS), eller netværksisolering med Amazon Virtual Private Cloud (Amazon VPC).
Kunder i stærkt regulerede brancher, som f.eks. finansielle tjenesteydelser, kan opsæt kun Studio i VPC tilstand for at aktivere netværksisolering og deaktivere internetadgang fra Studio-notebooks. Du kan bruge IAM-integration med Studio til at kontrollere, hvilke brugere der har adgang til ressourcer som Studio-notebooks, Studio IDE eller Amazon SageMaker træningsjob.
En populær use case er at begrænse adgangen til Studio IDE kun til brugere fra et specificeret netværks CIDR-område eller en udpeget VPC. Det kan du opnå ved at implementere IAM-identitetsbaserede SageMaker-politikker og vedhæfte disse politikker til IAM-brugere eller -grupper, der kræver disse tilladelser. SageMaker-domænet skal dog konfigureres med IAM-godkendelsestilstand, fordi de IAM-identitetsbaserede politikker ikke understøttes i AWS Single Sign-On (SSO) godkendelsestilstand.
Mange kunder bruger AWS SSO til at aktivere centraliseret kontrol af arbejdsstyrkens identitet og give en ensartet brugerlogonoplevelse. Dette indlæg viser, hvordan du implementerer denne use case, mens du beholder AWS SSO-funktioner for at få adgang til Studio.
Løsningsoversigt
Når du opsætter et SageMaker-domæne i VPC-only-tilstand og angiver undernet og sikkerhedsgrupper, opretter SageMaker elastiske netværksgrænseflader (ENI'er), der er knyttet til dine sikkerhedsgrupper i de angivne undernet. ENI'er giver dine træningsbeholdere mulighed for at forbinde til ressourcer i din VPC.
I denne tilstand er den direkte internetadgang fra notebooks fuldstændig deaktiveret, og al trafik dirigeres gennem en ENI i din private VPC. Dette inkluderer også trafik fra Studio UI-widgets og grænseflader – såsom eksperimentstyring, autopilot og modelmonitor – til deres respektive backend SageMaker API'er. AWS anbefaler at bruge kun VPC-tilstand til at udøve finmasket kontrol over netværksadgang til Studio.
Den første udfordring er, at selvom Studio er installeret uden internetforbindelse, kan Studio IDE stadig tilgås fra hvor som helst, forudsat at der er adgang til AWS Management Console og Studio er givet til en IAM-rektor. Denne situation er ikke acceptabel, hvis du ønsker at isolere Studio fuldt ud fra et offentligt netværk og indeholde al kommunikation inden for en stramt kontrolleret privat VPC.
For at løse denne udfordring og deaktivere enhver adgang til Studio IDE undtagen fra en udpeget VPC eller et CIDR-område, kan du bruge CreatePresignedDomainUrl SageMaker API. IAM-rollen eller brugeren, der bruges til at kalde denne API, definerer tilladelserne til at få adgang til Studio. Nu kan du bruge IAM-identitetsbaserede politikker til at implementere den ønskede adgangskonfiguration. Hvis du f.eks. kun vil aktivere adgang fra en udpeget VPC, skal du tilføje følgende betingelse til IAM-politikken, knyttet til en IAM-principal, som bruges til at generere en foruddefineret domæne-URL:
For kun at aktivere adgang fra et eller flere udpegede VPC-slutpunkter, skal du angive følgende betingelse:
Brug følgende betingelse for at begrænse adgang fra et udpeget CIDR-område:
Den anden udfordring er, at IAM-baseret adgangskontrol kun virker, når SageMaker-domænet er konfigureret i IAM-godkendelsestilstand; du kan ikke bruge det, når SageMaker-domænet er implementeret i AWS SSO-tilstand. Det næste afsnit viser, hvordan man løser disse udfordringer og implementerer IAM-baseret adgangskontrol med AWS SSO-adgang til Studio.
Arkitektur oversigt
Studio udgives som en SAML-applikation, der tildeles en specifik SageMaker Studio-brugerprofil. Brugere kan nemt få adgang til Studio direkte fra AWS SSO-portalen, som vist på det følgende skærmbillede.
Løsningen integreres med en tilpasset SAML 2.0-applikation som mekanismen til at udløse brugergodkendelse for Studio. Det kræver, at den tilpassede SAML-applikation er konfigureret med Amazon API Gateway endpoint URL som dens Assertion Consumer Service (ACS), og har brug for kortlægningsattributter, der indeholder AWS SSO-bruger-id'et samt SageMaker-domæne-id'et.
API Gateway-endepunktet kalder en AWS Lambda funktion, der analyserer SAML-svaret for at udtrække domæne-id'et og bruger-id'et og bruge dem til at generere en foruddefineret Studio-URL. Lambda-funktionen udfører endelig en omdirigering via et HTTP 302-svar for at logge på brugeren i Studio.
En IAM-politik styrer netværksmiljøet, som Studio-brugere har tilladelse til at logge ind fra, hvilket inkluderer begrænsningsbetingelser som beskrevet i det foregående afsnit. Denne IAM-politik er knyttet til Lambda-funktionen. IAM-politikken indeholder en tilladelse til at kalde sagemaker:CreatePresignedDomainURL
API kun for en specifik brugerprofil:
Følgende diagram viser løsningsarkitekturen.
Løsningen implementerer et SageMaker-domæne i din private VPC og VPC-endepunkter for at få adgang til Studio, SageMaker runtime og SageMaker API via en privat forbindelse uden behov for en internetgateway. VPC-endepunkterne er konfigureret med privat DNS aktiveret (PrivateDnsEnabled=True
) at tilknytte en privat hostet zone med din VPC. Dette gør det muligt for Studio at få adgang til SageMaker API ved hjælp af standard offentlige DNS-navn api.sagemaker.<Region>.amazonaws.com
løst til slutpunktets private IP-adresse i stedet for at bruge VPC-slutpunktets URL.
Du skal tilføje VPC-endepunkter til din VPC, hvis du vil have adgang til andre AWS-tjenester som f.eks Amazon Simple Storage Service (Amazon S3), Amazon Elastic Container Registry (Amazon ECR), AWS Security Token Service (AWS STS), AWS CloudFormation eller AWS CodeCommit.
Du kan fuldt ud kontrollere de tilladelser, der bruges til at generere den foruddefinerede URL og alle andre API-kald med IAM-politikker knyttet til Lambda-funktionens udførelsesrolle eller kontrollere adgangen til enhver brugt AWS-tjeneste via VPC-slutpunktspolitikker. For eksempler på brug af IAM-politikker til at kontrollere adgang til Studio og SageMaker API, se Styr adgangen til SageMaker API ved at bruge identitetsbaserede politikker.
Selvom løsningen kræver, at Studio-domænet skal installeres i IAM-tilstand, giver den mulighed for, at AWS SSO kan bruges som mekanismen for slutbrugere til at logge på Studio.
De følgende underafsnit indeholder detaljerede beskrivelser af de vigtigste løsningskomponenter.
API-gateway
API Gateway-slutpunktet fungerer som målet for applikationens ACS-URL, der er konfigureret i den tilpassede SAML 2.0-applikation. Slutpunktet er privat og har en ressource kaldet /saml
og en POST-metode med integrationsanmodning konfigureret som Lambda-proxy. Løsningen bruger et VPC-slutpunkt med et konfigureret com.amazonaws.<region>.execute-api
DNS-navn for at kalde dette API-endepunkt fra VPC'en.
AWS SSO
En tilpasset SAML 2.0-applikation er konfigureret med API Gateway-slutpunkts-URL'en https:/{ restapi-id}.execute-api.amazonaws.com/saml
som sin applikations ACS URL og bruger attributtilknytninger med følgende krav:
- Bruger-id:
- Brugerattribut i applikationen – brugernavn
- Maps brugerattribut i AWS SSO -
${user:AD_GUID}
- SageMaker domæne ID identifikator:
- Brugerattribut i applikationen -
domain-id
- Maps brugerattribut i AWS SSO – Domæne-id for Studio-forekomsten
- Brugerattribut i applikationen -
Applikationen implementerer adgangskontrollen for en AWS SSO-bruger ved at klargøre en Studio-brugerprofil med navnet svarende til AWS SSO-bruger-id'et.
Lambda funktion
Løsningen konfigurerer en Lambda-funktion som et invocation point for API Gateway /saml
ressource. Funktionen analyserer SAMLResponse
sendt af AWS SSO, uddrager domain-id
samt brugernavnet, og kalder den createPresignedDomainUrl
SageMaker API til at hente Studio URL og token og omdirigere brugeren til at logge på ved hjælp af et HTTP 302-svar. Lambda-funktionen har en specifik IAM-politik knyttet til sin eksekveringsrolle, der tillader sagemaker:createPresignedDomainUrl
handling kun, når den anmodes fra et specifikt netværks CIDR-område ved hjælp af VpcSourceIp
tilstand.
Lambda-funktionen har ingen logik til at validere SAML-svaret, for eksempel for at kontrollere en signatur. Men fordi API Gateway-endepunktet, der fungerer som ACS, kun er privat eller internt, er det ikke obligatorisk for dette proof of concept-miljø.
Implementer løsningen
GitHub repository leverer den fulde kildekode til end-to-end-løsningen.
For at implementere løsningen skal du have administrator- (eller superbruger) tilladelser til en AWS-konto og installere AWS kommandolinjegrænseflade (AWS CLI) og AWS SAM CLI og minimum Python 3.8.
Løsningen understøtter udrulning til tre AWS-regioner: eu-west-1
, eu-central-1
og us-east-1
. Sørg for at vælge en af disse regioner til implementering.
For at begynde at teste løsningen skal du udføre følgende installationstrin fra løsningens GitHub README-fil:
- Konfigurer AWS SSO, hvis du ikke har det konfigureret.
- Implementer løsningen ved hjælp af SAM-applikationen.
- Opret en ny brugerdefineret SAML 2.0-applikation.
Når du har gennemført installationstrinnene, kan du fortsætte med løsningstesten.
Test løsningen
Løsningen simulerer to use cases for at demonstrere brugen af AWS SSO og SageMaker identitetsbaserede politikker:
- Positiv use case – En bruger får adgang til Studio fra et udpeget CIDR-område gennem et VPC-slutpunkt
- Negativ use case – En bruger får adgang til Studio fra en offentlig IP-adresse
For at teste disse use cases skabte løsningen tre Amazon Elastic Compute Cloud (Amazon EC2) forekomster:
- Privat vært – En EC2 Windows-instans i et privat undernet, der er i stand til at få adgang til Studio (dit sikrede miljø på stedet)
- Bastion vært – En EC2 Linux-instans i det offentlige undernet, der bruges til at etablere en SSH-tunnel ind i den private vært på det private netværk
- Offentlig vært – En EC2 Windows-instans i et offentligt undernet for at demonstrere, at brugeren ikke kan få adgang til Studio fra en uautoriseret IP-adresse
Test Studio-adgang fra et autoriseret netværk
Følg disse trin for at udføre testen:
- For at få adgang til EC2 Windows-forekomsten på det private netværk skal du køre den kommando, der er angivet som værdien af SAM-outputnøglen
TunnelCommand
. Sørg for, at den private nøgle til det nøglepar, der er angivet i parameteren, er i det bibliotek, hvorfra SSH-tunnelkommandoen kører. Kommandoen opretter en SSH tunnel fra den lokale computerlocalhost:3389
til EC2 Windows-instansen på det private netværk. Se følgende eksempelkode: - På din lokale desktop eller notesbog skal du åbne en ny RDP-forbindelse (f.eks. ved hjælp af Microsoft Remote Desktop) vha
localhost
som målfjernværten. Denne forbindelse tunneleres via bastion-værten til den private EC2 Windows-instans. Brug brugernavnetAdministrator
og adgangskode fra stak-outputSageMakerWindowsPassword
. - Åbn Firefox-webbrowseren fra fjernskrivebordet.
- Naviger og log ind på AWS SSO-portalen ved hjælp af de legitimationsoplysninger, der er knyttet til det brugernavn, du har angivet som
ssoUserName
parameter. - Vælg den SageMaker Secure Demo AWS SSO-applikation fra AWS SSO-portalen.
Du bliver omdirigeret til Studio IDE i et nyt browservindue.
Test Studio-adgang fra et uautoriseret netværk
Følg nu disse trin for at simulere adgang fra et uautoriseret netværk:
- Åbn en ny RDP-forbindelse på den IP, der er angivet i
SageMakerWindowsPublicHost
SAML output. - Åbn Firefox-webbrowseren fra fjernskrivebordet.
- Naviger og log ind på AWS SSO-portalen ved hjælp af de legitimationsoplysninger, der er knyttet til det brugernavn, der blev angivet som
ssoUserName
parameter. - Vælg den SageMaker Secure Demo AWS SSO-applikation fra AWS SSO-portalen.
Denne gang modtager du en meddelelse om uautoriseret adgang.
Ryd op
For at undgå gebyrer skal du fjerne alle løsningsprovisionerede og manuelt oprettede ressourcer fra din AWS-konto. Følg instruktionerne i løsningens README-fil.
Konklusion
Vi demonstrerede, at ved at indføre et middleware-godkendelseslag mellem slutbrugeren og Studio, kan vi kontrollere det miljø, som brugeren har tilladelse til at få adgang til Studio fra og eksplicit blokere alle andre uautoriserede miljøer.
For yderligere at stramme sikkerheden kan du tilføje en IAM-politik til en brugerrolle for at forhindre adgang til Studio fra konsollen. Hvis du bruger AWS-organisationer, kan du implementere følgende servicekontrolpolitik for de organisatoriske enheder eller konti, der skal have adgang til Studio:
Selvom løsningen beskrevet i dette indlæg bruger API Gateway og Lambda, kan du udforske andre måder, såsom en EC2-instans med en instans rolle ved at bruge den samme arbejdsgang til validering af tilladelser som beskrevet eller endda et uafhængigt system til at håndtere brugergodkendelse og -autorisation og generere en Studio foruddefineret URL.
Yderligere læsning
Sikring af adgang til Studio er et aktivt forskningsemne, og der er andre relevante indlæg om lignende tilgange. Se følgende indlæg på AWS Machine Learning Blog for at lære mere om andre tjenester og arkitekturer, du kan bruge:
Om forfatterne
Jerome Bachelet er Solutions Architect hos Amazon Web Services. Han trives med at hjælpe kunder med at få mest muligt ud af AWS for at nå deres forretningsmål. Jerome har over 10 års erfaring med at arbejde med databeskyttelse og datasikkerhedsløsninger. Udover at være i skyen nyder Jerome rejser og kvalitetstid med sin kone og 2 døtre i Geneve-området i Schweiz.
Yevgeniy Ilyin er Solutions Architect hos AWS. Han har over 20 års erfaring med at arbejde på alle niveauer af softwareudvikling og løsningsarkitektur og har brugt programmeringssprog fra COBOL og Assembler til .NET, Java og Python. Han udvikler og koder cloud native løsninger med fokus på big data, analytics og data engineering.
- '
- "
- 100
- 7
- 9
- Om
- adgang
- Konto
- Handling
- aktiv
- adresse
- Alle
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- analytics
- api
- API'er
- Anvendelse
- arkitektur
- OMRÅDE
- Godkendelse
- tilladelse
- autopilot
- AWS
- være
- Big data
- Blog
- browser
- virksomhed
- ringe
- tilfælde
- udfordre
- udfordringer
- afgifter
- Cloud
- sky indfødte
- kode
- Kommunikation
- Compute
- Konfiguration
- tilslutning
- Connectivity
- Konsol
- forbruger
- Container
- Beholdere
- Legitimationsoplysninger
- Kunder
- data
- databeskyttelse
- datasikkerhed
- Udvikling
- dns
- Er ikke
- effekt
- Endpoint
- Engineering
- Miljø
- eksempel
- udførelse
- Dyrke motion
- erfaring
- eksperiment
- Uddrag
- Endelig
- finansielle
- finansielle tjenesteydelser
- Firefox
- Fornavn
- Fokus
- følger
- fuld
- funktion
- generere
- gif
- Hvordan
- How To
- HTTPS
- IAM
- Identity
- gennemføre
- gennemføre
- industrier
- integration
- Internet
- IP
- IP-adresse
- isolation
- IT
- Java
- Karriere
- holde
- Nøgle
- Sprog
- LÆR
- læring
- Line (linje)
- linux
- lokale
- machine learning
- ledelse
- microsoft
- model
- netto
- netværk
- Netværksadgang
- notesbøger
- Tilbud
- åbent
- Andet
- Adgangskode
- politikker
- politik
- Populær
- Portal
- Indlæg
- magt
- Main
- private
- private nøgle
- Profil
- Programmering
- programmeringssprog
- bevis
- Bevis for koncept
- beskytte
- beskyttelse
- give
- giver
- proxy
- offentlige
- Python
- kvalitet
- rækkevidde
- omdirigere
- Krav
- forskning
- ressource
- Ressourcer
- svar
- Kør
- sagemaker
- sikkerhed
- Tjenester
- servering
- sæt
- lignende
- Simpelt
- Software
- softwareudvikling
- Løsninger
- starte
- Statement
- opbevaring
- Understøttet
- Understøtter
- Schweiz
- systemet
- mål
- prøve
- Test
- Gennem
- tid
- token
- Trafik
- Kurser
- ui
- brugere
- værdi
- Virtual
- web
- webbrowser
- webservices
- vinduer
- inden for
- uden
- workflow
- Workforce
- virker
- år