กฎ EC2 สำหรับ VPN เท่านั้น: ทุกกลุ่มความปลอดภัยที่ผูกอยู่ต้องเห็นตรงกัน
กลุ่มความปลอดภัยอนุญาตเท่านั้น และทุกกลุ่มที่ผูกอยู่เพิ่มสิทธิ์ของตนเอง ค้นหาว่าแหล่งใดที่อินสแตนซ์มองเห็นจริงก่อนเพิ่มกฎ VPN ที่แคบ
คุณเพิ่มกฎขาเข้าหนึ่งข้อสำหรับพูลไคลเอนต์ VPN ไม่ได้ลบสิ่งใด และบริการยังเข้าถึงได้จากอินเทอร์เน็ต ไม่มีอะไรเสียหาย กลุ่มความปลอดภัยไม่มีการเขียนทับ ลำดับความสำคัญ หรือการปฏิเสธขั้นสุดท้ายที่กฎแคบจะชนะได้ ทุกกลุ่มที่ผูกกับอินสแตนซ์นำสิทธิ์ของตนมารวมในชุดเดียว และกฎกว้างที่คุณลืมยังอยู่ในชุดนั้น การทำให้อินสแตนซ์เป็น VPN เท่านั้นหมายถึงการตรวจสอบทั้งหมด ไม่ใช่การเพิ่มกฎที่ฟังดูดีกว่าลงในกลุ่มใดกลุ่มหนึ่ง
เขียนบริการก่อนเขียนกฎ
เริ่มจากปลายทาง โปรโตคอล และพอร์ตที่แน่นอน รวมถึงอินเทอร์เฟซเครือข่ายที่บริการรับฟังจริง อินสแตนซ์ที่มีหลายอินเทอร์เฟซหรือหลายบริการบนพอร์ตเดียวต้องตรวจสอบแยกตามอินเทอร์เฟซ เพราะกลุ่มที่ผูกอยู่อาจแตกต่างกัน จากนั้นระบุ ว่าแหล่งที่มาซึ่งอินเทอร์เฟซนั้นได้รับจริงสำหรับผู้ใช้ VPN คืออะไร, ไม่ใช่ที่อยู่ที่ไคลเอนต์แสดงในหน้าต่างการเชื่อมต่อของตนเอง
ที่อยู่สองอันนี้แตกต่างกันบ่อยกว่าที่ผู้คนคาดเมื่อมีการแปลที่อยู่และการกำหนดเส้นทางเข้ามาเกี่ยวข้อง
สามรูปแบบแหล่งที่มา สามกฎที่แตกต่าง
ด้วยการเข้าถึงแบบกำหนดเส้นทางส่วนตัว อินสแตนซ์จะได้รับพูลไคลเอนต์หรือช่วงขององค์กร ขึ้นอยู่กับการกำหนดเส้นทางและการแปลที่อยู่ของเส้นทาง ด้วยปลายทางสาธารณะที่เข้าถึงผ่านทางออกขององค์กร อินสแตนซ์จะเห็นที่อยู่ NAT ขององค์กรแทน และเฉพาะเมื่อปลายทางนั้นใช้เส้นทาง VPN จริงเท่านั้น เนื่องจากการอุโมงค์แบบแยกอาจทำให้มันอยู่บนการเชื่อมต่อที่บ้าน ด้วยปลายทาง Client VPN แบบจัดการ โมเดลการเชื่อมโยงและเครือข่ายปลายทางที่เอกสารระบุไว้จะใช้บังคับ และที่อยู่ไคลเอนต์มาจาก CIDR ของไคลเอนต์ที่กำหนดค่าไว้
สิ่งที่ใช้ไม่ได้คือการอ้างอิงเกตเวย์ VPN เป็นแหล่งที่มาของกลุ่มความปลอดภัย การอ้างอิงกลุ่มจะตรงกับอินเทอร์เฟซเครือข่ายแบบยืดหยุ่นภายใน VPC หรือเครือข่ายที่เชื่อมต่อกัน และเกตเวย์ที่ส่งต่อแพ็กเก็ตไม่ใช่หนึ่งในนั้น
อ่านยูเนียนในทุกกลุ่มที่ผูกอยู่
เปิดอินสแตนซ์ ค้นหาอินเทอร์เฟซเครือข่าย และแสดงรายการทุกกลุ่มความปลอดภัยที่ผูกกับมัน สำหรับแต่ละกลุ่ม ให้ตรวจสอบทุกกฎที่ครอบคลุมโปรโตคอลและพอร์ตของคุณ รวมถึงช่วงพอร์ตที่กว้างและทั้งสองตระกูลที่อยู่ กฎ IPv4 จาก 0.0.0.0/0 ไม่ได้ยกเว้นคุณจากการตรวจสอบ ::/0 และกฎที่อนุญาตทราฟฟิกทั้งหมดซ่อนคำถามเรื่องพอร์ตไว้อย่างสิ้นเชิง หลังจากรายการนั้นแล้วเท่านั้นคุณจึงจะบอกได้ว่าสิทธิ์ที่มีผลจริงสำหรับบริการคืออะไร
เอกสารอ้างอิงกฎของ AWS อธิบายกลุ่มความปลอดภัยว่าเป็นแบบอนุญาตเท่านั้น และระบุว่ากฎจากทุกกลุ่มที่ผูกอยู่ถูกรวมเข้าด้วยกัน และนั่นคือกลไกทั้งหมดที่อยู่เบื้องหลังความล้มเหลวนี้
ACL เครือข่ายเป็นนโยบายแยกต่างหากแบบไม่มีสถานะ มีรายการอนุญาตและปฏิเสธตามลำดับ และประเมินที่ซับเน็ตไม่ใช่ที่อินสแตนซ์
อย่าตอบด้วยกำแพงการปฏิเสธ
การเพิ่มการปฏิเสธ NACL ทั้งซับเน็ตเพื่อเลียนแบบไฟร์วอลล์ที่คุณคุ้นเคยเป็นเครื่องมือที่ผิดและเสี่ยง รายการ NACL เรียงตามลำดับและไม่มีสถานะ ดังนั้นการปฏิเสธที่วางเหนือการอนุญาตที่มีอยู่จะทำลายทราฟฟิกที่ไม่เกี่ยวข้องอย่างเงียบ ๆ รวมถึงเส้นทางกลับของเซสชันที่คุณพยายามรักษาไว้ แก้ไขการอนุญาตของกลุ่มความปลอดภัยที่กว้างในกลุ่มที่เป็นเจ้าของ แล้วปล่อย ACL ไว้ตามลำพังเว้นแต่จะเป็นการออกแบบจริง ๆ
การลบที่อยู่สาธารณะออกจากอินสแตนซ์เป็นการรับประกันที่แข็งแกร่งกว่า และยังเป็นการเปลี่ยนแปลงสถาปัตยกรรมที่มีผลต่อการบริหารและแอปพลิเคชัน ไม่ใช่ช่องทำเครื่องหมายในรายการอนุญาต
ทดสอบด้วยเซสชันใหม่และเก็บช่องทางเข้าไว้
ก่อนยกเลิกการอนุญาตที่มีอยู่ใด ๆ ให้ยืนยันเส้นทางการบริหารที่เป็นอิสระและได้รับอนุมัติ เพราะกฎที่คุณกำลังจะลบอาจเป็นกฎที่การกู้คืนเซสชันของคุณพึ่งพาอยู่ จากนั้นทดสอบการเชื่อมต่อที่ได้รับอนุญาตใหม่จาก VPN และการเชื่อมต่อที่ถูกปฏิเสธใหม่จากเส้นทางทดสอบที่ไม่ใช่ VPN ที่ได้รับอนุญาต เซสชันที่ติดตามอยู่จะรอดจากการเปลี่ยนกฎในลักษณะที่ทำให้เชลล์ที่เปิดค้างไว้ใช้เป็นหลักฐานการยอมรับไม่ได้
สุดท้าย ให้คงการอนุญาตของแอปพลิเคชันเองไว้ ทางออกขององค์กรที่แปลแล้วอาจเป็นตัวแทนของคนหลายร้อยคน และการรับเข้าสู่เครือข่ายไม่เคยระบุผู้ใช้รายบุคคลหรืออุปกรณ์ของพวกเขา