目次

AWS

AWS CLIで、セキュリティーグループを操作



関連ページ


AWS CLIで、セキュリティーグループを利用する時のメモ

インバウンド(Ingress)とアウトバウンド(Egress)

IsEgress:Trueがアウトバウンドルールを表す。Falseがインバウンドルールを表す
CidrIpv4:インバウンドルールの場合はソースとなるIPアドレス。アウトバウンドルールの場合は送信先となるIPアドレス。

アウトバウンドルール
--filters 'Name=IsEgress,Values=True'

インバウンドルール
--filters 'Name=IsEgress,Values=False'


AWS CLIで、セキュリティーグループを確認

aws ec2 describe-security-groups --output=table --query 'sort_by(SecurityGroups[].{A_GroupName: GroupName, B_Name: Tags[?Key==`Name`].Value|[0], C_GroupID: GroupId}, &A_GroupName)'
aws ec2 describe-security-group-rules \
--query "SecurityGroupRules[].\
[SecurityGroupRuleId,\
GroupId,\
IsEgress,\
IpProtocol,\
FromPort,\
ToPort,\
CidrIpv4,\
ReferencedGroupInfo.GroupId,\
ReferencedGroupInfo.PeeringStatus,\
ReferencedGroupInfo.VpcId,\
ReferencedGroupInfo.VpcPeeringConnectionId]" \
--output text
echo "SecurityGroupRuleId GroupId IsEgress IpProtocol FromPort ToPort CidrIpv4 SourceGroupId PeeringStatus VpcId VpcPeeringConnectionId" > /tmp/awscli.tmp

aws ec2 describe-security-group-rules \
--query "SecurityGroupRules[].\
[SecurityGroupRuleId,\
GroupId,\
IsEgress,\
IpProtocol,\
FromPort,\
ToPort,\
CidrIpv4,\
ReferencedGroupInfo.GroupId,\
ReferencedGroupInfo.PeeringStatus,\
ReferencedGroupInfo.VpcId,\
ReferencedGroupInfo.VpcPeeringConnectionId]" \
--output text >> /tmp/awscli.tmp

column -t /tmp/awscli.tmp
rm /tmp/awscli.tmp

セキュリティーグループを指定して詳細確認

#インバウンドルールの一覧
aws ec2 describe-security-groups --group-ids sg-xxxxxxxxxxxxxxxxx --output=table --query 'sort_by(SecurityGroups[].IpPermissions[].{A_Protocol: IpProtocol, B_SourcePort: FromPort, C_SourceIP: join(`, `, IpRanges[].CidrIp), D_SourceId: join(`, `, UserIdGroupPairs[].GroupId), E_SourcePrefix: join(`, `, PrefixListIds[].PrefixListId)}, &A_Protocol)'
#アウトバウンドルールの一覧
aws ec2 describe-security-groups --group-ids sg-xxxxxxxxxxxxxxxxx --output=table --query 'sort_by(SecurityGroups[].IpPermissionsEgress[].{A_Protocol: IpProtocol, B_DestPort: ToPort, C_DestIP: join(`, `, IpRanges[].CidrIp), D_DestId: join(`, `, UserIdGroupPairs[].GroupId), E_DestPrefix: join(`, `, PrefixListIds[].PrefixListId)}, &A_Protocol)'

「-1」はすべてのトラフィックを許可している場合に表示

aws ec2 describe-security-group-rules `
--filters 'Name=group-id,Values=sg-xxxxxxxxxxxxxxxxx' `
--query 'SecurityGroupRules[*].{GroupId: GroupId,IsEgress: IsEgress,IpProtocol: IpProtocol,FromPort: FromPort,ToPort: ToPort,CidrIpv4: CidrIpv4,ReferencedGroupInfoGroupId: ReferencedGroupInfo.GroupId}' `
--output table


参考