Puncte:11

Care este o modalitate sigură și ușor de utilizat de a oferi doar câțiva utilizatori acces la aplicația web de pe Amazon EC2?

drapel cn

Situatie

Avem o aplicație web găzduită pe Amazon EC2. Este destinat să fie folosit doar de câțiva utilizatori dintr-o companie.

Cum ne descurcăm cu asta

  • Împărtășim adresa IP (elastică) a instanței cu utilizatorii.
  • Adăugăm adresa IP a fiecărui utilizator la grupul de securitate al instanței, după cum este necesar.

Cand spun pe măsură ce este nevoie, mă refer la e-mailuri de la utilizatori care se plâng că portalul web afișează o pagină de eroare. Ei uită că acest pas de includere a IP-ului în grupul de securitate este necesar (și nu-i învinovățesc; sunt utilizatori finali).

De dragul acestei întrebări, să presupunem că avem un total de 5 utilizatori într-o companie care au nevoie de acest acces. Adresele IP ale utilizatorului-1 și utilizatorului-2 au fost deja adăugate la grupul de securitate.

Probleme

  1. Utilizatorul-3 merge direct la adresa IP, dar nu o poate accesa deoarece adresa IP a utilizatorului nu a fost adăugată la grupul de securitate.
  2. Dacă Utilizatorul-1 sau Utilizatorul-2 își repornește internetul, adresa lor IP se va schimba probabil (IP dinamic furnizat de ISP) și noua adresă IP va trebui adăugată la grupul de securitate (iar cea veche va trebui revocată pentru evitați accesul altora).

Alte variante pe care le iau in calcul

  1. Oferiți acces numai la VPN-ul de birou și cereți tuturor utilizatorilor să se conecteze prin intermediul acestuia.
  2. (Foarte greoaie pentru utilizator) Cereți utilizatorilor să se conecteze la consola de management AWS, să acceseze serviciul EC2, să acceseze secțiunea Grupuri de securitate și să adauge manual adresele lor IP (utilizatorii au deja utilizatori AWS IAM și permisiunile corespunzătoare pentru a efectua acest lucru) .
  3. Creați un script care adaugă IP-ul curent al utilizatorului la grupul de securitate (folosind AWS CLI / SDK) - sună foarte periculos și nepotrivit, deoarece va trebui să includem acreditările API ale cuiva în script.
barbecue avatar
drapel br
Ce fel de aplicație web? Este foarte ușor să implementezi autentificarea HTTP de bază pentru cele mai populare servere web.
m01010011 avatar
drapel cn
Este o aplicație React (cu API-ul back-end scris folosind Flask).Utilizatorii folosesc deja OneLogin SSO. Deci, încerc să integrez această aplicație web cu asta.
Puncte:29
drapel id
MLu

Opțiunea 4 - opriți controlul accesului prin grupuri de securitate și, în schimb, implementați un mecanism de autentificare decent.

De exemplu pune un Aplicație Load Balancer în fața aplicației web și configurați ALB pentru a solicita Autentificare Cognito. Doar utilizatorii autentificați vor ajunge prin ALB la aplicația dvs. web - problemă rezolvată. Cognito poate avea utilizatori locali sau poate fi utilizat împreună cu Azure AD sau dacă utilizați Office365 în organizația dvs. Acesta este un mod destul de transparent care nu necesită nicio modificare a aplicației.

În mod alternativ, dacă aplicația dvs. web o acceptă, ar trebui să o configurați pentru a solicita autentificare SAML pentru orice director de utilizatori îl folosește organizația dvs. - Office365, G-Suite etc.

Sper că te ajută :)

m01010011 avatar
drapel cn
Voi explora Cognito și voi vedea cum se integrează cu OneLogin SSO.
Puncte:6
drapel um

Opțiunea 5 - opriți gestionarea grupurilor de securitate (în esență firewall-uri bazate pe IP) și utilizați certificate de client TLS.

Dacă utilizați sisteme moderne de gestionare a utilizatorilor, cum ar fi Azure AD sau LDAP, aveți deja instrumentul potrivit pentru a emite și a distribui certificatele. Veți configura un CA privat și veți configura serverul HTTP (Nginx, Apache2 sau AWS ALB) pentru a se autentifica prin certificate. Cine nu are un certificat, sau cu un certificat invalid (inclusiv cele expirate) nu va trece prin serverul HTTP. Este nevoie de zero treceți la aplicația web în sine și puteți chiar să renunțați la orice autentificare în aplicație, deoarece certificatele pot servi acestui scop pe lângă controlul accesului.

Un punct bonus este că funcționează pretutindeni - fie că este vorba despre AWS, Azure sau infrastructura dvs. locală. Puteți chiar să reutilizați exact același teanc de acreditări și configurație (cu excepția AWS ALB) foarte bine.

m01010011 avatar
drapel cn
Nu știu ce sistem de management al utilizatorilor folosesc. Dacă este relevant, folosesc OneLogin SSO pentru a-și menține acreditările. Nu m-am gândit niciodată că certificatele ar putea fi folosite ca mecanism de autentificare. Cu siguranță voi încerca asta (pentru că nu trebuie să schimb nimic în aplicație).

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.