Amazon EC2 sẽ không cho phép tôi xóa một nhóm bảo mật, phàn nàn rằng nhóm vẫn còn phụ thuộc. Làm thế nào tôi có thể tìm thấy những phụ thuộc là gì?
aws ec2 mô tả-nhóm bảo mật không nói.
Amazon EC2 sẽ không cho phép tôi xóa một nhóm bảo mật, phàn nàn rằng nhóm vẫn còn phụ thuộc. Làm thế nào tôi có thể tìm thấy những phụ thuộc là gì?
aws ec2 mô tả-nhóm bảo mật không nói.
Câu trả lời:
Dán ID nhóm bảo mật trong phần "Giao diện mạng" của EC2. Điều này sẽ tìm thấy việc sử dụng trên EC2, EB, RDS, ELB.
CLI: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
Cách tốt nhất để thực hiện việc này trong bảng điều khiển AWS EC2, là dán tên nhóm bảo mật vào trường tìm kiếm trong phần EC2-> Instances.
Tất cả các trường hợp được liên kết với nhóm bảo mật được dán sau đó sẽ cư trú - những đối tượng đó sẽ là các đối tượng ec2 (phụ thuộc).
Bạn cũng có thể chạy tìm kiếm này trong phần ELB và các dịch vụ AWS khác sử dụng các nhóm bảo mật.
Nếu bạn đang cố xóa nhóm bảo mật, bạn sẽ cần 'thay đổi nhóm bảo mật' cho từng phiên bản (nếu chúng ở trong VPC) hoặc tạo AMI và khởi chạy lại bằng nhóm bảo mật khác - sau đó xóa trường hợp cũ (nếu sử dụng EC2 cổ điển)
Hy vọng rằng sẽ giúp-
Bạn cần xem xét các đối tượng EC2 của mình chứ không phải các nhóm:
$ aws ec2 describe-instances --output text
Sau đó, hãy tìm "sg- *" hoặc sử dụng các công cụ xử lý luồng văn bản unix tiêu chuẩn để lấy ra dữ liệu bạn cần.
Ngoài ra, nếu bạn có một số lượng nhỏ các trường hợp, hãy sử dụng --output table
cho một danh sách được định dạng độc đáo.
aws ec2 describe-instances --output text | grep sg-
Bạn có thể thẩm vấn các aws cli để lấy dữ liệu bạn muốn.
Bạn sẽ cần:
Bạn cũng có thể sử dụng các thư viện, như boto https://code.google.com.vn/p/boto/ thay vì cls aws thô.
Các chức năng Lambda cũng có thể có Nhóm bảo mật. Tại thời điểm viết bài, Amazon không ngăn chặn việc xóa các nhóm bảo mật được sử dụng bởi các chức năng Lambda.
Tôi đã sử dụng điều này:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'
Một vấn đề khác là Nhóm bảo mật phụ thuộc vào Nhóm bảo mật khác. Người ta có thể sử dụng lệnh này để tạo danh sách điều chỉnh (phụ thuộc trực tiếp):
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
Lý tưởng nhất, kết quả này nên được sử dụng để tìm ra đóng cửa Transitive (tất cả các phụ thuộc, trực tiếp & gián tiếp). Thật không may, tôi đã không tìm thấy một sử dụng đóng cửa Transitive.
Bạn có thể sử dụng công cụ Python này để liệt kê các nhóm bảo mật với các phụ thuộc của chúng. Nó cũng cho phép liệt kê các nhóm bảo mật không sử dụng (lỗi thời):
Câu trả lời được đánh dấu là không chính xác. Nếu bạn đang thấy Vi phạm phụ thuộc, có khả năng Nhóm bảo mật khác được tham chiếu trong cấu hình Quyền IP (Nhập) của bạn. Bạn sẽ cần phải thu hồi tất cả các quyền xâm nhập có chứa Nhóm bảo mật làm nguồn.