Por padrão o terraform state files é armazenado localmente. Objetivo é criar uma estrutura para armazenar remotamente os state files no S3 com DynamoDB para implementar o state locking para estrutura do infracost integrado ao github action com OIDC
- provisionar a estrutura base de backend do tfstate no S3 utilizando o DynamoDB para locking.
- criar a estrutura do OIDC utilizada pelo github para assumir a role necessária na AWS para provisionar os recursos.
- Essa base será utilizada para execução do
terraform-infracost-aws-github-action
localizada no link: terraform-infracost-aws-github-action-oidc
- Terraform instalado, nesse caso utilizado v1.2.6
- Credenciais de acesso já criadas no IAM com as permissões necessárias para o S3 e Dynamodb
- aws_access_key_id e aws_secret_access_key geradas.
python3 -m pip install awscli
aws configure
aws_access_key_id =
aws_secret_access_key =
Files:
data.tf => Configuração do IAM para assumir a role específica
dynamo-tfstate-lock.tf => Criação e parametrização do DynamoDB para deploy e network
oidc-role.tf => Criação da role e policy
oidc-thumb.tf => Geração do thumbprint
output.tf => Saída com o domain name e arn do bucket e role
provider.tf => aws provider
s3-tfstate-infracost.tf => Criação e parametrização do S3 para estrutura do infracost
variables.tf => variaveis
terraform init
Terraform has been successfully initialized!
terraform fmt
terraform validate
terraform plan
terraform apply