AWS เป็นแพลตฟอร์มระดับองค์กรที่ค่อนข้างซับซ้อน คุณต้องเรียนรู้แพลตฟอร์มจริงๆ เพื่อใช้งานเพื่อให้แน่ใจว่าคุณทำสิ่งต่างๆ ได้อย่างถูกต้องและปลอดภัย การฝึกอบรมช่วยได้มาก
คำถามของคุณตอบยากเล็กน้อยเนื่องจากคุณไม่ได้ใช้คำศัพท์มาตรฐานของ AWSแต่คำตอบสั้น ๆ คือกลุ่มความปลอดภัยที่เชื่อมโยงกับเซิร์ฟเวอร์ IIS ของคุณจำเป็นต้องมีพอร์ตขาเข้า 80 และ 443 เปิดอยู่ คุณไม่จำเป็นต้องใช้ ELB หากคุณมีเซิร์ฟเวอร์ EC2 เพียงเครื่องเดียว แต่ ELB ให้การป้องกันเพิ่มเติมบางประการจากการโจมตี DDOS บางรูปแบบ คุณต้องมีอินเทอร์เน็ตเกตเวย์ใน VPC ของคุณ ซึ่งกำหนดเส้นทางไปยังเครือข่ายย่อยสาธารณะของคุณ แต่ตารางเส้นทางสำหรับเครือข่ายย่อยส่วนตัวของคุณไม่ควรกำหนดเส้นทางไปยังอินเทอร์เน็ตเกตเวย์ ซับเน็ตส่วนตัวไม่ควรจัดสรร IP สาธารณะเช่นกัน
อัปเดต - หากคุณต้องการเรียกใช้เว็บเซิร์ฟเวอร์หลายเซิร์ฟเวอร์ ให้ใช้ตัวจัดสรรภาระงานของแอปพลิเคชันในกลุ่มความปลอดภัยกลุ่มหนึ่งที่มี 443/80 เปิดสู่สากล จากนั้นกลุ่มความปลอดภัยอีกกลุ่มหนึ่งสำหรับอินสแตนซ์ EC2 ของคุณจะเปิดให้กับ ALB เท่านั้น อินสแตนซ์ EC2 ดีที่สุดในซับเน็ตส่วนตัว ไม่มีเส้นทางไปยัง/จากอินเทอร์เน็ต และไม่มี IP สาธารณะ
ถ้าไม่สมเหตุสมผล ฉันขอแนะนำให้เข้ารับการฝึกอบรมหรือจ้างคนมาช่วย :)
อัปเดต SSL อีกครั้ง
ฉันจะไม่ทำ TLS offload ที่ CloudFlare ซึ่งจะทำให้ทราฟฟิกของคุณไม่มีการเข้ารหัสผ่านอินเทอร์เน็ตและจะไม่เป็นไปตามข้อกำหนดใดๆ คุณสามารถยุติ TLS ได้ที่ ALB และใช้ http กับอินสแตนซ์ EC2 ของคุณได้อย่างปลอดภัย เนื่องจากการรับส่งข้อมูลภายใน AWS โดยทั่วไปถือว่าปลอดภัย โดย AWS Hyperplane จะแยกออกจากกัน ALB สามารถรับทราฟฟิคที่พอร์ต 443 ถอดรหัส แล้วส่งต่อไปยัง EC2 ที่พอร์ต 80 ฉันไม่ได้ทำเอง แต่ฉันคิดว่าคุณเพิ่งตั้งค่ากลุ่มเป้าหมายของคุณที่ฟังพอร์ต 80 แทนที่จะเป็น 443 สร้างใบรับรอง TLS โดยใช้ ตัวจัดการใบรับรอง AWS
โดยส่วนตัวแล้ว ฉันจะทำ TLS บนอินสแตนซ์ EC2 เว้นแต่ฉันจะมีเหตุผลที่ดีหรือปริมาณงานไม่ละเอียดอ่อน การใช้ใบรับรอง ALB ง่ายกว่าการติดตั้งใบรับรองใน EC2 แต่ละอินสแตนซ์