Amazon EC2 не дозволить мені видалити групу безпеки, поскаржившись, що група все ще має залежності. Як я можу знайти, які ці залежності?
aws ec2 опису-групи безпеки не говорить.
Amazon EC2 не дозволить мені видалити групу безпеки, поскаржившись, що група все ще має залежності. Як я можу знайти, які ці залежності?
aws ec2 опису-групи безпеки не говорить.
Відповіді:
Вставте ідентифікатор групи безпеки в розділ "Мережеві інтерфейси" EC2. Це знайде використання в EC2, EB, RDS, ELB.
CLI: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
Найкращий спосіб зробити це на консолі AWS EC2 - це вставити назву групи безпеки в поле пошуку в розділі EC2-> Примірники.
Усі екземпляри, пов’язані із вставленою групою безпеки, потім заповнюватимуться - це будуть об'єкти ec2 (залежності).
Ви також можете запустити цей пошук у розділі ELB та інших пропозиціях AWS, які використовують групи безпеки.
Якщо ви намагаєтесь видалити групу захисту, вам потрібно буде або "змінити групу безпеки" для кожного екземпляра (якщо вони є в VPC), або створити AMI і перезапустити за допомогою іншої групи захисту, а потім видалити старий екземпляр (якщо використовуючи класичний EC2)
Сподіваюся, що це допомагає-
Вам потрібно переглянути об'єкти екземпляра EC2, а не самі групи:
$ aws ec2 describe-instances --output text
Тоді або шукайте "sg- *" або використовуйте стандартні інструменти для обробки текстових потоків unix, щоб витягти потрібні вам дані.
Крім того, якщо у вас є невелика кількість примірників, використовуйте --output table
для списку, що добре відформатований.
aws ec2 describe-instances --output text | grep sg-
Ви можете допитати Aws cli, щоб отримати потрібні дані.
Вам потрібно буде:
Ви також можете використовувати бібліотеки, як-от boto https://code.google.com/p/boto/ замість необробленого aws cli.
Функції лямбда можуть також мати групи безпеки. На момент написання повідомлення Amazon не перешкоджає видаленню груп безпеки, використовуваних функціями Lambda.
Я використав це:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'
Інша проблема - SecurityGroups, які залежать від інших SecurityGroups. Можна скористатися цією командою для створення списку суміжності (прямі залежності):
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
В ідеалі цей результат слід використовувати для пошуку транзитивного закриття (всі залежності, прямі та непрямі). На жаль, мені не вдалося знайти утиліту перехідного закриття.
Ви можете використовувати цей інструмент Python для переліку груп безпеки з їх залежностями. Він також дозволяє перелічити невикористані (застарілі) групи безпеки:
Позначена відповідь невірна. Якщо ви бачите порушення залежності, цілком ймовірно, що у вашій конфігурації IP-дозволів (адресації) буде вказано іншу групу безпеки. Вам потрібно буде відкликати всі дозволи на вхід, які містять Групи безпеки як джерело.