Skip to main content

127 docs tagged with "terraform"

View All Tags

account

This component is responsible for provisioning the full account hierarchy along with Organizational Units (OUs). It includes the ability to associate Service Control Policies (SCPs) to the Organization, each Organizational Unit and account.

account-map

This component is responsible for provisioning information only: it simply populates Terraform state with data (account ids, groups, and roles) that other root modules need via outputs.

account-quotas

This component is responsible for requesting service quota increases. We recommend

account-settings

This component is responsible for provisioning account level settings: IAM password policy, AWS Account Alias, EBS encryption, and Service Quotas.

acm

This component is responsible for requesting an ACM certificate for a domain and adding a CNAME record to the DNS zone to complete certificate validation.

alb

This component is responsible for provisioning a generic Application Load Balancer. It depends on the vpc and dns-delegated components.

alb-controller

This component creates a Helm release for alb-controller on an EKS cluster.

amplify

This component is responsible for provisioning

argocd

This component is responsible for provisioning Argo CD.

argocd-repo

This component is responsible for creating and managing an ArgoCD desired state repository.

athena

This component is responsible for provisioning an Amazon Athena workgroup, databases, and related resources.

aurora-mysql

This component is responsible for provisioning Aurora MySQL RDS clusters.

aurora-mysql-resources

This component is responsible for provisioning Aurora MySQL resources: additional databases, users, permissions, grants, etc.

aurora-postgres

This component is responsible for provisioning Aurora Postgres RDS clusters.

aurora-postgres-resources

This component is responsible for provisioning Aurora Postgres resources: additional databases, users, permissions, grants, etc.

aws-backup

This component is responsible for provisioning an AWS Backup Plan. It creates a schedule for backing up given ARNs.

aws-config

This component is responsible for configuring AWS Config.

aws-inspector

This component is responsible for provisioning an AWS Inspector by installing the Inspector agent across all EC2 instances and applying the Inspector rules.

aws-node-termination-handler

This component creates a Helm release for aws-node-termination-handler on a Kubernetes cluster. aws-node-termination-handler is a Kubernetes addon that (by default) monitors the EC2 IMDS endpoint for scheduled maintenance events, spot instance termination events, and rebalance recommendation events, and drains and/or cordons nodes upon such events.

aws-saml

This component is responsible for provisioning SAML metadata into AWS IAM as new SAML providers. Additionally, for an Okta integration (okta must be mentioned in the key given to the saml_providers input) it creates an Okta API user and corresponding Access Key pair which is pushed into AWS SSM.

aws-shield

This component is responsible for enabling AWS Shield Advanced Protection for the following resources:

aws-sso

This component is responsible for creating AWS SSO Permission Sets and creating AWS SSO Account Assignments, that is, assigning IdP (Okta) groups and/or users to AWS SSO permission sets in specific AWS Accounts.

aws-team-roles

This component is responsible for provisioning user and system IAM roles outside the identity account.

aws-waf-acl

This component is responsible for provisioning an AWS Web Application Firewall (WAF) with an associated managed rule group.

bastion

This component is responsible for provisioning a generic Bastion host within an ASG with parameterized user_data and support for AWS SSM Session Manager for remote access with IAM authentication.

cert-manager

This component creates a Helm release for cert-manager on a Kubernetes cluster. cert-manager is a Kubernetes addon that provisions X.509 certificates.

cloudtrail

This component is responsible for provisioning cloudtrail auditing in an individual account. It's expected to be used alongside

cloudtrail-bucket

This component is responsible for provisioning a bucket for storing cloudtrail logs for auditing purposes. It's expected to be used alongside the cloudtrail component.

cloudwatch-logs

This component is responsible for creation of CloudWatch Log Streams and Log Groups.

cluster

This component is responsible for provisioning an end-to-end EKS Cluster, including managed node groups and Fargate profiles.

cognito

This component is responsible for provisioning and managing AWS Cognito resources.

common

This component is responsible for configuring GuardDuty and it should be used in tandem with the guardduty/root component.

common

This component is responsible for configuring Security Hub and it should be used in tandem with the securityhub/root component.

