Securitatea cloud la AWS este cea mai mare prioritate. Amazon SageMaker Studio promoții diverse mecanisme pentru a vă proteja datele și codul utilizând integrarea cu serviciile de securitate AWS, cum ar fi Gestionarea identității și accesului AWS (EU SUNT), AWS Service Management Service (AWS KMS) sau izolarea rețelei cu Cloud virtual virtual Amazon (Amazon VPC).
Clienții din industrii foarte reglementate, cum ar fi serviciile financiare, pot configurați Studio numai în VPC pentru a activa izolarea rețelei și a dezactiva accesul la internet de la notebook-urile Studio. Puteți utiliza integrarea IAM cu Studio pentru a controla utilizatorii care au acces la resurse precum blocnotesurile Studio, IDE-ul Studio sau Amazon SageMaker locuri de muncă de formare.
Un caz de utilizare popular este să restricționați accesul la Studio IDE numai utilizatorilor din interiorul unui interval CIDR de rețea specificat sau unui VPC desemnat. Puteți realiza acest lucru prin implementare Politicile SageMaker bazate pe identitate IAM și atașarea acelor politici utilizatorilor sau grupurilor IAM care necesită acele permisiuni. Cu toate acestea, domeniul SageMaker trebuie configurat cu Modul de autentificare IAM, deoarece politicile bazate pe identitate IAM nu sunt acceptate în Conectare unică AWS (SSO) modul de autentificare.
Mulți clienți folosesc AWS SSO pentru a permite controlul centralizat al identității forței de muncă și pentru a oferi o experiență de conectare constantă a utilizatorilor. Această postare arată cum să implementați acest caz de utilizare, păstrând în același timp capabilitățile AWS SSO pentru a accesa Studio.
Prezentare generală a soluțiilor
Când configurați un domeniu SageMaker în modul doar VPC și specificați subrețelele și grupurile de securitate, SageMaker creează interfețe elastice de rețea (ENIs) care sunt asociate cu grupurile dvs. de securitate din subrețelele specificate. ENI-urile permit containerelor dvs. de antrenament să se conecteze la resursele din VPC.
În acest mod, accesul direct la internet de la notebook-uri este complet dezactivat, iar tot traficul este direcționat printr-un ENI în VPC-ul tău privat. Aceasta include, de asemenea, traficul de la widget-urile și interfețele Studio UI - cum ar fi managementul experimentului, pilotul automat și monitorizarea modelului - către API-urile SageMaker backend respective. AWS recomandă utilizarea modului numai VPC pentru a exercita un control fin asupra accesului la rețea al Studio.
Prima provocare este că, deși Studio este implementat fără conexiune la internet, Studio IDE poate fi accesat de oriunde, presupunând acces la Consola de administrare AWS iar Studio este acordat unui director IAM. Această situație nu este acceptabilă dacă doriți să izolați complet Studio de o rețea publică și să conțineți toate comunicațiile într-un VPC privat strict controlat.
Pentru a aborda această provocare și a dezactiva orice acces la Studio IDE, cu excepția unui VPC desemnat sau a unui interval CIDR, puteți utiliza CreatePresignedDomainUrl SageMaker API. Rolul IAM sau utilizatorul utilizat pentru a apela acest API definește permisiunile de acces la Studio. Acum puteți utiliza politicile bazate pe identitate IAM pentru a implementa configurația de acces dorită. De exemplu, pentru a activa accesul numai de la un VPC desemnat, adăugați următoarea condiție la politica IAM, asociată cu un principal IAM, care este utilizată pentru a genera o adresă URL de domeniu presemnată:
Pentru a activa accesul numai de la un punct final VPC sau puncte finale desemnate, specificați următoarea condiție:
Utilizați următoarea condiție pentru a restricționa accesul dintr-un interval CIDR desemnat:
A doua provocare este aceea că controlul accesului bazat pe IAM funcționează numai atunci când domeniul SageMaker este configurat în modul de autentificare IAM; nu îl puteți folosi când domeniul SageMaker este implementat în modul AWS SSO. Următoarea secțiune arată cum să abordați aceste provocări și să implementați controlul accesului bazat pe IAM cu acces AWS SSO la Studio.
Privire de ansamblu asupra arhitecturii
Studio este publicat ca o aplicație SAML, care este atribuită unui anumit profil de utilizator SageMaker Studio. Utilizatorii pot accesa în mod convenabil Studio direct de pe portalul AWS SSO, așa cum se arată în următoarea captură de ecran.
Soluția se integrează cu a aplicație personalizată SAML 2.0 ca mecanism de declanșare a autentificării utilizatorului pentru Studio. Necesită ca aplicația personalizată SAML să fie configurată cu Gateway API Amazon Adresa URL a punctului final ca Assertion Consumer Service (ACS) și are nevoie de atribute de mapare care să conțină ID-ul utilizatorului AWS SSO, precum și ID-ul domeniului SageMaker.
Punctul final API Gateway apelează un AWS Lambdas funcție care analizează răspunsul SAML pentru a extrage ID-ul domeniului și ID-ul utilizatorului și le folosește pentru a genera o adresă URL semnată Studio. Funcția Lambda efectuează în sfârșit o redirecționare printr-un răspuns HTTP 302 pentru a conecta utilizatorul în Studio.
O politică IAM controlează mediul de rețea din care utilizatorii Studio li se permite să se conecteze, care include condiții de restricție, așa cum este descris în secțiunea anterioară. Această politică IAM este atașată funcției Lambda. Politica IAM conține permisiunea de a apela sagemaker:CreatePresignedDomainURL
API numai pentru un anumit profil de utilizator:
Următoarea diagramă prezintă arhitectura soluției.
Soluția implementează un domeniu SageMaker în VPC-ul dvs. privat și Puncte finale VPC pentru a accesa Studio, SageMaker runtime și SageMaker API printr-o conexiune privată, fără a fi nevoie de un gateway de internet. Punctele finale VPC sunt configurate cu DNS privat activat (PrivateDnsEnabled=True
) a asocia a zona gazda privata cu VPC-ul dvs. Acest lucru îi permite Studioului să acceseze API-ul SageMaker utilizând numele DNS public implicit api.sagemaker.<Region>.amazonaws.com
rezolvat la adresa IP privată a punctului final, în loc să utilizeze adresa URL a punctului final VPC.
Trebuie să adăugați puncte finale VPC la VPC-ul dvs. dacă doriți să accesați orice alte servicii AWS, cum ar fi Serviciul Amazon de stocare simplă (Amazon S3), Registrul Amazon de containere elastice (Amazon ECR), Serviciul AWS Security Token (AWS STS), Formarea AWS Cloud, Sau AWS CodeCommit.
Puteți controla pe deplin permisiunile utilizate pentru a genera adresa URL presemnată și orice alte apeluri API cu politici IAM atașate rolului de execuție a funcției Lambda sau puteți controla accesul la orice serviciu AWS utilizat prin Politici de puncte finale VPC. Pentru exemple de utilizare a politicilor IAM pentru a controla accesul la Studio și la API-ul SageMaker, consultați Controlați accesul la API-ul SageMaker utilizând politici bazate pe identitate.
Deși soluția necesită implementarea domeniului Studio în modul IAM, permite ca AWS SSO să fie utilizat ca mecanism pentru ca utilizatorii finali să se conecteze la Studio.
Următoarele subsecțiuni conțin descrieri detaliate ale principalelor componente ale soluției.
Gateway API
Punctul final API Gateway acționează ca țintă pentru adresa URL ACS a aplicației configurată în aplicația personalizată SAML 2.0. Punctul final este privat și are o resursă numită /saml
și o metodă POST cu cerere de integrare configurată ca proxy Lambda. Soluția folosește un punct final VPC cu o configurație com.amazonaws.<region>.execute-api
Nume DNS pentru a apela acest punct final API din VPC.
AWS SSO
O aplicație personalizată SAML 2.0 este configurată cu adresa URL a punctului final API Gateway https:/{ restapi-id}.execute-api.amazonaws.com/saml
ca adresă URL ACS a aplicației și utilizează mapări de atribute cu următoarele cerințe:
- Identificator utilizator:
- Atribut utilizator în aplicație - nume de utilizator
- Atributul de utilizator Maps în AWS SSO -
${user:AD_GUID}
- Identificatorul de cod al domeniului SageMaker:
- Atribut utilizator în aplicație -
domain-id
- Atributul de utilizator Maps în AWS SSO – ID de domeniu pentru instanța Studio
- Atribut utilizator în aplicație -
Aplicația implementează controlul accesului pentru un utilizator AWS SSO prin furnizarea unui profil de utilizator Studio cu numele egal cu ID-ul utilizatorului AWS SSO.
Funcția lambda
Soluția configurează o funcție Lambda ca punct de invocare pentru API Gateway /saml
resursă. Funcția analizează SAMLResponse
trimis de AWS SSO, extrage fișierul domain-id
precum și numele de utilizator și apelează createPresignedDomainUrl
SageMaker API pentru a prelua URL-ul și simbolul Studio și redirecționează utilizatorul să se conecteze folosind un răspuns HTTP 302. Funcția Lambda are o politică IAM specifică atașată rolului său de execuție care permite sagemaker:createPresignedDomainUrl
acțiune numai atunci când este solicitată dintr-un anumit interval CIDR de rețea folosind VpcSourceIp
starea.
Funcția Lambda nu are nicio logică pentru a valida răspunsul SAML, de exemplu pentru a verifica o semnătură. Cu toate acestea, deoarece punctul final API Gateway care servește ca ACS este privat sau intern, nu este obligatoriu pentru acest mediu de demonstrație a conceptului.
Implementați soluția
GitHub depozit furnizează codul sursă complet pentru soluția end-to-end.
Pentru a implementa soluția, trebuie să aveți permisiuni de administrator (sau utilizator cu putere) pentru un cont AWS și să instalați Interfața liniei de comandă AWS (AWS CLI) și AWS SAM CLI si minim Python 3.8.
Soluția acceptă implementarea în trei regiuni AWS: eu-west-1
, eu-central-1
, și us-east-1
. Asigurați-vă că selectați una dintre aceste regiuni pentru implementare.
Pentru a începe testarea soluției, trebuie să finalizați următorii pași de implementare din soluția Fișierul GitHub README:
- Configurați AWS SSO dacă nu îl aveți configurat.
- Implementați soluția folosind aplicația SAM.
- Creați o nouă aplicație personalizată SAML 2.0.
După ce finalizați pașii de implementare, puteți continua cu testarea soluției.
Testați soluția
Soluția simulează două cazuri de utilizare pentru a demonstra utilizarea politicilor bazate pe identitate AWS SSO și SageMaker:
- Caz de utilizare pozitiv – Un utilizator accesează Studio dintr-un interval CIDR desemnat printr-un punct final VPC
- Caz de utilizare negativ – Un utilizator accesează Studio de la o adresă IP publică
Pentru a testa aceste cazuri de utilizare, soluția a creat trei Cloud Elastic de calcul Amazon Instanțe (Amazon EC2):
- Gazdă privată – O instanță Windows EC2 într-o subrețea privată care poate accesa Studio (mediul dumneavoastră securizat local)
- Gazda bastionului – O instanță EC2 Linux în subrețeaua publică folosită pentru a stabili un tunel SSH în gazda privată din rețeaua privată
- Gazdă publică – O instanță Windows EC2 într-o subrețea publică pentru a demonstra că utilizatorul nu poate accesa Studio de la o adresă IP neautorizată
Testați accesul la Studio dintr-o rețea autorizată
Urmați acești pași pentru a efectua testul:
- Pentru a accesa instanța EC2 Windows în rețeaua privată, executați comanda furnizată ca valoare a cheii de ieșire SAM
TunnelCommand
. Asigurați-vă că cheia privată a perechii de chei specificată în parametru se află în directorul de unde rulează comanda tunel SSH. Comanda creează un tunel SSH de pe computerul locallocalhost:3389
la instanța EC2 Windows din rețeaua privată. Vedeți următorul exemplu de cod: - Pe desktop-ul sau notebook-ul local, deschideți o nouă conexiune RDP (de exemplu folosind Microsoft Remote Desktop) folosind
localhost
ca gazdă la distanță țintă. Această conexiune este tunelizată prin gazda bastion către instanța privată EC2 Windows. Utilizați numele de utilizatorAdministrator
și parola din rezultatul stiveiSageMakerWindowsPassword
. - Deschideți browserul web Firefox de pe desktopul de la distanță.
- Navigați și conectați-vă la portalul AWS SSO utilizând acreditările asociate cu numele de utilizator pe care l-ați specificat ca
ssoUserName
parametru. - Alege SageMaker Secure Demo Aplicația AWS SSO din portalul AWS SSO.
Sunteți redirecționat către Studio IDE într-o nouă fereastră de browser.
Testați accesul la Studio dintr-o rețea neautorizată
Acum urmați acești pași pentru a simula accesul dintr-o rețea neautorizată:
- Deschideți o nouă conexiune RDP pe IP-ul furnizat în
SageMakerWindowsPublicHost
Ieșire SAML. - Deschideți browserul web Firefox de pe desktopul de la distanță.
- Navigați și conectați-vă la portalul AWS SSO utilizând acreditările asociate cu numele de utilizator care a fost specificat ca
ssoUserName
parametru. - Alege SageMaker Secure Demo Aplicația AWS SSO din portalul AWS SSO.
De data aceasta primiți un mesaj de acces neautorizat.
A curăța
Pentru a evita taxele, trebuie să eliminați toate resursele furnizate de soluție și create manual din contul dvs. AWS. Urmați instrucțiunile din soluția Fișierul README.
Concluzie
Am demonstrat că prin introducerea unui strat de autentificare middleware între utilizatorul final și Studio, putem controla mediul din care utilizatorului i se permite să acceseze Studio și putem bloca în mod explicit orice alt mediu neautorizat.
Pentru a întări și mai mult securitatea, puteți adăuga o politică IAM la un rol de utilizator pentru a preveni accesul la Studio din consolă. Dacă utilizați Organizații AWS, puteți implementa următoarele politica de control al serviciului pentru unitățile organizaționale sau conturile care au nevoie de acces la Studio:
Deși soluția descrisă în această postare folosește API Gateway și Lambda, puteți explora alte moduri, cum ar fi o instanță EC2 cu un rol de instanță folosind același flux de lucru de validare a permisiunilor descris sau chiar un sistem independent pentru a gestiona autentificarea și autorizarea utilizatorilor și pentru a genera o adresă URL semnată Studio.
Lecturi suplimentare
Securizarea accesului la Studio este un subiect de cercetare activ și există și alte postări relevante despre abordări similare. Consultați următoarele postări de pe blogul AWS Machine Learning pentru a afla mai multe despre alte servicii și arhitecturi pe care le puteți utiliza:
Despre Autori
Jerome Bachelet este arhitect de soluții la Amazon Web Services. El se bucură să ajute clienții să obțină cea mai mare valoare din AWS pentru a-și atinge obiectivele de afaceri. Jerome are peste 10 ani de experiență în lucrul cu soluții de protecție și securitate a datelor. Pe lângă faptul că este în nor, Jerome se bucură de călătorii și timp de calitate cu soția și cele 2 fiice în zona Geneva, Elveția.
Evgheni Ilyin este arhitect de soluții la AWS. Are peste 20 de ani de experiență lucrând la toate nivelurile de dezvoltare software și arhitectură de soluții și a folosit limbaje de programare de la COBOL și Assembler până la .NET, Java și Python. El dezvoltă și codifică soluții native în cloud, cu accent pe big data, analiză și ingineria datelor.
- '
- "
- 100
- 7
- 9
- Despre Noi
- acces
- Cont
- Acțiune
- activ
- adresa
- TOATE
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- Google Analytics
- api
- API-uri
- aplicație
- arhitectură
- ZONĂ
- Autentificare
- autorizare
- autopilot
- AWS
- fiind
- Datele mari
- Blog
- browser-ul
- afaceri
- apel
- cazuri
- contesta
- provocări
- taxe
- Cloud
- Nor nativ
- cod
- Comunicare
- Calcula
- Configuraţie
- conexiune
- Suport conectare
- Consoleze
- consumator
- Recipient
- Containere
- scrisori de acreditare
- clienţii care
- de date
- protejarea datelor
- securitatea datelor
- Dezvoltare
- dns
- Nu
- efect
- Punct final
- Inginerie
- Mediu inconjurator
- exemplu
- execuție
- Exercita
- experienţă
- experiment
- extracte
- În cele din urmă
- financiar
- Servicii financiare
- Firefox
- First
- Concentra
- urma
- Complet
- funcţie
- genera
- gif
- Cum
- Cum Pentru a
- HTTPS
- IAM
- Identitate
- punerea în aplicare a
- Punere în aplicare a
- industrii
- integrare
- Internet
- IP
- Adresa IP
- izolare
- IT
- Java
- Locuri de munca
- păstrare
- Cheie
- Limbă
- AFLAȚI
- învăţare
- Linie
- linux
- local
- masina de învățare
- administrare
- Microsoft
- model
- net
- reţea
- Acces la retea
- notebook-uri
- promoții
- deschide
- Altele
- Parolă
- Politicile
- Politica
- Popular
- Portal
- postări
- putere
- Principal
- privat
- cheie privată
- Profil
- Programare
- limbaje de programare
- dovadă
- dovada de concept
- proteja
- protecţie
- furniza
- furnizează
- împuternicit
- public
- Piton
- calitate
- gamă
- redirecționa
- Cerinţe
- cercetare
- resursă
- Resurse
- răspuns
- Alerga
- sagemaker
- securitate
- Servicii
- servire
- set
- asemănător
- simplu
- Software
- de dezvoltare de software
- soluţii
- Începe
- Declarație
- depozitare
- Suportat
- Sprijină
- Elveția
- sistem
- Ţintă
- test
- Testarea
- Prin
- timp
- semn
- trafic
- Pregătire
- ui
- utilizatorii
- valoare
- Virtual
- web
- browser web
- servicii web
- ferestre
- în
- fără
- flux de lucru
- Forta de munca
- fabrică
- ani