0

私は照会したい2つの異なるセキュリティグループを持っています。sg-xxxsg-yyyと呼ぶことができます。私は、IPは、各グループ内にあるの詳細を取得するには、次のコマンドを実行しています:AWS EC2 CLIでdescribe-security-groupsの結果が一致しない

aws ec2 describe-security-groups \ 
    --filters Name=ip-permission.to-port,Values=22 Name=ip-permission.from-port,Values=22 Name=ip-permission.protocol,Values=tcp \ 
    --group-ids sg-xxx --output text 

私はsg-xxxでコマンドラインを実行すると、私はのような出力が得られます。

SECURITYGROUPS group-name created YYYY-MM-DDTHH:MM:SS.ZZZ+00:00 sg-xxx group-name xxxxxxxxxxxx vpc-xxx 
IPPERMISSIONS 22 tcp 22 
IPRANGES 1.1.1.1/32 
IPRANGES 2.2.2.2/32 
IPPERMISSIONSEGRESS -1 
IPRANGES 0.0.0.0/0 

しかし、ときに私

SECURITYGROUPS group-name sg-yyy group-tag xxxxxxxxxxxx vpc-yyy 
IPPERMISSIONS 80 tcp 80 
IPRANGES 0.0.0.0/0 
IPPERMISSIONS 22 tcp 22 
IPRANGES 1.1.1.1/32 
IPRANGES 2.2.2.2/32 
IPPERMISSIONS 10000 tcp 10000 
IPRANGES 3.3.3.3/32 
IPPERMISSIONS 25 tcp 25 
IPRANGES 0.0.0.0/0 
IPPERMISSIONSEGRESS -1 
IPRANGES 0.0.0.0/0 

誰でも経験するS:それはポート22を使用していないエントリが含まれ、sg-yyyと同じコマンドラインを実行しますこのコマンドラインでも同様の問題があります。誰もがこれを修正する方法を知っていますか?

これが予想される動作の場合は、一致するルールを取得する方法はありますかtcp port 22

答えて

2

セキュリティグループ(その名前、sg-id、vpc-id、account-idなどが含まれています)を説明するのはCLIです。このコマンドでは、フィルタに一致するセキュリティグループについて説明します。これは、フィルタに一致するSGルールのみを一覧表示するという意味ではありません。 CLIは、グループではなく、そのグループについて記述します。

sg-xxxのルールは1つしかないようです。他のルールがある場合は、それらのルールが表示されます。

、唯一のマッチングルールを取得するクエリの最後に

 
--query 'SecurityGroups[*].IpPermissions[?ToPort==`22`]' 

を追加します。

aws ec2 describe-security-groups --filters Name=ip-permission.to-port,Values=22\ 
    Name=ip-permission.from-port,Values=22 Name=ip-permission.protocol,Values=tcp\ 
    --group-ids sg-xxx --query 'SecurityGroups[*].IpPermissions[?ToPort==`22`]'\ 
    --output text 

出力

22 tcp 22 
IPRANGES 1.1.1.1/32 
IPRANGES 2.2.2.2/32 
+0

感謝。それは理にかなっている。 'tcp port 22'にマッチするルールだけを得る方法はありますか? –

+0

@NirajShahが私の答えを更新しました。 – helloV

関連する問題