简体   繁体   English

aws-cli --query 参数

[英]aws-cli --query parameter

I am trying to do a filter using aws query to output 0.0.0.0/0 Ips and find which ports they are coming from however when I do我正在尝试使用 aws 查询对 output 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

In the Ports column, it outputs None, since it is not finding that filter and when I do在端口列中,它输出无,因为它没有找到那个过滤器,当我找到的时候

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

I get all the Ip Ranges when I only want 0.0.0.0/0 and which Port that Open Ip is coming from (FromPort and ToPort ).当我只想要0.0.0.0/0 以及打开 Ip 来自(FromPort 和 ToPort )的端口时,我得到了所有 Ip 范围。 And I don't want to do a filter just for a certain Port because I want to see what port each open Ip is coming from.而且我不想只针对某个端口进行过滤,因为我想查看每个打开的 Ip 来自哪个端口。

I am not sure why this is not working since the IpPermissions.ToPort and IpPermissions.FromPort are both a filter of aws security groups.我不确定为什么这不起作用,因为 IpPermissions.ToPort 和 IpPermissions.FromPort 都是 aws 安全组的过滤器。

You need two modification in the query您需要在查询中进行两次修改

  • The key name is FromPort not FromPort键名是FromPort而不是FromPort
  • IpPermissions return array not object, so use IpPermissions[].FromPort IpPermissions 返回数组不是 object,所以使用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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM