วิธีการตรวจสอบการพึ่งพากลุ่มรักษาความปลอดภัย AWS?


46

Amazon EC2 จะไม่ให้ฉันลบกลุ่มความปลอดภัยโดยบ่นว่ากลุ่มนั้นยังคงต้องพึ่งพา ฉันจะหาการพึ่งพาเหล่านั้นได้อย่างไร

aws ec2 อธิบายความปลอดภัย - กลุ่มไม่พูด


คำตอบนั้นไม่ถูกต้องในคำถามที่ @MichaelHampton แม้ว่ามันจะถูกทำเครื่องหมายเป็นเช่นนั้น
konr

@konr หากคุณเชื่อว่าคำถามที่ต้องการคำตอบที่ดีคุณอาจเริ่มต้นโปรดปราน
Michael Hampton

คำตอบ:


58

วาง ID กลุ่มความปลอดภัยในส่วน "Network Interfaces" ของ EC2 นี้จะพบการใช้งานใน EC2, EB, RDS, ELB

CLI: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45


10

วิธีที่ดีที่สุดในการทำเช่นนี้ในคอนโซล AWS EC2 คือการวางในชื่อกลุ่มความปลอดภัยในช่องค้นหาในส่วน EC2-> อินสแตนซ์

อินสแตนซ์ทั้งหมดที่เกี่ยวข้องกับกลุ่มความปลอดภัยที่วางจะเติมข้อมูลเหล่านั้นจะเป็นวัตถุ ec2 (การอ้างอิง)

คุณยังสามารถเรียกใช้การค้นหานี้ในส่วนของ ELB และข้อเสนอ AWS อื่น ๆ ที่ใช้กลุ่มความปลอดภัย

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

หวังว่าจะช่วย -


8

คุณต้องดูวัตถุอินสแตนซ์ EC2 ของคุณไม่ใช่กลุ่ม:

$ aws ec2 describe-instances --output text

จากนั้นค้นหา "sg- *" หรือใช้เครื่องมือประมวลผลสตรีมข้อความ unix มาตรฐานเพื่อดึงข้อมูลที่คุณต้องการ

หรือหากคุณมีอินสแตนซ์จำนวนน้อยให้ใช้--output tableสำหรับรายการที่จัดรูปแบบไว้


2
aws ec2 describe-instances --output text | grep sg-
cdmckay

เนื่องจากกลุ่มความปลอดภัยสามารถอ้างถึงกลุ่มความปลอดภัยอื่น ๆ คุณอาจจำเป็นต้องเรียกใช้ฟังก์ชันนั้นซ้ำ?
เบรนแดน

1
มันเงียบไม่สมบูรณ์ กลุ่มความปลอดภัยสามารถใช้งานได้ในหลายสถานที่นอกเหนือจากอินสแตนซ์ EC2 - ELB's, VPC, กลุ่มความปลอดภัยอื่น ๆ (ตามที่ @brendan ได้กล่าวถึงแล้ว) ฯลฯ
Amos Shapira

@AmosShapira OP ได้ถามถึง EC2 โดยเฉพาะ หากคุณต้องการคุณสามารถแก้ไขคำตอบของฉันเพื่อปรับปรุงได้ตลอดเวลา
EEAA

@AmosShapira มันแก้ไขปัญหาที่ OP มี คำตอบ SF ไม่จำเป็นต้องเป็นคำตอบที่ครอบคลุมทุกสถานการณ์ที่เกี่ยวข้อง
EEAA

7

คุณสามารถซักถาม aws cli เพื่อรับข้อมูลที่คุณต้องการ

คุณจะต้อง:

  • รายการกลุ่มความปลอดภัยทั้งหมดที่ค้นหาการอ้างอิงถึงกลุ่มที่มีปัญหา
  • แสดงรายการ EC2 ทั้งหมดและกลุ่มของพวกเขา
  • แสดงรายการ ELB ทั้งหมดและกลุ่มของพวกเขา
  • แสดงรายการ RDS ทั้งหมดและกลุ่มของพวกเขา

คุณสามารถใช้ห้องสมุดเช่น boto https://code.google.com/p/boto/แทน raw aws cli


4

ฟังก์ชั่นแลมบ์ดาอาจมีกลุ่มความปลอดภัยด้วย ในขณะที่เขียน, Amazon ไม่ได้ป้องกันการลบกลุ่มความปลอดภัยที่ใช้โดยฟังก์ชั่นแลมบ์ดา

ฉันใช้สิ่งนี้:

aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'

2

ปัญหาอื่นคือกลุ่มความปลอดภัยที่ขึ้นอยู่กับกลุ่มความปลอดภัยอื่น ๆ หนึ่งอาจใช้คำสั่งนี้เพื่อสร้างรายการ Adjacency (การพึ่งพาโดยตรง):

aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}

ตามหลักการแล้วผลลัพธ์นี้ควรใช้เพื่อค้นหาการปิด Transitive (การอ้างอิงทั้งหมดโดยตรงและโดยอ้อม) น่าเสียดายที่ฉันล้มเหลวในการค้นหาการปิด Transitive


1

สิ่งนี้อาจไม่สามารถใช้ได้เมื่อมีการถามคำถามแรกเริ่ม แต่ถ้าคุณเข้าสู่ AWS Console สำหรับกลุ่มความปลอดภัยให้เลือกกลุ่มที่มีปัญหาและเลือกการดำเนินการลบการแจ้งผลจะแจ้งให้คุณทราบหากมีการอ้างอิง .


1

คุณสามารถใช้เครื่องมือ Python นี้เพื่อแสดงรายการกลุ่มความปลอดภัยที่มีการอ้างอิง นอกจากนี้ยังอนุญาตให้แสดงรายการกลุ่มความปลอดภัยที่ไม่ได้ใช้ (ล้าสมัย):

https://github.com/mingbowan/sgdeps


0

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


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

ในขณะที่มีค่าในจุดของคุณอ้างอิงถึงกลุ่มรักษาความปลอดภัยไม่ได้เป็นการละเมิดการพึ่งพา เป็นไปได้ที่จะลบกลุ่มความปลอดภัยที่ไม่ได้เชื่อมต่อกับ ENI ใด ๆ แต่อ้างอิงในกลุ่มความปลอดภัยอื่น หลังจากการลบเกิดขึ้นคุณจะได้รับการแจ้งเตือน "คุณมีกฎกลุ่มความปลอดภัยเก่าใหม่" ในคอนโซลของคุณเพื่อระบุว่ามีการอ้างอิงเก่าไปยังกลุ่มความปลอดภัยที่ไม่มีอยู่จริงในกฎ จากนั้นจะให้ไฮเปอร์ลิงก์ "ดูกฎเก่า" เพื่อแก้ไขสถานการณ์หลังจากนั้น
Denys Stroebel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.