Skip to main content

149 docs tagged with "aws"

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.

admin-stack

This component is responsible for creating an administrative stack and its

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

api-gateway-account-settings

This component is responsible for setting the global, regional settings required to allow API Gateway to write to CloudWatch logs.

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-inspector2

This component is responsible for configuring Inspector V2 within an AWS Organization.

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-ssosync

Deploys AWS ssosync to sync Google Groups with AWS SSO.

aws-team-roles

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

aws-teams

This component is responsible for provisioning all primary user and system roles into the centralized identity account.

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.

config-bucket

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

connection

This component provisions Glue connections.

crawler

This component provisions Glue crawlers.

cross-region-hub-connector

This component is responsible for provisioning an AWS Transit Gateway Peering Connection to connect TGWs from different accounts and(or) regions.

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-integration

This component is responsible for provisioning Datadog AWS integrations. It depends on

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.

dist

Removes need for ASM Secrets

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.

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.

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.

eventbridge

The eventbridge component is a Terraform module that defines a CloudWatch EventBridge rule.

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-oidc-role

This component is responsible for creating IAM roles for GitHub Actions to assume.

github-runners

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

github-webhook

This component provisions a GitHub webhook for a single GitHub repository.

gitops

This component is used to deploy GitHub OIDC roles for accessing the gitops Team. We use this team to run Terraform from GitHub Actions.

global-accelerator

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

guardduty

This component is responsible for configuring GuardDuty within an AWS Organization.

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

This component provisions IAM roles for AWS Glue.

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.

ipam

This component is responsible for provisioning IPAM per region in a centralized account.

job

This component provisions Glue jobs.

karpenter

This component provisions Karpenter on an EKS cluster.

keda

This component is used to install the KEDA operator.

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.

msk

This component is responsible for provisioning Amazon Managed Streaming

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.

registry

This component provisions Glue registries.

reloader

This component installs the Stakater Reloader for EKS clusters.

s3-bucket

This component is responsible for provisioning S3 buckets.

schema

This component provisions Glue schemas.

security-hub

This component is responsible for configuring Security Hub within an AWS Organization.

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

These components are responsible for setting up Spacelift and include three components: spacelift/admin-stack, spacelift/spaces, and spacelift/worker-pool.

spaces

This component is responsible for creating and managing the spaces in the

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-saml-provider

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

storage-class

This component is responsible for provisioning StorageClasses in an EKS cluster.

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.

tgw

AWS Transit Gateway connects your Amazon Virtual Private Clouds (VPCs) and on-premises networks through a central hub. This connection simplifies your network and puts an end to complex peering relationships. Transit Gateway acts as a highly scalable cloud router—each new connection is made only once.

trigger

This component provisions Glue triggers.

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.

worker-pool

This component is responsible for provisioning Spacelift worker pools.

workflow

This component provisions Glue workflows.

zscaler

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