In parte 1 din această serie, am demonstrat cum să rezolvăm un Amazon SageMaker Studio adresa URL presemnată dintr-o rețea corporativă folosind punctele finale VPC private Amazon fără a traversa internetul. În această postare, vom continua să construim pe deasupra soluției anterioare pentru a demonstra cum să construim un Gateway API privat prin Gateway API Amazon ca interfață proxy pentru generare și accesare Amazon SageMaker URL-uri presemnate. În plus, adăugăm o balustradă suplimentară pentru a ne asigura că adresele URL presemnate sunt generate și accesate numai pentru utilizatorul final autentificat din rețeaua corporativă.
Prezentare generală a soluțiilor
Următoarea diagramă ilustrează arhitectura soluției.
Procesul include următorii pași:
- În Amazon Cognito grup de utilizatori, mai întâi configurați un utilizator cu numele care se potrivește cu profilul de utilizator Studio și înregistrați Studio ca client al aplicației în grupul de utilizatori.
- Utilizatorul se federalizează de la furnizorul său de identitate corporativă (IdP) și se autentifică cu pool-ul de utilizatori Amazon Cognito pentru a accesa Studio.
- Amazon Cognito returnează un token utilizatorului care autorizează accesul la aplicația Studio.
- Utilizatorul invocă
createStudioPresignedUrl
API pe API Gateway împreună cu un simbol în antet. - API Gateway invocă o personalizare AWS Lambdas autorizator și validează jetonul.
- Când simbolul este valid, Amazon Cognito returnează către API Gateway o politică de acordare a accesului cu ID-ul profilului utilizatorului studioului.
- API Gateway invocă
createStudioPresignedUrl
Funcția Lambda pentru crearea adresei URL presemnate de studio. -
createStudioPresignedUrl
funcția creează o adresă URL presemnată folosind punctul final VPC API SageMaker și revine la apelant. - Utilizatorul accesează adresa URL presemnată din rețeaua corporativă care se rezolvă prin punctul final Studio VPC.
- Funcția Gestionarea identității și accesului AWS (IAM) se asigură că crearea și accesul adresei URL presemnate sunt efectuate prin punctele finale VPC.
Următoarele secțiuni vă ghidează prin implementarea, configurarea și validarea soluției pentru API-ul privat API Gateway pentru a crea și rezolva o adresă URL presemnată Studio dintr-o rețea corporativă folosind punctele finale VPC.
- Implementați soluția
- Configurați utilizatorul Amazon Cognito
- Autentificarea API-ului privat pentru adresa URL presemnată utilizând un token web JSON
- Configurați serverul DNS corporativ pentru accesarea API-ului privat
- Testați API-ul privat API Gateway pentru o adresă URL presemnată din rețeaua corporativă
- Politica de autentificare Lambda pentru adresa URL presemnată
- A curăța
Implementați soluția
Puteți implementa soluția fie prin intermediul Consola de administrare AWS sau Model de aplicație fără server AWS (AWS SAM).
Pentru a implementa soluția prin consolă, lansați următoarele Formarea AWS Cloud șablon în contul dvs. prin alegere Lansați Stack. Este nevoie de aproximativ 10 minute pentru finalizarea stivei CloudFormation.
Pentru a implementa soluția folosind AWS SAM, puteți găsi cel mai recent cod în depozitul GitHub aws-samples, unde puteți contribui și la exemplul de cod. Următoarele comenzi arată cum să implementați soluția folosind AWS SAM CLI. Dacă nu este instalat în prezent, instalați AWS SAM CLI.
- Clonează depozitul la https://github.com/aws-samples/secure-sagemaker-studio-presigned-url.
- După ce clonați depozitul, navigați la sursă și rulați următorul cod:
Configurați utilizatorul Amazon Cognito
Pentru a configura utilizatorul Amazon Cognito, parcurgeți următorii pași:
- Creați un utilizator Amazon Cognito cu același nume ca un profil de utilizator SageMaker:
- Setați parola utilizatorului:
- Obțineți un token de acces:
Autentificarea API-ului privat pentru adresa URL presemnată utilizând un token web JSON
Când ați implementat un API privat pentru a crea o adresă URL presemnată SageMaker, ați adăugat o balustradă pentru a restricționa accesul la adresa URL presemnată de către oricine din afara rețelei corporative și a punctului final VPC. Cu toate acestea, fără a implementa un alt control asupra API-ului privat din rețeaua corporativă, orice utilizator intern din rețeaua corporativă ar putea să transmită parametri neautentificați pentru profilul de utilizator SageMaker și să acceseze orice aplicație SageMaker.
Pentru a atenua această problemă, propunem transmiterea unui JSON Web Token (JWT) pentru apelantul autentificat către API Gateway și validarea acelui jeton cu un autorizator JWT. Există mai multe opțiuni pentru implementarea unui autorizator pentru Gateway-ul API privat, folosind fie un personalizat Autorizator lambda or Amazon Cognito.
Cu un autorizator Lambda personalizat, puteți încorpora un nume de profil de utilizator SageMaker în politica returnată. Acest lucru împiedică utilizatorii din rețeaua corporativă să poată trimite orice nume de profil de utilizator SageMaker pentru a crea o adresă URL presemnată pe care nu sunt autorizați să o creeze. Utilizăm Amazon Cognito pentru a ne genera token-urile și un autorizator Lambda personalizat pentru a valida și returna politica corespunzătoare. Pentru mai multe informații, consultați Crearea unei autorizații precise folosind Amazon Cognito, API Gateway și IAM. Autorizatorul Lambda folosește numele de utilizator Amazon Cognito ca nume de profil de utilizator.
Dacă nu puteți utiliza Amazon Cognito, puteți dezvolta o aplicație personalizată pentru a autentifica și a transmite jetoane utilizatorului final către autorizatorul Lambda. Pentru mai multe informații, consultați Utilizați autorizatorii API Gateway Lambda.
Configurați serverul DNS corporativ pentru accesarea API-ului privat
Pentru a configura serverul DNS corporativ, parcurgeți următorii pași:
- Pe Cloud Elastic de calcul Amazon (Amazon EC2), alegeți instanța DNSA EC2 locală și conectați-vă prin Manager de sistem Manager de sesiune.
- Adăugați o înregistrare de zonă în
/etc/named.conf
fișier pentru rezolvarea la numele DNS al Gateway-ului API prin intermediul dvs Ruta Amazonului 53 rezolutor de intrare, așa cum se arată în următorul cod: - Reporniți serviciul numit folosind următoarea comandă:
Validați solicitarea unui URL presemnat de la API-ul privat API Gateway pentru utilizatorii autorizați
Într-un scenariu real, ați implementa o interfață front-end care ar trece anteturile de autorizare adecvate pentru resursele autentificate și autorizate folosind fie o soluție personalizată, fie o pârghie. Amplificare AWS. Pentru concizia acestei postări pe blog, următorii pași îl ajută pe Postman să valideze rapid soluția pe care am implementat-o, de fapt, restricționează solicitarea adresei URL presemnate pentru un utilizator intern, cu excepția cazului în care este autorizat să facă acest lucru.
Pentru a valida soluția cu Postman, parcurgeți următorii pași:
- Instalați Postman pe instanța WINAPP EC2. Consultați instrucțiunile aici
- Deschideți Postman și adăugați jetonul de acces la dvs
Authorization
antet: - Modificați adresa URL a API Gateway pentru a o accesa din instanța EC2 internă:
- Adăugați punctul final VPC în adresa URL a gateway-ului dvs. API:
- Adauga
Host
antet cu o valoare a adresei URL a API Gateway: - În primul rând, schimbați
EMPLOYEE_ID
către utilizatorul Amazon Cognito și numele profilului de utilizator SageMaker. Asigurați-vă că primiți o adresă URL autorizată și semnată. - Apoi schimbați
EMPLOYEE_ID
unui utilizator care nu este al tău și asigură-te că primești o eroare de acces.
- Pe consola Amazon EC2, alegeți instanța WINAPP locală și conectați-vă prin clientul RDP.
- Deschideți un browser Chrome și navigați la adresa URL autorizată presemnată pentru a lansa Studio.
Studio este lansat prin punctul final VPC cu adresa de la distanță ca IP al punctului final VPC Studio.
Dacă adresa URL presemnată este accesată în afara rețelei corporative, rezoluția eșuează deoarece condiția de politică IAM pentru adresa URL presemnată impune crearea și accesul de la un punct final VPC.
Politica de autentificare Lambda pentru adresa URL presemnată
Soluția de mai sus a creat următoarea politică de autorizare pentru Lambda care a generat o adresă URL presemnată pentru accesarea SageMaker Studio.
Concluzie
În această postare, am demonstrat cum să accesăm Studio utilizând un gateway API privat dintr-o rețea corporativă utilizând puncte finale VPC private Amazon, împiedicând accesul la adrese URL presemnate din afara rețelei corporative și securând API Gateway cu un autorizator JWT utilizând Amazon Cognito și Lambda personalizat autorizatorii.
Încercați această soluție și experimentați integrarea acesteia cu portalul dvs. corporativ și lăsați-vă feedback în comentarii!
Despre Autori
Ram Vittal este un arhitect de soluții de învățare automată la AWS. Are peste 20 de ani de experiență în arhitectura și construirea de aplicații distribuite, hibride și cloud. Este pasionat de construirea de soluții AI/ML și Big Data sigure și scalabile pentru a ajuta clienții întreprinderilor cu adoptarea și optimizarea cloud-ului pentru a-și îmbunătăți rezultatele în afaceri. În timpul liber, îi place tenisul, fotografia și filmele de acțiune.
Jonathan Nguyen este consultant senior de securitate în echipă de livrare partajată la AWS. Experiența sa este în AWS Security, cu accent pe Detectarea amenințărilor și Răspunsul la incident. Astăzi, el ajută clienții întreprinderilor să dezvolte o strategie de securitate AWS cuprinzătoare, să implementeze soluții de securitate la scară și să instruiască clienții cu privire la cele mai bune practici AWS Security.
Chris Childers este arhitect de infrastructură cloud în servicii profesionale la AWS. El lucrează cu clienții AWS pentru a proiecta și automatiza infrastructura lor cloud și pentru a îmbunătăți adoptarea culturii și proceselor DevOps.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: https://aws.amazon.com/blogs/machine-learning/secure-amazon-sagemaker-studio-presigned-urls-part-2-private-api-with-jwt-authentication/
- "
- 10
- 100
- a
- Despre Noi
- acces
- accesarea
- Cont
- Acțiune
- adăugat
- Suplimentar
- adresa
- Adoptare
- Amazon
- O alta
- oricine
- api
- aplicaţia
- aplicație
- aplicatii
- adecvat
- aproximativ
- arhitectură
- autentificata
- autentifică
- Autentificare
- autorizare
- automatizarea
- AWS
- fundal
- deoarece
- fiind
- CEL MAI BUN
- Cele mai bune practici
- Datele mari
- Blog
- frontieră
- browser-ul
- construi
- Clădire
- afaceri
- apelant
- Schimbare
- taxe
- Alege
- Chrome
- browserul Chrome
- Cloud
- infrastructura cloud
- cod
- Completă
- cuprinzător
- Calcula
- condiție
- Configuraţie
- Conectați
- Consoleze
- consultant
- continua
- a contribui
- Control
- Istoria
- crea
- a creat
- creează
- Crearea
- creaţie
- Cultură
- În prezent
- personalizat
- clienţii care
- de date
- livrare
- demonstra
- demonstrat
- implementa
- dislocate
- desfășurarea
- Amenajări
- Detectare
- dezvolta
- distribuite
- dns
- efect
- Punct final
- Afacere
- experienţă
- experiment
- Eșec
- feedback-ul
- First
- Concentra
- următor
- Înainte
- din
- funcţie
- În plus
- poartă
- genera
- generată
- GitHub
- ajutor
- ajută
- Cum
- Cum Pentru a
- Totuși
- HTTPS
- Hibrid
- Identitate
- punerea în aplicare a
- Punere în aplicare a
- îmbunătăţi
- include
- informații
- Infrastructură
- instanță
- interfaţă
- Internet
- IP
- problema
- IT
- călătorie
- Ultimele
- lansa
- a lansat
- învăţare
- Părăsi
- Pârghie
- pîrghii
- maşină
- masina de învățare
- face
- FACE
- administrare
- manager
- potrivire
- mai mult
- Filme
- multiplu
- Navigaţi
- reţea
- în curs de desfășurare
- optimizare
- Opţiuni
- parte
- Care trece
- pasionat
- Parolă
- fotografie
- Politica
- piscină
- Portal
- prevenirea
- precedent
- privat
- proces
- procese
- profesional
- Profil
- propune
- furnizorul
- împuternicit
- repede
- a primi
- record
- Inregistreaza-te
- la distanta
- depozit
- resursă
- Resurse
- răspuns
- reveni
- Returnează
- Traseul
- Alerga
- acelaşi
- scalabil
- Scară
- sigur
- securitate
- serie
- serverless
- serviciu
- Servicii
- set
- comun
- Arăta
- indicat
- So
- solid
- soluţie
- soluţii
- stivui
- Declarație
- Strategie
- studio
- echipă
- Sursa
- trei
- Prin
- timp
- astăzi
- semn
- indicativele
- top
- Tren
- utilizare
- utilizatorii
- validare
- valoare
- versiune
- web
- în
- fără
- fabrică
- ar
- ani
- Ta