Skip to main content

AWS Data Exports (CUR 2.0)

Integrate AWS Data Exports (also referred to as CUR 2.0) with Cloudaware to ingest detailed spend and usage data for Cost Management dashboards, allocation, and optimization. AWS Data Exports provide the most detailed, flexible billing data for AWS.

  • Audience: Cloudaware administrators, FinOps, finance teams
  • Outcome: AWS Data Export (CUR 2.0) configured and ingested into Cloudaware

How It Works

  • AWS generates cost and usage reports and delivers them to an S3 bucket in the AWS management (payer) account.
  • Cloudaware uses a read‑only cross‑account IAM role, deployed through AWS CloudFormation, to read the exported objects from S3.
  • Cloudaware normalizes the data and uses it in Cost Management dashboards, allocation workflows, and optimization workflows.

Compared to legacy CUR:

  • AWS Data Exports (CUR 2.0) provide more flexible schemas for AWS billing data.

    Unlike the legacy format, CUR 2.0 uses a consistent, fixed schema that nests variable data to reduce sparsity, and introduces user-friendly attributes like bill payer and usage account names. It also includes exclusive cost attribution features absent in legacy CUR, such as IAM Principal-based cost allocation. This exposes exact caller identities (IAM users and roles) for services like Amazon Bedrock, allowing you to track generative AI inference costs down to the individual user.

  • Legacy CUR is still supported. Use legacy CUR only when you have existing workflows that depend on the older format.

note

If you migrate from legacy CUR to Data Exports, coordinate the cutover so that:

  • The Data Export contains at least a full billing period of data.
  • Dashboards and reports in Cloudaware are reviewed for continuity during and after the transition.

Prerequisites

Before you begin, confirm that you have the following:

  • AWS management (payer) account with access to Billing & Cost Management.
  • A dedicated S3 bucket for AWS Data Exports (versioning is recommended).
  • AWS management or member account that is connected to Cloudaware. If it is not connected, complete the AWS Setup Guide first.
  • Cloudaware cross‑account role is updated through CloudFormation with these permissions:
    • s3:ListBucket on the Data Exports bucket
    • s3:GetObject on the Data Exports bucket prefix
    • s3:GetBucketLocation
    • s3:ListAllMyBuckets
  • If your S3 bucket uses KMS encryption, check security notes.
tip

Store Data Exports in a separate bucket or prefix from other application data to simplify access control and governance.

Locate or Configure the Data Export in AWS

  1. Sign in to the AWS console using the management account.
  2. Open the Billing and Cost Management console.
  3. In the navigation pane, select Data exports.
  4. Locate the existing CUR 2.0 report that Cloudaware will use. Confirm that the export:
    • Uses the required time granularity
    • Includes all linked accounts required for your FinOps processes
  5. To create a new Data Export:
    1. Click Create report.
    2. Select Standard data export.
    3. Enter an Export name (for example, billing-data-export).
    4. Under Data table configurations, select the CUR 2.0 table.
    5. Enable Include resource IDs.
    6. Select the desired time granularity (Hourly, Daily, or Monthly).
    7. Choose the output format and compression option (Parquet or .gz compression).
    8. Select or create the S3 bucket, then enter the S3 prefix for delivery.
    9. Complete the wizard, then confirm the export is created. Note that AWS can take up to 24 hours to begin delivering export files to S3.

For more details, refer to AWS documentation.

Validate the Data Export Settings

To support detailed allocation and resource-level cost views in Cloudaware, confirm the following in the Data Export configuration:

  • Include resource IDs is enabled.
  • Any options equivalent to "detailed" or "resource‑level" data are selected.
  • The export status is Active.
  • The S3 destination bucket and prefix are correct and stable.
note

After you create or update a Data Export, wait for AWS to generate and deliver the next export files before expecting data to appear in Cloudaware.

Verify Cloudaware Access to the S3 Bucket

Cloudaware reads Data Export files from S3 using its cross‑account IAM role.

  1. In the AWS console, open CloudFormation in the management account.
  2. Locate the Cloudaware stack for this account and confirm that:
    • The template is configured with the name of the S3 bucket used for Data Exports.
    • The prefix (folder) is specified if necessary.
  3. Verify that the IAM role and S3 bucket policy allow the Cloudaware role to:
    • s3:ListBucket
    • s3:GetObject

