This template provides a foundation for creating AWS-based StrongDM deployments using Terraform.
You can optionally provide tags to be applied to all resources. The module automatically adds these standard tags:
ManagedBy
: "terraform"Application
: "strongdm"Name
: Resource identifier (from gateway_instance_name)
To add your own tags, use the tags
variable:
module "strongdm_aws" {
source = "strongdm/sdm-gateway"
// Required parameters
aws_region = "us-west-2"
name = "aws-production-gateway"
vpc_id = "vpc-xxxxxxxx"
subnet_id = "subnet-xxxxxxxx"
// Optional: Custom tags
tags = {
Environment = "Production"
Owner = "platform-team"
Project = "strongdm-infrastructure"
CostCenter = "IT-123"
}
}
- AWS-specific resource provisioning for StrongDM gateways
- Standardized module structure for consistency
- Automatic tagging with standard metadata
- Support for custom tags
module "strongdm_aws" {
source = "strongdm/sdm-gateway"
// Required parameters
aws_region = "us-west-2"
name = "aws-production-gateway"
vpc_id = "vpc-xxxxxxxx"
subnet_id = "subnet-xxxxxxxx"
// Required: Compliance tags
tags = {
Environment = "Production"
Owner = "platform-team"
Project = "strongdm-infrastructure"
}
}
- Terraform >= 1
- AWS provider >= 4.0
- Valid StrongDM API credentials
- Valid AWS credentials
See the respective documentation files for details.
A complete example deployment is provided in the example/
directory. This includes:
- Example
main.tf
showing how to use the module with two gateway instances - Example
variables.tf
andterraform.tfvars.example
for required variables - Example
outputs.tf
to expose useful outputs
To try the example:
- Copy
example/terraform.tfvars.example
toexample/terraform.tfvars
and fill in your values. - Run
terraform init
andterraform apply
inside theexample/
directory.
Refer to the files in example/
for a practical usage reference.
We welcome contributions! Please see our Contributing Guide for detailed information about:
- Commit Message Standards: We use Conventional Commits for consistent commit messages
- Development Workflow: Setup, testing, and submission process
- Code Standards: Terraform and Go formatting requirements
- Static Analysis:
make all-static
- Run Integration Tests:
go test -v ./tests/integration
- With direnv:
direnv exec . go test -v ./tests/integration
- **Terraform test (unit tests)**terraform test -test-directory ./tests/unit`
- Contributing Guide: Complete development workflow and standards
- Commit Reference: Quick lookup for commit message format