aws-cli --параметр запроса

Я пытаюсь сделать фильтр, используя запрос aws, чтобы вывести 0.0.0.0/0 Ips и найти, из каких портов они поступают, однако, когда я это делаю

aws ec2 describe-security-groups --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --query "SecurityGroups[*].{GN:GroupName,Ports: IpPermissions.FromPorts}" --output json

В столбце «Порты» он выводит «Нет», так как он не находит этот фильтр, и когда я нахожу

aws ec2 describe-security-groups --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --query "SecurityGroups[*].{GN:GroupName,Ports: IpPermissions}" --output json

Я получаю все диапазоны IP-адресов, когда мне нужен только 0.0.0.0/0 и из какого порта исходит открытый IP-адрес (FromPort и ToPort). И я не хочу делать фильтр только для определенного порта, потому что я хочу видеть, из какого порта поступает каждый открытый IP-адрес.

Я не уверен, почему это не работает, поскольку IpPermissions.ToPort и IpPermissions.FromPort являются фильтрами групп безопасности aws.


person Community    schedule 24.07.2020    source источник


Ответы (1)


Вам нужно две модификации в запросе

  • Имя ключа FromPort, а не FromPort
  • IpPermissions возвращает массив, а не объект, поэтому используйте IpPermissions[].FromPort
aws ec2 describe-security-groups --filters Name=ip-permission.cidr,Values='0.0.0.0/0' \
--query "SecurityGroups[*].{GN:GroupName,Ports: IpPermissions[].FromPort}" --output json
person Adiii    schedule 27.07.2020