If these permissions are missing or the bucket name/prefix changed, update the CloudFormation stack:

  1. In Cloudaware, go to Admin
  2. Select Amazon Web Services, then click CONFIGURED.
  3. Select the management account, click the three-dot menu, and choose Download CloudFormation Template.
  4. Confirm that the template includes:
    • The correct S3 bucket name used for Data Exports.
    • The correct prefix, if applicable.
  5. In AWS CloudFormation, update the existing Cloudaware stack with the downloaded template.
  6. Wait for the stack update to complete successfully.

After the update completes, the Cloudaware role can read the Data Exports bucket.

Validate or Enable AWS CUR 2.0 Billing Integration in Cloudaware

  1. In Cloudaware, go to AdminAWS Billing, then click CONFIGURED.
  2. Under Payer Account, locate the payer account entry or review the individual member accounts.
  3. Confirm that Cloudaware has discovered the correct billing report for the expected S3 bucket and prefix. The integration status must be green.
  4. In Cost Fields Handler, confirm the selected report type. Cloudaware uses the selected report type as the billing source for cost data on CMDB objects. For AWS Data Exports-based billing, CUR 2.0 must be selected. If needed, click EDIT and select CUR 2.0. Click SAVE.
note

After billing is enabled, Cloudaware begins ingesting new Data Exports (CUR 2.0) files during the next collection cycle.

Verification

After you enable the integration, wait until the next collection cycle for data to appear.

  • In Cloudaware, go to AdminAWS BillingCONFIGURED. Verify that the CUR 2.0 integration status is green and that CUR 2.0 is selected in Cost Fields Handler.
  • Verify that AWS costs appear as expected on Cloudaware CMDB objects.
  • In Cost Management dashboards once provided:
    • Filter to AWS if needed, and verify that account IDs, services, regions, and cost allocation tags appear as expected.

See also: AWS Billing Verification

Troubleshooting

Data collection and processing time in Cloudaware depends on the volume of billing files. If costs do not appear within 24 hours, check the following:

  • In the AWS console, verify that the Data Export is Active under Billing and Cost ManagementCost and Usage AnalysisData reports, and still targets the expected S3 bucket and prefix.
  • In Amazon S3, confirm that new Data Export objects are being written under the configured bucket and prefix, and that object timestamps are recent and continuous.
  • In Cloudaware AdminAWS BillingCONFIGURED, check that the Data Export billing source is discovered, enabled, and has green status, and that the report type in Cost Fields Handler is set to CUR 2.0.
  • If you recently changed the bucket/prefix or IAM configuration, re‑download the Cloudaware CloudFormation Template for the account, update the stack, and confirm the role has s3:ListBucket and s3:GetObject on the export bucket/prefix.

See also: AWS Billing Troubleshooting

note

If costs do not match AWS Cost Explorer, note that AWS billing totals may differ depending on the source used for comparison. AWS Cost Explorer is the recommended reference point for customers to validate AWS costs, but Cloudaware uses AWS Data Exports line-item data. Because Data Exports (CUR 2.0) and Cost Explorer can use different aggregation timing, cost views, rounding, and line-item treatment, the values may not match exactly.

In addition, Data Exports data is subject to reporting latency because AWS requires time to aggregate, process, and publish detailed cost data across services. As a result, Data Exports-based data in Cloudaware may not reflect the most recent charges immediately.

For more details, refer to AWS documentation.

Relationship to Legacy CUR

  • Legacy AWS Cost & Usage Reports (CUR) remain supported and are documented in AWS CUR.
  • For new deployments:
    • Prefer CUR 2.0 as the primary source of AWS billing data.
    • Use legacy CUR only when you have existing workflows that depend on the older format.

If you migrate from legacy CUR to Data Exports, coordinate the cutover so that:

  • The Data Export contains at least a full billing period of data.
  • Dashboards and reports in Cloudaware are reviewed for continuity during and after the transition.

Security Notes

  • Cloudaware uses a read‑only cross‑account role and never writes to your S3 buckets.

  • Restrict the role to the minimal required permissions on the Data Exports bucket and prefix.

  • Use separate buckets or prefixes for billing data if you require tighter access control.

  • If your S3 bucket uses KMS encryption, Cloudaware needs permission to decrypt the billing files. Because Cloudaware uses a cross-account IAM role, you must use a Customer Managed Key (CMK); the default AWS managed key (aws/s3) does not support cross-account sharing.

    Update your configuration with the following:

    • KMS Key Policy: Explicitly allow the Cloudaware IAM role ARN to perform kms:Decrypt. (You can also include kms:DescribeKey as an auditing best practice, though it is not strictly required).
    • Cloudaware IAM Role: Add the kms:Decrypt permission to the Cloudaware cross-account role deployed via CloudFormation, scoped to your CMK's ARN.