Cloudbeveiliging heeft bij AWS de hoogste prioriteit. Amazon SageMaker Studio aanbiedingen verschillende mechanismen om uw gegevens en code te beschermen met behulp van integratie met AWS-beveiligingsservices zoals AWS Identiteits- en toegangsbeheer (IK BEN), AWS Sleutelbeheerservice (AWS KMS), of netwerkisolatie met Amazon virtuele privécloud (Amazone VPC).
Klanten in sterk gereguleerde sectoren, zoals financiële dienstverlening, kunnen: Studio alleen in VPC instellen modus om netwerkisolatie in te schakelen en internettoegang vanaf Studio-notebooks uit te schakelen. U kunt IAM-integratie met Studio gebruiken om te bepalen welke gebruikers toegang hebben tot bronnen zoals Studio-notebooks, de Studio IDE of Amazon Sage Maker opleiding banen.
Een populaire use-case is om de toegang tot de Studio IDE beperken alleen voor gebruikers van binnen een gespecificeerd netwerk-CIDR-bereik of een aangewezen VPC. U kunt dit bereiken door het implementeren van IAM op identiteit gebaseerd SageMaker-beleid en het koppelen van dat beleid aan de IAM-gebruikers of groepen die deze machtigingen nodig hebben. Het SageMaker-domein moet echter worden geconfigureerd met: IAM-verificatiemodus, omdat het op IAM-identiteit gebaseerde beleid niet wordt ondersteund in AWS eenmalige aanmelding (SSO) authenticatiemodus.
Veel klanten gebruiken AWS SSO om gecentraliseerd personeelsidentiteitscontrole mogelijk te maken en een consistente gebruikersaanmeldingservaring te bieden. Dit bericht laat zien hoe u deze use-case kunt implementeren met behoud van AWS SSO-mogelijkheden om toegang te krijgen tot Studio.
Overzicht oplossingen
Wanneer u een SageMaker-domein in de VPC-only-modus instelt en de subnetten en beveiligingsgroepen opgeeft, maakt SageMaker elastische netwerkinterfaces (ENI's) die zijn gekoppeld aan uw beveiligingsgroepen in de opgegeven subnetten. Met ENI's kunnen uw trainingscontainers verbinding maken met bronnen in uw VPC.
In deze modus is de directe internettoegang vanaf notebooks volledig uitgeschakeld en wordt al het verkeer omgeleid via een ENI in uw privé-VPC. Dit omvat ook verkeer van Studio UI-widgets en interfaces, zoals experimentbeheer, stuurautomaat en modelmonitor, naar hun respectieve backend SageMaker API's. AWS raadt aan om de modus Alleen VPC te gebruiken om fijnmazige controle uit te oefenen op netwerktoegang van Studio.
De eerste uitdaging is dat hoewel Studio wordt geïmplementeerd zonder internetverbinding, Studio IDE nog steeds overal toegankelijk is, ervan uitgaande dat er toegang is tot de AWS-beheerconsole en Studio wordt toegekend aan een IAM-principal. Deze situatie is onaanvaardbaar als u Studio volledig wilt isoleren van een openbaar netwerk en alle communicatie binnen een streng gecontroleerde privé-VPC wilt houden.
Om deze uitdaging aan te gaan en alle toegang tot Studio IDE uit te schakelen, behalve vanaf een aangewezen VPC of een CIDR-reeks, kunt u de CreatePresignedDomainUrl SageMaker-API. De IAM-rol of -gebruiker die wordt gebruikt om deze API aan te roepen, definieert de machtigingen voor toegang tot Studio. Nu kunt u IAM-beleid op basis van identiteit gebruiken om de gewenste toegangsconfiguratie te implementeren. Als u bijvoorbeeld alleen toegang wilt inschakelen vanaf een aangewezen VPC, voegt u de volgende voorwaarde toe aan het IAM-beleid, gekoppeld aan een IAM-principal, die wordt gebruikt om een vooraf ondertekende domein-URL te genereren:
Als u alleen toegang wilt inschakelen vanaf een aangewezen VPC-eindpunt of eindpunten, geeft u de volgende voorwaarde op:
Gebruik de volgende voorwaarde om de toegang vanuit een aangewezen CIDR-bereik te beperken:
De tweede uitdaging is dat op IAM gebaseerde toegangscontrole alleen werkt wanneer het SageMaker-domein is geconfigureerd in IAM-authenticatiemodus; u kunt het niet gebruiken wanneer het SageMaker-domein is geïmplementeerd in de AWS SSO-modus. Het volgende gedeelte laat zien hoe u deze uitdagingen kunt aanpakken en op IAM gebaseerde toegangscontrole kunt implementeren met AWS SSO-toegang tot Studio.
Architectuur overzicht
Studio wordt gepubliceerd als een SAML-toepassing, die is toegewezen aan een specifiek SageMaker Studio-gebruikersprofiel. Gebruikers hebben gemakkelijk rechtstreeks toegang tot Studio vanuit de AWS SSO-portal, zoals weergegeven in de volgende schermafbeelding.
De oplossing integreert met a aangepaste SAML 2.0-toepassing als het mechanisme om de gebruikersauthenticatie voor Studio te activeren. Het vereist dat de aangepaste SAML-toepassing is geconfigureerd met de Amazon API-gateway endpoint-URL als de Assertion Consumer Service (ACS) en heeft toewijzingskenmerken nodig die de AWS SSO-gebruikers-ID en de SageMaker-domein-ID bevatten.
Het API Gateway-eindpunt roept een AWS Lambda functie die het SAML-antwoord parseert om de domein-ID en gebruikers-ID te extraheren en deze te gebruiken om een vooraf door Studio ondertekende URL te genereren. De Lambda-functie voert ten slotte een omleiding uit via een HTTP 302-reactie om de gebruiker in Studio aan te melden.
Een IAM-beleid regelt de netwerkomgeving van waaruit Studio-gebruikers mogen inloggen, inclusief beperkende voorwaarden zoals beschreven in de vorige sectie. Dit IAM-beleid is gekoppeld aan de Lambda-functie. Het IAM-beleid bevat toestemming om de sagemaker:CreatePresignedDomainURL
API alleen voor een specifiek gebruikersprofiel:
Het volgende diagram toont de oplossingsarchitectuur.
De oplossing implementeert een SageMaker-domein in uw privé-VPC en VPC-eindpunten om toegang te krijgen tot Studio, SageMaker runtime en de SageMaker API via een privéverbinding zonder dat er een internetgateway nodig is. De VPC-eindpunten zijn geconfigureerd met privé-DNS ingeschakeld (PrivateDnsEnabled=True
) om een te associëren privé gehoste zone met uw VPC. Hierdoor heeft Studio toegang tot de SageMaker API met behulp van de standaard openbare DNS-naam api.sagemaker.<Region>.amazonaws.com
omgezet naar het privé-IP-adres van het eindpunt in plaats van de VPC-eindpunt-URL te gebruiken.
U moet VPC-eindpunten aan uw VPC toevoegen als u toegang wilt tot andere AWS-services zoals Amazon eenvoudige opslagservice (Amazone S3), Amazon Elastic Container-register (Amazone ECR), AWS-beveiligingstoken-service (AWS STS), AWS CloudFormatieof AWS Codecommit.
U kunt de machtigingen die worden gebruikt om de vooraf ondertekende URL en alle andere API-aanroepen te genereren volledig beheren met IAM-beleid dat is gekoppeld aan de uitvoeringsrol van de Lambda-functie of de toegang tot elke gebruikte AWS-service regelen via VPC-eindpuntbeleid. Voor voorbeelden van het gebruik van IAM-beleid om de toegang tot Studio en SageMaker API te beheren, zie: Beheer de toegang tot de SageMaker API met behulp van op identiteit gebaseerd beleid.
Hoewel de oplossing vereist dat het Studio-domein in IAM-modus wordt geïmplementeerd, kan AWS SSO worden gebruikt als mechanisme voor eindgebruikers om in te loggen bij Studio.
De volgende subsecties bevatten gedetailleerde beschrijvingen van de belangrijkste oplossingscomponenten.
API-gateway
Het API Gateway-eindpunt fungeert als het doel voor de ACS-URL van de toepassing die is geconfigureerd in de aangepaste SAML 2.0-toepassing. Het eindpunt is privé en heeft een resource genaamd /saml
en een POST-methode met integratieverzoek geconfigureerd als Lambda-proxy. De oplossing maakt gebruik van een VPC-eindpunt met een geconfigureerde com.amazonaws.<region>.execute-api
DNS-naam om dit API-eindpunt aan te roepen vanuit de VPC.
AWS eenmalige aanmelding
Een aangepaste SAML 2.0-toepassing is geconfigureerd met de API Gateway-eindpunt-URL https:/{ restapi-id}.execute-api.amazonaws.com/saml
als de toepassing ACS-URL, en gebruikt attribuuttoewijzingen met de volgende vereisten:
- Gebruikers-ID:
- Gebruikersattribuut in de applicatie – gebruikersnaam
- Maps-gebruikerskenmerk in AWS SSO -
${user:AD_GUID}
- SageMaker domein-ID identifier:
- Gebruikersattribuut in de applicatie -
domain-id
- Maps-gebruikerskenmerk in AWS SSO – Domein-ID voor de Studio-instantie
- Gebruikersattribuut in de applicatie -
De applicatie implementeert de toegangscontrole voor een AWS SSO-gebruiker door een Studio-gebruikersprofiel in te richten met de naam die gelijk is aan het AWS SSO-gebruikers-ID.
Lambda-functie
De oplossing configureert een Lambda-functie als een aanroeppunt voor de API Gateway /saml
bron. De functie ontleedt de SAMLResponse
verzonden door AWS SSO, extraheert de domain-id
evenals de gebruikersnaam, en roept de createPresignedDomainUrl
SageMaker API om de Studio-URL en het token op te halen en de gebruiker om te leiden om in te loggen met een HTTP 302-antwoord. De Lambda-functie heeft een specifiek IAM-beleid dat is gekoppeld aan de uitvoeringsrol waarmee de sagemaker:createPresignedDomainUrl
actie alleen wanneer deze wordt aangevraagd bij een specifiek netwerk-CIDR-bereik met behulp van de VpcSourceIp
staat.
De Lambda-functie heeft geen logica om het SAML-antwoord te valideren, bijvoorbeeld om een handtekening te controleren. Omdat het API Gateway-eindpunt dat als ACS dient, alleen privé of alleen intern is, is dit niet verplicht voor deze proof-of-concept-omgeving.
Implementeer de oplossing
De GitHub-repository biedt de volledige broncode voor de end-to-end-oplossing.
Om de oplossing te implementeren, moet u beheerdersrechten (of hoofdgebruiker) hebben voor een AWS-account en de AWS-opdrachtregelinterface (AWS CLI) en AWS SAM CLI en minimaal Python 3.8.
De oplossing ondersteunt implementatie in drie AWS-regio's: eu-west-1
, eu-central-1
en us-east-1
. Zorg ervoor dat u een van deze regio's selecteert voor implementatie.
Om te beginnen met het testen van de oplossing, moet u de volgende implementatiestappen uitvoeren vanaf de oplossing: GitHub README-bestand:
- Stel AWS SSO in als u dit niet hebt geconfigureerd.
- Implementeer de oplossing met behulp van de SAM-toepassing.
- Maak een nieuwe aangepaste SAML 2.0-toepassing.
Nadat u de implementatiestappen hebt voltooid, kunt u doorgaan met de oplossingstest.
Test de oplossing
De oplossing simuleert twee use-cases om het gebruik van AWS SSO en SageMaker op identiteit gebaseerd beleid te demonstreren:
- Positief gebruiksgeval – Een gebruiker krijgt toegang tot Studio vanuit een aangewezen CIDR-bereik via een VPC-eindpunt
- Negatief gebruiksscenario – Een gebruiker heeft toegang tot Studio vanaf een openbaar IP-adres
Om deze use-cases te testen, heeft de oplossing drie Amazon Elastic Compute-cloud (Amazon EC2) gevallen:
- Privé host – Een EC2 Windows-instantie in een privésubnet dat toegang heeft tot Studio (uw on-premises beveiligde omgeving)
- Bastion-host – Een EC2 Linux-instantie in het openbare subnet die wordt gebruikt om een SSH-tunnel tot stand te brengen naar de privéhost op het privénetwerk
- Publieke host – Een EC2 Windows-instantie in een openbaar subnet om aan te tonen dat de gebruiker geen toegang heeft tot Studio vanaf een niet-geautoriseerd IP-adres
Test Studio-toegang vanaf een geautoriseerd netwerk
Volg deze stappen om de test uit te voeren:
- Om toegang te krijgen tot de EC2 Windows-instantie op het privénetwerk, voert u de opdracht uit die is opgegeven als de waarde van de SAM-uitvoersleutel
TunnelCommand
. Zorg ervoor dat de privésleutel van het sleutelpaar dat is opgegeven in de parameter zich in de map bevindt waar de SSH-tunnelopdracht vandaan komt. De opdracht maakt een SSH-tunnel vanaf de lokale computer aanlocalhost:3389
naar de EC2 Windows-instantie op het privénetwerk. Zie de volgende voorbeeldcode: - Open op uw lokale desktop of notebook een nieuwe RDP-verbinding (bijvoorbeeld met Microsoft Remote Desktop) met
localhost
als de doelhost op afstand. Deze verbinding wordt via de bastionhost getunneld naar de privé EC2 Windows-instantie. Gebruik de gebruikersnaamAdministrator
en wachtwoord van de stapeluitvoerSageMakerWindowsPassword
. - Open de Firefox-webbrowser vanaf het externe bureaublad.
- Navigeer en log in op de AWS SSO-portal met de inloggegevens die zijn gekoppeld aan de gebruikersnaam die u hebt opgegeven als de
ssoUserName
parameter. - Kies de SageMaker Veilige Demo AWS SSO-toepassing van de AWS SSO-portal.
U wordt doorgestuurd naar de Studio IDE in een nieuw browservenster.
Test Studio-toegang vanaf een niet-geautoriseerd netwerk
Volg nu deze stappen om toegang vanaf een niet-geautoriseerd netwerk te simuleren:
- Open een nieuwe RDP-verbinding op het IP-adres in de
SageMakerWindowsPublicHost
SAML-uitvoer. - Open de Firefox-webbrowser vanaf het externe bureaublad.
- Navigeer en log in op de AWS SSO-portal met de inloggegevens die zijn gekoppeld aan de gebruikersnaam die is opgegeven als de
ssoUserName
parameter. - Kies de SageMaker Veilige Demo AWS SSO-toepassing van de AWS SSO-portal.
Deze keer ontvangt u een bericht over onbevoegde toegang.
Opruimen
Om kosten te voorkomen, moet u alle door de oplossing geleverde en handmatig gemaakte bronnen uit uw AWS-account verwijderen. Volg de instructies in de oplossing's LEESMIJ-bestand.
Conclusie
We hebben aangetoond dat door de introductie van een middleware-authenticatielaag tussen de eindgebruiker en Studio, we de omgeving kunnen controleren waartoe de gebruiker toegang heeft tot Studio en elke andere niet-geautoriseerde omgeving expliciet kunnen blokkeren.
Om de beveiliging verder aan te scherpen, kunt u een IAM-beleid toevoegen aan een gebruikersrol om toegang tot Studio vanaf de console te voorkomen. Als je gebruikt AWS-organisaties, kunt u het volgende implementeren: servicecontrolebeleid voor de organisatie-eenheden of accounts die toegang tot Studio nodig hebben:
Hoewel de oplossing die in dit bericht wordt beschreven API Gateway en Lambda gebruikt, kunt u andere manieren verkennen, zoals een EC2-instantie met een instantie rol dezelfde workflow voor machtigingsvalidatie gebruiken als beschreven of zelfs een onafhankelijk systeem om gebruikersauthenticatie en -autorisatie af te handelen en een vooraf door Studio ondertekende URL te genereren.
Verdere lezing
Toegang tot Studio beveiligen is een actief onderzoeksonderwerp en er zijn andere relevante berichten over vergelijkbare benaderingen. Raadpleeg de volgende berichten op de AWS Machine Learning Blog voor meer informatie over andere services en architecturen die u kunt gebruiken:
Over de auteurs
Jérôme Bachelet is Solutions Architect bij Amazon Web Services. Hij gedijt bij het helpen van klanten om de meeste waarde uit AWS te halen om hun zakelijke doelstellingen te bereiken. Jerome heeft meer dan 10 jaar ervaring in het werken met oplossingen voor gegevensbescherming en gegevensbeveiliging. Naast het feit dat hij in de cloud is, geniet Jerome van reizen en quality time met zijn vrouw en 2 dochters in de regio Genève, Zwitserland.
Jevgeni Iljin is Solutions Architect bij AWS. Hij heeft meer dan 20 jaar ervaring in het werken op alle niveaus van softwareontwikkeling en oplossingsarchitectuur en heeft programmeertalen gebruikt van COBOL en Assembler tot .NET, Java en Python. Hij ontwikkelt en codeert cloud-native oplossingen met een focus op big data, analytics en data engineering.
- '
- "
- 100
- 7
- 9
- Over
- toegang
- Account
- Actie
- actieve
- adres
- Alles
- Amazone
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- analytics
- api
- APIs
- Aanvraag
- architectuur
- GEBIED
- authenticatie
- machtiging
- automatische piloot
- AWS
- wezen
- Big data
- Blog
- browser
- bedrijfsdeskundigen
- Bellen
- gevallen
- uitdagen
- uitdagingen
- lasten
- Cloud
- wolk native
- code
- Communicatie
- Berekenen
- Configuratie
- versterken
- Connectiviteit
- troosten
- consument
- Containers
- containers
- Geloofsbrieven
- Klanten
- gegevens
- gegevensbescherming
- gegevensbeveiliging
- Ontwikkeling
- dns
- Nee
- effect
- Endpoint
- Engineering
- Milieu
- voorbeeld
- uitvoering
- Oefening
- ervaring
- experiment
- extracten
- Tot slot
- financieel
- financiële diensten
- Firefox
- Voornaam*
- Focus
- volgen
- vol
- functie
- voortbrengen
- gif
- Hoe
- How To
- HTTPS
- IAM
- Identiteit
- uitvoeren
- uitvoering
- industrieën
- integratie
- Internet
- IP
- IP-adres
- isolatie
- IT
- Java
- Vacatures
- houden
- sleutel
- Talen
- LEARN
- leren
- Lijn
- linux
- lokaal
- machine learning
- management
- Microsoft
- model
- netto
- netwerk
- Netwerktoegang
- laptops
- Aanbod
- open
- Overige
- Wachtwoord
- beleidsmaatregelen door te lezen.
- beleidsmaatregelen
- Populair
- Portaal
- Berichten
- energie
- Principal
- privaat
- private Key
- Profiel
- Programming
- programmeertalen
- bewijs
- proof of concept voor
- beschermen
- bescherming
- zorgen voor
- biedt
- volmacht
- publiek
- Python
- kwaliteit
- reeks
- redirect
- Voorwaarden
- onderzoek
- hulpbron
- Resources
- antwoord
- lopen
- sagemaker
- veiligheid
- Diensten
- serveer-
- reeks
- gelijk
- Eenvoudig
- Software
- software development
- Oplossingen
- begin
- Statement
- mediaopslag
- ondersteunde
- steunen
- Zwitserland
- system
- doelwit
- proef
- Testen
- Door
- niet de tijd of
- teken
- verkeer
- Trainingen
- ui
- gebruikers
- waarde
- Virtueel
- web
- web browser
- webservices
- ruiten
- binnen
- zonder
- workflow
- Workforce
- Bedrijven
- jaar