Attribute AWS integration
Install with Attribute Terraform
To ensure a smooth implementation, Attribute provides a Terraform module that automates setup for billing-information extraction and sensor registration. Detailed Terraform documentation and examples can be found in the [README] within the Terraform module.
AWS Account Types
The module supports installation on both AWS organizational management accounts and member accounts (also known as sub-accounts). Terraform creates all the required infrastructure for the Attribute solution via CloudFormation.
Please note the following:
- Supported Terraform version is 1.9 and above.
- Whenever the sensor needs to be deployed, the Terraform module must be deployed on each sub-account. Additionally, if using a billing or payer account, the module must be deployed on both the billing/payer account and its associated sub-accounts to ensure full cost visibility. We recommend keeping the account installations in the same Terraform state so they're managed together.
- The module does not deploy the Attribute sensor on the compute infrastructure. That process is done with different tools per compute cluster (see Attribute's installation guide).
- The Terraform module must run on
us-east-1, even if the account's resources are in a different region. - When running the module, specify whether you are deploying to the AWS Organization management account or to a member (sub) account where a sensor will be installed, using the
account_typeparameter.
Resources Created by This Module
When running on an AWS management account, the following resources are created:
- S3 bucket and ACLs used to store CUR 2.0 reports and billing data export resources.
- IAM role to allow Attribute to access AWS APIs.
- Data Export resource to facilitate data retrieval.
- CloudFormation stack to automate Attribute Sensor registration.
- EKS (and ECS where applicable) cost allocation tags to support cost tracking.
When running on an AWS member account, the following resources are created:
- IAM role to allow Attribute to access AWS APIs.
- CloudFormation stack to automate Attribute Sensor registration.
Upgrading an Existing Attribute Terraform Module
When upgrading, manually remove the old ZouzCURExport resource.
Appendix A: Detailed Installation Instructions
This appendix walks you through the entire setup process, from the management account configuration to sensor deployment on a member account.
Step 1 — Billing Integration
The following steps should be done only on the management (payer) account.
-
Verify your Terraform version is 1.9 or above:
terraform version -
Make sure you're operating in the
us-east-1region before deploying. -
Update the following variables in the
main.tffile you received from Attribute:- Update the Terraform profile you're using so it points to the correct AWS account.
- Verify the region is set to
us-east-1(do not change to another region). - Verify the alias is set to
"management". - Update the account name from
"change-me"to your account name. - Do not change the
organization_id— leave it as is.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
alias = "management"
}
# provider "aws" {
# region = "us-east-1"
# alias = "sub-1"
# }
resource "random_uuid" "external_id" {}
module "attribute-sensor" {
source = "ZouzIO/attribute-sensor/aws"
version = "~> 2.1"
account_type = "management"
account_name = "change-me"
organization_id = "XXXX-XXXX-XXX-XXXX-XXXXXXX"
external_id = random_uuid.external_id.id
providers = {
aws = aws.management
}
}
# module "attribute-sensor-sub" {
# source = "ZouzIO/attribute-sensor/aws"
# version = "~> 2.1"
#
# account_type = "sub"
# account_name = "change-me-sub"
# organization_id = "XXXX-XXXX-XXX-XXXX-XXXXXXX"
# external_id = random_uuid.external_id.id
#
# providers = {
# aws = aws.sub-1
# }
# } -
Apply the Terraform:
terraform init
terraform apply -
Verification. Log in to your management account's AWS Console and verify that the following resources have been created:
-
An S3 bucket to store CUR 2.0 reports, plus the Data Export.


-
An IAM role that allows Attribute to access AWS APIs.

-