config-bucket

This module creates an S3 bucket suitable for storing AWS Config data.

datadog_keys

Useful submodule for other modules to quickly configure the datadog provider

datadog-agent

This component installs the datadog-agent for EKS clusters.

datadog-configuration

This component is responsible for provisioning SSM or ASM entries for Datadog API keys.

datadog-logs-archive

This component is responsible for provisioning Datadog Log Archives. It creates a single log archive pipeline for each AWS account. If the catchall flag is set, it creates a catchall archive within the same S3 bucket.

datadog-monitor

This component is responsible for provisioning Datadog monitors and assigning Datadog roles to the monitors.

datadog-synthetics

This component provides the ability to implement Datadog synthetic tests.

dns-delegated

This component is responsible for provisioning a DNS zone which delegates nameservers to the DNS zone in the primary DNS account. The primary DNS zone is expected to already be provisioned via the dns-primary component.

dns-primary

This component is responsible for provisioning the primary DNS zones into an AWS account. By convention, we typically provision the primary DNS zones in the dns account. The primary account for branded zones (e.g. example.com), however, would be in the prod account, while staging zone (e.g. example.qa) might be in the staging account.

documentdb

This component is responsible for provisioning DocumentDB clusters.

dynamodb

This component is responsible for provisioning a DynamoDB table.

ebs-controller

This component creates a Helm release for ebs-controller on a Kubernetes cluster.

ec2-client-vpn

This component is responsible for provisioning VPN Client Endpoints.

echo-server

This is copied from cloudposse/terraform-aws-components.

ecr

This component is responsible for provisioning repositories, lifecycle rules, and permissions for streamlined ECR usage.

ecs

This component is responsible for provisioning an ECS Cluster and associated load balancer.

ecs-service

This component is responsible for creating an ECS service.

efs

This component is responsible for provisioning an EFS Network File System with KMS encryption-at-rest. EFS is an excellent choice as the default block storage for EKS clusters so that volumes are not zone-locked.

efs-controller

This component creates a Helm release for efs-controller on a Kubernetes cluster.

eks-iam

This component is responsible for provisioning specific IAM roles for Kubernetes Service Accounts. IAM roles are created for the following Kubernetes projects:

eks-without-spotinst

This component is responsible for provisioning an end-to-end EKS Cluster, including managed node groups.

elasticache-redis

This component is responsible for provisioning ElastiCache Redis clusters.

elasticsearch

This component is responsible for provisioning an Elasticsearch cluster with built-in integrations with Kibana and Logstash.

endpoint

This component provisions DMS endpoints.

external-dns

This component creates a Helm deployment for external-dns on a Kubernetes cluster. external-dns is a Kubernetes addon that configures public DNS servers with information about exposed Kubernetes services to make them discoverable.

external-secrets-operator

This component (ESO) is used to create an external SecretStore configured to synchronize secrets from AWS SSM Parameter store as Kubernetes Secrets within the cluster. Per the operator pattern, the external-secret-operator pods will watch for any ExternalSecret resources which reference the SecretStore to pull secrets from.

github-runners

This component is responsible for provisioning EC2 instances for GitHub runners.

global-accelerator

This component is responsible for provisioning AWS Global Accelerator and its listeners.

hub

This component is responsible for provisioning an AWS Transit Gateway hub that acts as a centralized gateway for connecting VPCs from other spoke accounts.

iam

This component provisions IAM roles required for DMS.

iam-role

This component is responsible for provisioning simple IAM roles. If a more complicated IAM role and policy are desired then it is better to use a separate component specific to that role.

iam-roles

This submodule is used by other modules to determine which IAM Roles

idp-roles

This component installs the idp-roles for EKS clusters. These identity provider roles specify severl pre-determined permission levels for cluster users and come with bindings that make them easy to assign to Users and Groups.

karpenter

This component provisions Karpenter on an EKS cluster.

kinesis-stream

This component is responsible for provisioning an Amazon Kinesis data stream.

kms

This component is responsible for provisioning a KMS Key.

lakeformation

This component is responsible for provisioning Amazon Lake Formation resources.

