bastion-host-ssm

Hapag-Lloyd/bastion-host-ssm/aws

Terraform Module HCL AWS

Terraform module to create an enterprise grade bastion host: High availability, SSM access only, encrypted disk and flexible resource naming.

Install
module "bastion-host-ssm" {
source = "Hapag-Lloyd/bastion-host-ssm/aws"
version = "5.3.18"
}
plain text: /constructs/tfmod-hapag-lloyd-bastion-host-ssm-aws/install.txt
⭐ Source on GitHub 📦 Registry page
README

terraform-aws-bastion-host-ssm ![Terraform registry](https://registry.terraform.io/modules/Hapag-Lloyd/bastion-host-ssm/aws/) ![Actions](https://github.com/Hapag-Lloyd/terraform-aws-bastion-host-ssm/actions) This Terraform module installs a bastion host accessible via SSM only. The underlying EC2 instance has no ports opened. All data is encrypted and a resource_prefix can be specified to integrate into your naming schema. The implemented connection method allows port forwarding for one port only. Multiple port forwardings can be realized by the user by creating multiple connections to the bastion host. Check the examples directory for the module usage. Cost Estimation (for version 2.4.0) ```text Name Monthly Qty Unit Monthly Cost module.bastion_host.aws_autoscaling_group.on_spot[0] └─ mod

Inputs (15)
NameTypeDescriptionDefault
egress_open_tcp_portslist(number)The list of TCP ports to open for outgoing traffic. required
subnet_idslist(string)The subnets to place the bastion in. required
security_group_idstringThe security group ID to use for the bastion host. required
connect_bastion_role_namestringThe name of the role to assume to connect to the bastion host. required
bastion_access_tag_valuestringValue added as tag 'bastion-access' of the launched EC2 instance to be used to r"developer"
resource_namesobject({ prefix = strinSettings for generating resource names. Set the prefix and the separator accordi{ "prefix": "bastion", "separator":
log_group_retention_daysnumberNumber of days for the Cloudwatch Log-Group retention period5
ami_idstringThe AMI ID to use for the bastion host. If not set a default AMI is used which i"ami-0f6f47ec74a449428"
enable_panic_switchesboolIf true, create the panic button Lambda switches to turn on/off the bastion hosttrue
kms_key_arnstringThe ARN of the KMS key used to encrypt the resources.null
tagsmap(string)A list of tags to add to all resources.{}
iam_role_pathstringRole path for the created bastion instance profile. Must end with '/'. Not used "/"
scheduleobject({ start = strinDefines when to start and stop the instances. Use 'start' and 'stop' with a cronnull
instanceobject({ type Defines the basic parameters for the EC2 instance used as Bastion host{ "desired_capacity": 1, "enable_mon
instances_distributionobject({ on_demand_base_caDefines the parameters for mixed instances policy auto scaling{ "on_demand_base_capacity": 0, "on_
Resources (10)
aws_ami_copyaws_autoscaling_groupaws_autoscaling_scheduleaws_cloudwatch_log_groupaws_iam_policyaws_iam_roleaws_iam_role_policy_attachmentaws_lambda_functionaws_launch_templateaws_vpc_security_group_egress_rule
Details
FrameworkTerraform Module
LanguageHCL
Version5.3.18
Cloud AWS
★ Stars10
Forks4
Total downloads53.6k
Inputs15
Resources10
Examples4
LicenseApache-2.0
NamespaceHapag-Lloyd
Updated