Skip to content

tomarv2/terraform-aws-security-group

Repository files navigation

Terraform module for AWS Security Groups

Versions

  • Module tested for Terraform 1.0.1.
  • AWS provider version 4.35
  • main branch: Provider versions not pinned to keep up with Terraform releases.
  • tags releases: Tags are pinned with versions (use ).

Usage

Option 1:

terrafrom init
terraform plan -var='teamid=tryme' -var='prjid=project1'
terraform apply -var='teamid=tryme' -var='prjid=project1'
terraform destroy -var='teamid=tryme' -var='prjid=project1'

Note: With this option please take care of remote state storage

Option 2:

Recommended method (stores remote state in remote backend(S3, Azure storage, or Google bucket) using prjid and teamid to create directory structure):
  • Create python 3.8+ virtual environment
python3 -m venv <venv name>
  • Install package:
pip install tfremote --upgrade
  • Set below environment variables:
export TF_AWS_BUCKET=<remote state bucket name>
export TF_AWS_BUCKET_REGION=us-west-2
export TF_AWS_PROFILE=<profile from ~/.ws/credentials>

or

  • Set below environment variables:
export TF_AWS_BUCKET=<remote state bucket name>
export TF_AWS_BUCKET_REGION=us-west-2
export AWS_ACCESS_KEY_ID=<aws_access_key_id>
export AWS_SECRET_ACCESS_KEY=<aws_secret_access_key>
  • Updated examples directory with required values.

  • Run and verify the output before deploying:

tf -c=aws plan -var='teamid=foo' -var='prjid=bar'
  • Run below to deploy:
tf -c=aws apply -var='teamid=foo' -var='prjid=bar'
  • Run below to destroy:
tf -c=aws destroy -var='teamid=foo' -var='prjid=bar'

Note: Read more on tfremote

Requirements

Name Version
terraform >= 1.0.1
aws ~> 4.61

Providers

Name Version
aws ~> 4.61

Modules

No modules.

Resources

Name Type
aws_security_group.this resource
aws_caller_identity.current data source
aws_region.current data source

Inputs

Name Description Type Default Required
config Security groups configuration any {} no
extra_tags Additional tags to associate map(string) {} no
security_group_create_timeout How long to wait for the security group to be created. string "10m" no
security_group_delete_timeout How long to retry on DependencyViolation errors during security group deletion from
lingering ENIs left by certain AWS services such as Elastic Load Balancing.
string "15m" no

Outputs

Name Description
arn Security group ARN.
id The ID of the security group.
name The name of the security group.
vpc_id VPC id associated with security group.