Amazon EC2 не позволит мне удалить группу безопасности, жалуясь, что у группы все еще есть зависимости. Как я могу найти, что это за зависимости?
aws ec2 description-security-groups не говорит.
Amazon EC2 не позволит мне удалить группу безопасности, жалуясь, что у группы все еще есть зависимости. Как я могу найти, что это за зависимости?
aws ec2 description-security-groups не говорит.
Ответы:
Вставьте идентификатор группы безопасности в раздел «Сетевые интерфейсы» 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 classic)
Надеюсь, это поможет-
Вам нужно посмотреть на объекты вашего экземпляра 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) }'
Другая проблема - группы безопасности, которые зависят от других групп безопасности. Можно использовать эту команду для генерации списка Смежности (прямые зависимости):
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
В идеале этот результат следует использовать для поиска транзитивного замыкания (все зависимости, прямые и косвенные). К сожалению, мне не удалось найти утилиту транзитивного замыкания.
Вы можете использовать этот инструмент Python для составления списка групп безопасности с их зависимостями. Это также позволяет перечислять неиспользуемые (устаревшие) группы безопасности:
Отмеченный ответ неверен. Если вы видите нарушение зависимости, скорее всего, в вашей конфигурации IP Permissions (Ingress) есть ссылка на другую группу безопасности. Вам нужно будет отозвать все входные разрешения, которые содержат группы безопасности в качестве источника.