Vantage Launches a Terraform Provider for AWS Integrations

by Vantage Team


Example terraform code

Today, Vantage announces the launch of an official Terraform Provider for Vantage and a Terraform Module for integrating your AWS accounts with Vantage. Both the Provider and Module are now available in the Terraform Registry. Customers can add the Vantage Terraform module to their Terraform workspace to easily connect and maintain their AWS accounts with Vantage. This can be used to create the initial AWS connection to import billing data and resources to Vantage as well as connect subsequent AWS member accounts.

Before, customers could use Terraform with Vantage, however it required copying and pasting a series of snippets which utilized AWS resources. After the resources were created it also required the customer to manually enter the ARNs into the Vantage UI. While an automated workflow was programmatically supported through CloudFormation StackSets, many organizations use Terraform as their Infrastructure as Code language and, as a result, this workflow did not realistically work for organizations with dozens of AWS member accounts.

Now, the vantage-sh/terraform-aws-vantage-integration module uses the new Vantage provider to automatically setup and integrate an AWS account with Vantage. Customers can utilize the Vantage-maintained module to provision AWS resources and link them to their Vantage account for both management and member accounts. With the following snippets you can quickly integrate any AWS account with Vantage and also keep the integration up-to-date as changes are made.

Using the Vantage AWS Integration Module
provider "aws" {
  region = "us-east-1"
  assume_role {
    role_arn = "arn:aws:iam::123456789012:role/admin-role"
  }
}

module "vantage-integration" {
  source  = "vantage-sh/vantage-integration/aws"

  # Bucket names must be globally unique. It is provisioned with private acl's
  # and only accessed by Vantage via the provisioned cross account role.
  cur_bucket_name = "my-company-cur-vantage"
}

An example setup for the Vantage Terraform Module. Please refer to the the Terraform Registry for the most complete and up-to-date setup instructions.

This functionality is available to all users and can be added to any Terraform workspace with a Terraform version greater than or equal to 1.0.0. You can get started with the provider by visiting the Vantage namespace of the Terraform Registry or visit the Module Repository or Provider Repository. If you would like to transition your existing Vantage integration over to the new Terraform provider please contact support@vantage.sh.

Frequently Asked Questions

1. What is being launched today?

Today Vantage is launching an official Terraform Provider for Vantage and a Terraform Module which allows users to add Vantage to their AWS accounts using this provider.

2. Who is the customer?

Anyone who wants to connect their AWS account to Vantage and currently uses Terraform to manage their AWS infrastructure.

3. How much does this cost?

There is no additional cost for using this provider.

4. How do I install the provider and module?

The provider and module are both available in the Terraform registry and will be fetched as part of terraform init when either the module or provider are configured within your Terraform workspace.

5. What is Terraform?

HashiCorp Terraform is an Infrastructure as Code tool that lets you define both cloud and on-prem resources in human-readable configuration files that you can version, reuse, and share. You can then use a consistent workflow to provision and manage all of your infrastructure throughout its lifecycle. Terraform can manage low-level components like compute, storage, and networking resources, as well as high-level components like DNS entries and SaaS features.

6. What version of Terraform is supported?

Terraform >= 1.0.0 is required.

7. What is the Terraform module doing?

The Terraform Vantage AWS Integration Module is doing the following:

  1. Creating an IAM Role for the cross account connection within your account with corresponding security parameters.
  2. Setting the proper IAM permissions on this role.
  3. If cur_bucket_name is configured:
    1. Creates an S3 Bucket for Cost and Usage Report uploads.
    2. Initiates a cost and usage report generation in the desired Vantage format to be delivered to that corresponding S3 Bucket.
  4. Uses the Vantage Terraform provider to associate the new IAM Role and Cost and Usage Report Bucket to your Vantage account.

8. Is there support for other Vantage integrations besides AWS?

At the moment only AWS is supported, but we do have plans to add Terraform Modules for Google Cloud and Azure.

9. Is this provider and module open source?

Yes, you can visit the Provider and Module repositories on Github.

10. Are permissions kept up-to-date as Vantage updates their integration?

Yes, when you run the module it will ensure the permissions match those expected by the Vantage AWS integration.

11. What version of the AWS Terraform provider is required?

The module expects an AWS Terraform Provider ≥ 4.0.0.

12. I use CloudFormation as my main method for provisioning infrastructure. How does this impact me?

It doesn’t. This release is just for customers who leverage Terraform and you can continue to leverage CloudFormation moving forward.