O Amazon EC2 não me permite excluir um grupo de segurança, reclamando que o grupo ainda tem dependências. Como posso encontrar quais são essas dependências?
O aws ec2 descrevem-security-groups não diz.
O Amazon EC2 não me permite excluir um grupo de segurança, reclamando que o grupo ainda tem dependências. Como posso encontrar quais são essas dependências?
O aws ec2 descrevem-security-groups não diz.
Respostas:
Cole o ID do grupo de segurança na seção "Interfaces de rede" do EC2. Isso encontrará uso em EC2, EB, RDS, ELB.
CLI: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
A melhor maneira de fazer isso no console do AWS EC2 é colar o nome do grupo de segurança no campo de pesquisa na seção EC2-> Instâncias.
Todas as instâncias associadas ao grupo de segurança colado serão preenchidas; esses seriam os objetos ec2 (dependências).
Você também pode executar esta pesquisa na seção ELB e em outras ofertas da AWS que utilizam grupos de segurança.
Se você estiver tentando excluir o grupo de segurança, será necessário 'alterar o grupo de segurança' para cada instância (se estiver em uma VPC) ou criar uma AMI e reiniciar usando um grupo de segurança diferente - e excluir a instância antiga (se usando o EC2 classic)
Espero que ajude-
Você precisa examinar seus objetos de instância do EC2, não os próprios grupos:
$ aws ec2 describe-instances --output text
Em seguida, procure "sg- *" ou use as ferramentas de processamento de fluxo de texto unix padrão para obter os dados necessários.
Como alternativa, se você tiver um pequeno número de instâncias, use --output table
para uma lista bem formatada.
aws ec2 describe-instances --output text | grep sg-
Você pode interrogar o aws cli para obter os dados que deseja.
Você precisará:
Você também pode usar bibliotecas, como https://code.google.com/p/boto/, em vez do aws cli bruto.
As funções do Lambda também podem ter grupos de segurança. No momento da escrita, a Amazon não impede a exclusão de grupos de segurança usados pelas funções do Lambda.
Eu usei isso:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'
Outro problema são os SecurityGroups que dependem de outros SecurityGroups. Pode-se usar este comando para gerar a lista de adjacências (dependências diretas):
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
Idealmente, esse resultado deve ser usado para encontrar o fechamento transitivo (todas as dependências, diretas e indiretas). Infelizmente, não encontrei um utilitário de fechamento Transitivo.
Você pode usar esta ferramenta Python para listar grupos de segurança com suas dependências. Também permite listar grupos de segurança não utilizados (obsoletos):
A resposta marcada está incorreta. Se você estiver vendo uma violação de dependência, é provável que outro grupo de segurança seja mencionado na configuração de permissões de IP (ingresso). Você precisará revogar todas as permissões de entrada que contêm Grupos de Segurança como sua origem.