lambda

This component is responsible for provisioning Lambda functions.

metrics-server

This component creates a Helm release for metrics-server is a Kubernetes addon that provides resource usage metrics used in particular by other addons such Horizontal Pod Autoscaler.

mq-broker

This component is responsible for provisioning an AmazonMQ broker and corresponding security group.

mwaa

This component provisions Amazon managed workflows for Apache Airflow.

network-firewall

This component is responsible for provisioning AWS Network Firewall resources,

opsgenie-team

This component is responsible for provisioning Opsgenie teams and related services, rules, schedules.

platform

This component maps another components' outputs into SSM parameter store to declare

rds

This component is responsible for provisioning an RDS instance. It seeds relevant database information (hostnames, username, password, etc.) into AWS SSM Parameter Store.

redis

This component installs redis for EKS clusters. This is a Self Hosted Redis Cluster installed on EKS.

redis-operator

This component installs redis-operator for EKS clusters. Redis Operator creates/configures/manages high availability redis with sentinel automatic failover atop Kubernetes.

redshift

This component is responsible for provisioning a RedShift instance. It seeds relevant database information (hostnames, username, password, etc.) into AWS SSM Parameter Store.

reloader

This component installs the Stakater Reloader for EKS clusters.

root

This component should be used in tandem with the guardduty/common component. Please take a look at guardduty/common/README for more information about GuardDuty and deployment steps.

root

This component should be used in tandem with the securityhub/common component. Please take a look at securityhub/common/README for more information about Security Hub and deployment steps.

s3-bucket

This component is responsible for provisioning S3 buckets.

ses

This component is responsible for provisioning SES to act as an SMTP gateway. The credentials used for sending email can be retrieved from SSM.

sftp

This component is responsible for provisioning SFTP Endpoints.

snowflake-account

This component sets up the requirements for all other Snowflake components, including creating the Terraform service user. Before running this component, follow the manual, Click-Ops steps below to create a Snowflake subscription.

snowflake-database

All data in Snowflake is stored in database tables, logically structured as collections of columns and rows. This component will create and control a Snowflake database, schema, and set of tables.

sns-topic

This component is responsible for provisioning an SNS topic.

spacelift

This component is responsible for provisioning Spacelift stacks.

spacelift-policy

This component is responsible for provisioning Spacelift policies.

spoke

This component is responsible for provisioning AWS Transit Gateway attachments to connect VPCs in a spoke account to different accounts through a central hub.

sqs-queue

This component is responsible for creating an SQS queue.

ssm-parameters

This component is responsible for provisioning Parameter Store resources against AWS SSM. It supports normal parameter store resources that can be configured directly in YAML OR pulling secret values from a local Sops file.

sso

This component is responsible for provisioning SAML metadata into AWS IAM as new SAML providers. Additionally, for an Okta integration (okta must be mentioned in the key given to the saml_providers input) it creates an Okta API user and corresponding Access Key pair which is pushed into AWS SSM.

sso-saml-provider

This component reads sso credentials from SSM Parameter store and provides them as outputs

strongdm

This component provisions strongDM gateway, relay and roles

team-assume-role-policy

This submodule generates a JSON-encoded IAM Policy Document suitable for use as an "Assume Role Policy".

tfstate-backend

This component is responsible for provisioning an S3 Bucket and DynamoDB table that follow security best practices for usage as a Terraform backend. It also creates IAM roles for access to the Terraform backend.

vpc

This component is responsible for provisioning a VPC and corresponding Subnets. Additionally, VPC Flow Logs can optionally be enabled for auditing purposes. See the existing VPC configuration documentation for the provisioned subnets.

vpc-flow-logs-bucket

This component is responsible for provisioning an encrypted S3 bucket which is configured to receive VPC Flow Logs.

vpc-peering

This component is responsible for creating a peering connection between two VPCs existing in different AWS accounts.

waf

This component is responsible for provisioning an AWS Web Application Firewall (WAF) with an associated managed rule group.

zscaler

This component is responsible for provisioning ZScaler Private Access Connector instances on Amazon Linux 2 AMIs.