Onboarding

Enable detailed cost data (CUR 2.0)

LevelFour can read your AWS Cost and Usage Report 2.0 (CUR), the most detailed billing data AWS produces. Enabling it lets LevelFour break costs down to the individual resource, tag, and usage type, and show amortized and net costs alongside unblended spend.

This step is optional. Your account works without it (LevelFour falls back to Cost Explorer), but resource-level views and tag-based cost allocation are richer once CUR is on.

It is a one-time setup. Run it in your management (payer) account, in us-east-1. The Cost and Usage Report is an organization-wide artifact: one export in the payer account covers every member account, so you do not run it in linked accounts.

What gets created

The stack creates three resources in your account:

  • An S3 bucket named levelfour-cur-<your-account-id> that receives the export. It is SSE-S3 encrypted, has public access blocked, and expires objects after 120 days.
  • A bucket policy that lets the AWS Data Exports service write the report and lets LevelFour read it. AWS Data Exports cannot read or delete anything in the bucket, and LevelFour has read-only access.
  • A CUR 2.0 data export (AWS::BCMDataExports::Export) that delivers a daily Parquet file with all available columns and resource IDs.

LevelFour copies each day's report into its own storage and refreshes your cost views. The export itself is free. You pay only standard S3 storage for the bucket, which is typically a few dollars per month.

Sign in to the AWS Console as your management (payer) account, then open the one-click stack link:

Create the CUR stack

  1. Confirm the region is us-east-1.
  2. Leave the parameters at their defaults.
  3. Acknowledge the capabilities prompt and click Create stack.

The stack finishes in under a minute. AWS then delivers the first report within about a day.

Method B: Terraform

If you manage your account with infrastructure as code, deploy the same published template through an aws_cloudformation_stack resource. This keeps a single source of truth (the LevelFour template) and records the export in your state.

resource "aws_cloudformation_stack" "levelfour_cur" {
  name         = "levelfour-cur"
  template_url = "https://cf-templates-1bsphth8u70q9-us-east-1.s3.amazonaws.com/onboarding/v2/onboarding-levelfour-enable-cur.template.json"
}

Apply it from the management account in us-east-1:

terraform init
terraform apply

Native Terraform resources (alternative)

If you would rather not wrap a CloudFormation stack, you can create the same resources natively with aws_s3_bucket, aws_s3_bucket_policy, and aws_bcmdataexports_export. The wrapped-template approach above is simpler and stays in sync with LevelFour automatically, so prefer it unless your platform standards require native resources.

Confirming it worked

Open Connect Accounts, then AWS in the dashboard. The Detailed cost data panel summarizes which payer accounts are connected. Within about a day of the first delivery, your management account shows as connected there, and resource-level breakdowns appear in your cost views.

If it stays disconnected after a day, confirm the stack was created in the management account in us-east-1, and that no Service Control Policy blocks bcm-data-exports:CreateExport or the bucket policy.