Score:11

วิธีที่ปลอดภัยและเป็นมิตรกับผู้ใช้คืออะไรเพื่อให้ผู้ใช้เพียงไม่กี่คนเข้าถึงเว็บแอปบน Amazon EC2

ธง cn

สถานการณ์

เรามีเว็บแอปที่โฮสต์บน Amazon EC2 มีวัตถุประสงค์เพื่อใช้โดยผู้ใช้เพียงไม่กี่คนในบริษัท

เรากำลังจัดการกับสิ่งนี้อย่างไร

  • เราแบ่งปันที่อยู่ IP (ยืดหยุ่น) ของอินสแตนซ์กับผู้ใช้
  • เราเพิ่มที่อยู่ IP ของผู้ใช้แต่ละคนลงในกลุ่มความปลอดภัยของอินสแตนซ์เมื่อจำเป็น

เมื่อฉันพูด เท่าที่จำเป็นฉันหมายถึงอีเมลจากผู้ใช้ที่บ่นว่าเว็บพอร์ทัลแสดงหน้าข้อผิดพลาด พวกเขาลืมว่าจำเป็นต้องมีขั้นตอนนี้ในการรวม IP ในกลุ่มความปลอดภัย (และฉันไม่ตำหนิพวกเขา พวกเขาเป็นผู้ใช้ปลายทาง)

สำหรับคำถามนี้ สมมติว่าเรามีผู้ใช้ทั้งหมด 5 คนในบริษัทที่ต้องการการเข้าถึงนี้ เพิ่มที่อยู่ IP ของผู้ใช้-1 และผู้ใช้-2 ลงในกลุ่มความปลอดภัยแล้ว

ปัญหา

  1. ผู้ใช้-3 ไปที่ที่อยู่ IP โดยตรง แต่ไม่สามารถเข้าถึงได้เนื่องจากไม่ได้เพิ่มที่อยู่ IP ของผู้ใช้ลงในกลุ่มความปลอดภัย
  2. หากผู้ใช้-1 หรือผู้ใช้-2 รีสตาร์ทอินเทอร์เน็ต ที่อยู่ IP ของพวกเขาอาจมีการเปลี่ยนแปลง (IP แบบไดนามิกที่ ISP จัดหาให้) และที่อยู่ IP ใหม่จะต้องถูกเพิ่มในกลุ่มความปลอดภัย (และที่อยู่เก่าจะต้องถูกเพิกถอนเป็น หลีกเลี่ยงการเข้าถึงโดยผู้อื่น)

ตัวเลือกอื่น ๆ ที่ฉันกำลังพิจารณา

  1. ให้การเข้าถึงเฉพาะ VPN ของสำนักงานและขอให้ผู้ใช้ทั้งหมดเชื่อมต่อผ่าน VPN
  2. (ยุ่งยากมากสำหรับผู้ใช้) ขอให้ผู้ใช้เข้าสู่ระบบคอนโซลการจัดการ AWS ไปที่บริการ EC2 ไปที่ส่วน Security Groups และเพิ่มที่อยู่ IP ด้วยตนเอง (ผู้ใช้มีผู้ใช้ AWS IAM และสิทธิ์ที่เหมาะสมในการดำเนินการนี้อยู่แล้ว) .
  3. สร้างสคริปต์ที่เพิ่ม IP ปัจจุบันของผู้ใช้ลงในกลุ่มความปลอดภัย (โดยใช้ AWS CLI / SDK) ซึ่งฟังดูอันตรายและไม่เหมาะสม เนื่องจากเราจะต้องใส่ข้อมูลรับรอง API ของใครบางคนไว้ในสคริปต์
barbecue avatar
br flag
เว็บแอปประเภทไหน? ง่ายมากที่จะใช้การพิสูจน์ตัวตน HTTP พื้นฐานสำหรับเว็บเซิร์ฟเวอร์ยอดนิยม
m01010011 avatar
cn flag
เป็นแอป React (พร้อม API ส่วนหลังที่เขียนโดยใช้ Flask)ผู้ใช้ใช้ OneLogin SSO อยู่แล้ว ดังนั้นฉันจึงพยายามรวมเว็บแอปนี้เข้ากับแอปนั้น
Score:29
ธง id
MLu

