Tools
Paste the inbound rules of a security group. The checker flags what is open to the internet, ports that should not be, and rules that repeat or add nothing. The text is read on the server and is not saved.
One rule per line. A # starts a comment.
SSH 22 0.0.0.0/0
HTTPS 0.0.0.0/0
tcp 8000-8100 10.0.1.0/24
tcp 5432 sg-0a1b2c3d4e5f67890
udp 53 pl-0a1b2c3d
icmp 10.0.0.0/16
all 10.0.0.0/16
tcp and udp take a port or a range such as 8000-8100 (or all). icmp, icmpv6, and all take no port.SSH, HTTPS, RDP, PostgreSQL, or MySQL/Aurora. These are not protocols of their own. Each one stands for TCP on its usual port, so SSH 22 0.0.0.0/0 and SSH 0.0.0.0/0 mean the same thing. To allow HTTP/3, which uses UDP, write udp 443 ….sg-…), or a prefix list ID (pl-…). 0.0.0.0/0 is every IPv4 address and ::/0 is every IPv6 address. A single address such as 203.0.113.5 is read as a /32.aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 and paste the output. Several groups are checked together and each finding names its group.0.0.0.0/0 or ::/0./16 or larger on a sensitive port. It allows every current and future address in that range, not only the app that needs access./32, or use AWS Systems Manager Session Manager, which needs no inbound port at all.Security groups are allow-lists. If no rule matches, the packet is dropped, and there are no deny rules. Return traffic for a connection you allowed is permitted automatically, so you never open a port for responses.
Treat a clean result as "no known bad pattern in these rules", not as a security review.