Amazon-Web-Services

未應用 AWS cli 過濾器

  • February 14, 2020

我想從 AWS 接收一些值SecurityGroup並使用以下命令:

aws ec2 describe-security-groups --group-ids $GROUP \
 --filters 'Name=ip-permission.from-port,Values=22 Name=ip-permission.to-port,Values=22' \
 --query 'SecurityGroups[*].IpPermissions[*].{cidr:Ipv6Ranges[*].CidrIpv6,from:FromPort,to:ToPort}' \
 --output json

然而,輸出提供了所有現有的埠範圍,而預計只有埠 22:

[
   [
       {
           "cidr": [
               "::/0"
           ],
           "from": 80,
           "to": 80
       },
       {
           "cidr": [
               "2001::snip/128"
           ],
           "from": 22,
           "to": 22
       },
       {
           "cidr": [
               "::/0"
           ],
           "from": 443,
           "to": 443
       }
   ]
]

似乎我的過濾器未應用。任何提示都非常感謝!

過濾器工作正常。您已請求包含(但不限於)ToPort == 22 和 FromPort == 22 的所有安全組。您的查詢需要限制輸出內容。您可以通過添加:

?ToPort == `22` 

到 IpPermissions

$$ $$查詢的一部分以進一步限制輸出。 以下應該為您提供您正在尋找的輸出:

aws ec2 describe-security-groups --filters 'Name=ip-permission.from-port,Values=22 Name=ip-permission.to-port,Values=22'   --query 'SecurityGroups[*].IpPermissions[?ToPort == `22`].{cidr:Ipv6Ranges[*].CidrIpv6,from:FromPort,to:ToPort}' --output json

參考

CLI 使用輸出

引用自:https://serverfault.com/questions/1003047