You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bdeshi 19ebb73fe8
add resources
6 months ago
.gitignore add resources 6 months ago
.terraform-version add resources 6 months ago
.terraform.lock.hcl add resources 6 months ago
LICENSE add license 6 months ago
README.md add resources 6 months ago
README.terraform.md add resources 6 months ago
aws.data.tf add resources 6 months ago
aws.dynamodb.tf add resources 6 months ago
aws.iam.tf add resources 6 months ago
aws.kms.tf add resources 6 months ago
aws.s3.tf add resources 6 months ago
aws.ssm.tf add resources 6 months ago
terraform.meta.tf add resources 6 months ago
terraform.outputs.tf add resources 6 months ago
terraform.tfvars.sample add resources 6 months ago
terraform.variables.tf add resources 6 months ago

README.md

Terraform AWS Pre-Base

Intro

This project deploys the basic resources necessary for running multi-user Terraform deployments on an AWS account.

  • an s3 bucket for storing terraform states
  • a dynamodb table for maintaining terraform locks
  • an admin user intended for use in other IaC projects
  • a kms key intended for securing other IaC project secrets
  • a parameter store tree to keep outputs of this project for reference

This configuration is intended to be manually executed once at the beginning by the root user.

⚠️ Re-deploying this project again after running other AWS IaC projects can be extremely destructive.

Usage

  1. Install terraform or opentofu (preferably with tfenv). The required version is stated in terraform.meta.tf.

  2. Install terraform dependencies:

    terraform init -upgrade
    
  3. Insert org-specific variable values in <org-name>.tfvars. See *.tfvars.sample for example.

  4. Then execute as:

    terraform apply -var-file=<org-name>.tfvars
    

Notes

The terraform state is not saved in s3, because it is assumed that no s3 bucket for terraform states exists yet. User should secure the state file using some other method.

Generated outputs are saved in a parameter store tree for future reference.