AWS CLI:描述网络ACL

时间:2017-07-06 06:05:53

标签: amazon-web-services aws-cli

这个命令有点问题。我只想列出egress ACL规则,只列出规则编号。所以这是我的命令:

aws ec2 describe-network-acls --network-acl-ids acl-c324a5a4 --output text --query 'NetworkAcls[*].Entries[*].{RN:RuleNumber}' --filter Name=entry.rule-action,Values=allow Name=entry.egress,Values=true

返回的是:

100
110
120
130
140
150
160
170
32767
100
110
120
130
140
150
160
170
32767

它基本上列出了出口和入口规则。出口和入口规则具有相同的规则编号。它还列出了* DENY rule (32767),我也想避免这种情况。

任何人都可以帮助我使用此命令,我只想列出出口规则编号吗?

由于

2 个答案:

答案 0 :(得分:1)

所以你想要允许的 Egress 规则号。您可以使用以下查询执行此操作:

lower_case_with_underscore

您可以阅读有关Controlling Command Output from the AWS Command Line Interface

的更多信息

答案 1 :(得分:1)

在awk和grep的帮助下,我们可以获得唯一的Egress规则列表,如下所示。

aws ec2 describe-network-acls --network-acl-ids acl-63092b1a  --query 'NetworkAcls[*].Entries[*].[Egress,RuleNumber]' --output text | grep -v False | awk {'print $2'} | grep -v '^$\|^\s*\#'

要按特定字段的值过滤结果,请使用JMESPath“?”运营商。以下示例查询仅输出us-west-2a可用区中的卷:

$ aws ec2 describe-volumes --query 'Volumes[?AvailabilityZone==`us-west-2a`]'

For More Information please go through this article