Amazon EC2 no me deja eliminar un grupo de seguridad, quejándose de que el grupo todavía tiene dependencias. ¿Cómo puedo encontrar cuáles son esas dependencias?
aws ec2 describe-security-groups no lo dice.
Amazon EC2 no me deja eliminar un grupo de seguridad, quejándose de que el grupo todavía tiene dependencias. ¿Cómo puedo encontrar cuáles son esas dependencias?
aws ec2 describe-security-groups no lo dice.
Respuestas:
Pegue la identificación del grupo de seguridad en la sección "Interfaces de red" de EC2. Esto encontrará el uso en EC2, EB, RDS, ELB.
CLI: aws ec2 describe-network-interfaces --filters Name=group-id,Values=sg-123abc45
La mejor manera de hacerlo en la consola de AWS EC2 es pegar el nombre del grupo de seguridad en el campo de búsqueda en la sección EC2-> Instancias.
Todas las instancias asociadas con el grupo de seguridad pegado se completarán; esos serían los objetos ec2 (dependencias).
También puede ejecutar esta búsqueda en la sección ELB y otras ofertas de AWS que utilizan grupos de seguridad.
Si está tratando de eliminar el grupo de seguridad, necesitará 'cambiar el grupo de seguridad' para cada instancia (si están en una VPC) o crear una AMI y reiniciar usando un grupo de seguridad diferente; luego elimine la instancia anterior (si usando EC2 classic)
Espero que ayude-
Debe mirar sus objetos de instancia EC2, no los grupos en sí:
$ aws ec2 describe-instances --output text
Luego, busque "sg- *" o use las herramientas de procesamiento de flujo de texto estándar de Unix para extraer los datos que necesita.
Alternativamente, si tiene una pequeña cantidad de instancias, úsela --output table
para una lista bien formateada.
aws ec2 describe-instances --output text | grep sg-
Puede interrogar a aws cli para obtener los datos que desea.
Necesitarás:
También puede usar bibliotecas, como boto https://code.google.com/p/boto/ en lugar del raw aws cli.
Las funciones de Lambda también pueden tener grupos de seguridad. Al momento de escribir, Amazon no impide la eliminación de grupos de seguridad utilizados por las funciones de Lambda.
Usé esto:
aws lambda list-functions | jq -c '.Functions[] | {FunctionArn, SecurityGroups: (.VpcConfig.SecurityGroupIds[]? // null) }'
Otro problema son los SecurityGroups que dependen de otros SecurityGroups. Uno puede usar este comando para generar la lista de adyacencia (dependencias directas):
aws ec2 describe-security-groups --query "SecurityGroups[*].{ID:GroupId,Name:GroupName,dependentOnSGs:IpPermissions[].UserIdGroupPairs[].GroupId}
Idealmente, este resultado debería usarse para encontrar el cierre transitivo (todas las dependencias, directas e indirectas). Desafortunadamente, no pude encontrar una utilidad de cierre transitivo.
Puede usar esta herramienta de Python para enumerar grupos de seguridad con sus dependencias. También permite enumerar grupos de seguridad no utilizados (obsoletos):
La respuesta marcada es incorrecta. Si ve una Infracción de dependencia, es probable que se haga referencia a otro Grupo de seguridad en su configuración de Permisos de IP (Ingress). Deberá revocar todos los permisos de ingreso que contengan Grupos de seguridad como fuente.