vault-raft
giuliocalzolari/vault-raft/aws
Hashicorp Vault HA cluster on AWS based on Raft Consensus Algorithm
Hashicorp Vault using AWS Native Overview Hashicorp Vault is becoming one of the most popular tools for secret management, every company to improve their security but sometimes setting a Vault it requires some time and deep understanding on how to configure it. To make it easy the journey to AWS Cloud and increase the level of security of all application I've decided to create an out-of-the-box solution to configure the AWS infrastructure and setting up Vault in one click. This implementation of Vault cluster is based on Raft Storage Backend announced tech preview on 1.2.0 (July 30th, 2019), introduced a beta on 1.3.0 (November 14th, 2019)) and promoted out of beta on 1.4.0 (April 7th, 2020) and is relying on native AWS tool such as AWS KMS, AWS S3, AWS Cloudwatch. >The Raft storage backen
| Name | Type | Description | Default |
|---|---|---|---|
| actions_alarm | list(string) | A list of actions to take when alarms are triggered. Will likely be an SNS topic | [] |
| vault_telemetry | string | enabling Vault Telemetry (Warning!!! AWS custom metric will increase the cost of | "false" |
| public_key | string | SSH public key to install in vault | null |
| root_volume_size | string | EC2 ASG Disk Size | "50" |
| ebs_optimized | bool | If true, the launched EC2 instance will be EBS-optimized. | false |
| health_check_type | string | 'EC2' or 'ELB'. Controls how health checking is done. | "ELB" |
| admin_cidr_blocks | list(string) | Admin CIDR Block to access SSH and internal Application ports | [] |
| environment | string | Environment Name (e.g. dev, test, uat, prod, etc..) | "dev" |
| suffix | string | Suffix to add on all resources | "" |
| sns_email | list(string) | list of email for SNS alarm | [] |
| vault_version | string | Vault version to install | null |
| app_name | string | Application name N.1 (e.g. vault, secure, store, etc..) | "vault" |
| lb_subnets | list(string) | ALB Subnets | [] |
| zone_name | string | Public Route53 Zone name for DNS and ACM validation | null |
| arch | string | EC2 Architecture arm64/x86_64 (arm64 is suggested) | "x86_64" |
| kms_key_deletion_window_in_days | string | The waiting period, specified in number of days. After the waiting period ends, | "7" |
| root_volume_type | string | The volume type. Can be standard, gp2, gp3, io1, io2, sc1 or st1 (Default: gp2). | "gp2" |
| size | string | ASG Size | "3" |
| termination_policies | list(string) | ASG Termination Policy | [
"Default"
] |
| actions_ok | list(string) | A list of actions to take when alarms are cleared. Will likely be an SNS topic f | [] |
ec2_iam_role_arn — IAM EC2 role ARNadmin_pass_arn — SSM vault root password ARNroot_token_arn — SSM vault root token ARNsns_arn — SNS ARNvault_fqdn — Vault DNSkms_key_id — KMS key IDvault_version — Vault Versionalb_arn — ALB ARNalb_hostname — ALB DNSAzure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,