Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

310
Views
AWS CLI Encuentra todos los grupos de seguridad que contienen una regla que permite todo el tráfico de todas las fuentes

Encontré algunas preguntas similares aquí, pero ninguna que respondiera específicamente a esta pregunta. Tengo varios grupos de seguridad que tienen reglas que permiten todo el tráfico de todas las direcciones IP de origen. Me gustaría inventar un comando CLI simple que los tome por mí.

Después de buscar en algunas fuentes, pensé con seguridad que este comando funcionaría:

 $ aws ec2 describe-security-groups --filters "Name=ip-permission.protocol,Values=-1" --query 'SecurityGroups[?length(IpPermissions[?IpProtocol==`-1` && contains(IpRanges[].CidrIp, `0.0.0.0/0`)]) > `0`]' []

Sin embargo, esto devuelve una lista vacía. De hecho, reducirlo a solo la primera condición de la consulta devuelve una lista vacía

 $ aws ec2 describe-security-groups --filters "Name=ip-permission.protocol,Values=-1" --query 'SecurityGroups[?length(IpPermissions[?IpProtocol==`-1`]) > `0`]' []

aunque sacar la consulta anterior (que pensé que coincide con el filtro) devuelve varios grupos de seguridad:

 aws ec2 describe-security-groups --filters "Name=ip-permission.protocol,Values=-1" [sg-1, sg-2, sg-3 ...]

¿Qué no estoy entendiendo? Gracias por adelantado.

ACTUALIZAR

Esta nueva consulta está más cerca . Está recuperando cada grupo de seguridad que tiene una regla que permite todos los protocolos y una regla que permite el tráfico de todas las direcciones IP. Sin embargo, los grupos de seguridad que se están recuperando actualmente no tienen explícitamente esas dos condiciones en la misma regla que me gustaría.

 aws ec2 describe-security-groups --filters "Name=ip-permission.protocol,Values=-1" --query "SecurityGroups[?IpPermissions[?IpProtocol == '-1']] | [?length(IpPermissions[?contains(IpRanges[].CidrIp, `0.0.0.0/0`)]) > `0`]"

Además, creo que sería útil mostrar el objeto JSON para aquellos que no estén familiarizados con su estructura. Puede encontrarlo en esta página hacia la parte inferior.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Resulta que mi comando original en realidad estaba muy cerca. Saqué la lógica con la función length() y ahora funciona.

 aws ec2 describe-security-groups --filters "Name=ip-permission.protocol,Values=-1" --query "SecurityGroups[?IpPermissions[?IpProtocol == '-1' && contains(IpRanges[].CidrIp,'0.0.0.0/0')]].GroupId"

Espero que esto ayude a alguien en el futuro.

over 4 years ago · Santiago Trujillo Report

0

Puede hacer esto a través de aws ec2, pero ¿por qué no usar Trusted Advisor , que ya verifica si hay grupos de seguridad defectuosos?

También puede acceder a sus comprobaciones a través de la CLI mediante el comando describe-trusted-advisor-check-summaries .

Estos cheques son gratuitos para todas las cuentas.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!