ตัวเลือก 4 - หยุดการควบคุมการเข้าถึงผ่าน Security Groups และใช้กลไกการพิสูจน์ตัวตนที่เหมาะสมแทน

ตัวอย่างเช่น ใส่ an แอปพลิเคชัน Load Balancer หน้าเว็บแอปและกำหนดค่า ALB ที่ต้องการ การรับรองความถูกต้องของ Cognito. เฉพาะผู้ใช้ที่ผ่านการรับรองความถูกต้องเท่านั้นที่จะผ่าน ALB ไปยังเว็บแอปของคุณ - แก้ไขปัญหาได้ Cognito สามารถมีผู้ใช้ภายในหรือสามารถใช้ร่วมกับ Azure AD ของคุณ หรือหากคุณใช้ Office365 ในองค์กรของคุณ นี่เป็นวิธีที่ค่อนข้างโปร่งใสซึ่งไม่จำเป็นต้องทำการเปลี่ยนแปลงใดๆ กับแอป

อีกทางหนึ่ง หากเว็บแอปของคุณรองรับ คุณควรกำหนดค่าให้ต้องการ SAML auth กับไดเร็กทอรีผู้ใช้ใดก็ตามที่องค์กรของคุณใช้ - Office365, G-Suite เป็นต้น

หวังว่าจะช่วยได้ :)

m01010011 avatar
cn flag
ฉันจะสำรวจ Cognito และดูว่ามันทำงานร่วมกับ OneLogin SSO ได้อย่างไร
Score:6
ธง um

ตัวเลือก 5 - หยุดจัดการกลุ่มความปลอดภัย (ไฟร์วอลล์ที่ใช้ IP เป็นหลัก) และใช้ใบรับรองไคลเอนต์ TLS

หากคุณใช้ระบบการจัดการผู้ใช้สมัยใหม่ เช่น Azure AD หรือ LDAP คุณก็มีเครื่องมือที่เหมาะสมในการออกและแจกจ่ายใบรับรองแล้ว คุณจะตั้งค่า CA ส่วนตัวและกำหนดค่าเซิร์ฟเวอร์ HTTP (Nginx, Apache2 หรือ AWS ALB) เพื่อรับรองความถูกต้องด้วยใบรับรอง ใครก็ตามที่ไม่มีใบรับรองหรือมีใบรับรองที่ไม่ถูกต้อง (รวมถึงใบรับรองที่หมดอายุแล้ว) จะผ่านเซิร์ฟเวอร์ HTTP ไม่ได้ สิ่งนี้ต้องการ ศูนย์ เปลี่ยนเป็นเว็บแอปเอง และคุณยังสามารถละทิ้งการรับรองความถูกต้องใดๆ ในแอปได้เนื่องจากใบรับรองสามารถให้บริการตามวัตถุประสงค์นั้นนอกเหนือจากการควบคุมการเข้าถึง

ข้อดีอย่างหนึ่งคือมันใช้งานได้ ทุกที่ - ไม่ว่าจะเป็น AWS, Azure หรือโครงสร้างพื้นฐานภายในองค์กรของคุณ คุณสามารถใช้ข้อมูลประจำตัวและการกำหนดค่าชุดเดิมซ้ำได้ (ยกเว้น AWS ALB) ได้เช่นกัน

m01010011 avatar
cn flag
ฉันไม่รู้ว่าพวกเขาใช้ระบบการจัดการผู้ใช้แบบใด หากมีความเกี่ยวข้อง พวกเขาจะใช้ OneLogin SSO เพื่อรักษาข้อมูลประจำตัวของตน ฉันไม่เคยคิดว่าใบรับรองสามารถใช้เป็นกลไกการตรวจสอบสิทธิ์ได้ ฉันจะลองดูอย่างแน่นอน (เพราะฉันไม่ต้องเปลี่ยนแปลงอะไรในแอป)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา