If, like me, you have to manage several Security Groups on your AWS account, you can make use of the describe-security-groups AWS CLI command for download them as a .json file for backup.
TL;DR
You can jump to the official AWS documentation for the describe-security-groups AWS CLI command on this link: https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html
Prerequisites
You will need to have the AWS CLI command line tool installed and configured on your system.
You can find the necessary information on this two links:
- https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html
- https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
How to use
- 
Open a terminal window on a local folder and run this command: 
 aws ec2 describe-security-groups --group-ids sg-123abcd4You will need the ID of the Security Group you want the backup (in this example 'sg-123abcd4'). 
- Done! You can now backup the newly created .json file with GIT or in any other way you want. 
About the .json file
As a quick reference here is how the .json file looks:
{
    "SecurityGroups": [
        {
            "IpPermissionsEgress": [],
            "Description": "My security group",
            "IpPermissions": [
                {
                    "PrefixListIds": [],
                    "FromPort": 22,
                    "IpRanges": [
                        {
                            "CidrIp": "203.0.113.0/24"
                        }
                    ],
                    "ToPort": 22,
                    "IpProtocol": "tcp",
                    "UserIdGroupPairs": []
                }
            ],
            "GroupName": "MySecurityGroup",
            "OwnerId": "123456789012",
            "GroupId": "sg-903004f8",
        }
    ]
}
 

 
    
Top comments (2)
Hello Lucas, thanks for you post. Just a quick question can I use this method to copy security groups from one aws account to another?
Nice - this has always been in the back of my mind for needed retention.