Skip to main content

Microsoft Cost Management Exports

Integrate Microsoft Cost Management exports with Cloudaware to ingest Azure cost and usage data for Cost Management dashboards, allocation, and reporting.

How It Works

  • Microsoft Cost Management generates regular cost exports in Azure Storage.
  • Cloudaware uses a registered Microsoft Entra ID (formerly Azure AD) application/service principal to read exported data from Storage accounts.
  • Exports can be configured at:
    • Billing account level for consolidated billing across MCA, MPA, or EA billing accounts.
    • Subscription level for per-subscription billing where needed.

Prerequisites

Before you begin, confirm that you have the following:

  • Microsoft Azure cloud integration is already configured in Cloudaware. If it is not configured, refer to the Azure Setup Guide first.
  • Azure subscription and/or billing account with permissions to:
    • Assign roles in Cost Management + Billing.
    • Configure Cost Management exports.
    • Grant access to Storage accounts.
  • Storage account and container dedicated to Cost Management exports.
  • Name or identifier of the Cloudaware app/service principal used for billing access.
tip

Store Microsoft Cost Management exports in a separate Storage account or container from application data to simplify access control and governance.

Configure a Billing Account Level Export

Use this approach when you want Cloudaware to ingest consolidated billing data for an entire billing account.

  1. Sign in to the Azure portal.
  2. Navigate to Cost Management + BillingBilling scopes and select the billing account.
  3. Open Access control (IAM) for the billing account.
  4. Add a role assignment:
    • Role: Billing account reader for MCA/MPA, or an equivalent EA enrollment reader role.
    • Assign to: the Cloudaware app/service principal.
  5. Navigate to Cost ManagementExports for the billing account.
  6. Create or validate a Cost Management export:
    • Destination: Storage account and container dedicated to billing exports.
    • Schedule: Daily is recommended.
    • Export type: Actual cost and Amortized cost (depending on your FinOps reservation tracking needs).

Configure a Subscription Level Export

Use subscription-level exports when Cloudaware must ingest billing per subscription, or when a higher-level billing account export is not available.

  1. Sign in to the Azure portal.
  2. In Cost Management + Billing, select the target subscription.
  3. Go to Cost ManagementExports.
  4. Create or validate an export:
    • Destination: Storage account and container accessible to Cloudaware.
    • Schedule: Daily is recommended.
    • Export type: Actual cost and Amortized cost (depending on your FinOps reservation tracking needs).
tip

In Microsoft Cost Management, Actual and Amortized costs cannot be combined, they must be configured as two separate exports. FinOps teams typically require both — Actual costs to tie back to invoicing, and Amortized costs to accurately track reservations and savings plan commitments. Ensure you create a distinct export job for each cost type.

Grant Cloudaware Access to Storage

For each Storage account that receives Cost Management exports:

  1. In the Azure portal, open the Storage account.
  2. Navigate to Access control (IAM).
  3. Add a role assignment:
    • Role: Storage Blob Data Reader.
    • Scope: Storage account, or a narrower scope if required by your access model.
    • Assign to: the Cloudaware app/service principal created before, for example, cloudaware-api-access.
  4. Review and save the assignment.
tip

If the app does not appear in the search suggestions, type the app name manually.

Validate or Enable Azure Billing in Cloudaware

  1. In Cloudaware, go to Admin.
  2. Find Azure Billing and click CONFIGURED.
  3. For Billing Account level:
    • Confirm that Cloudaware has discovered the correct billing export for the expected Storage account. The integration status must be green.
    • If necessary, click EDIT, select the preferred export, then click SAVE.
  4. For Subscription level:
    • Confirm that exports for each subscription are discovered.
    • If necessary, enable the desired subscription billing exports.
note

After billing is enabled, Cloudaware begins ingesting Microsoft Cost Management export 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 AdminAzure BillingCONFIGURED and verify that each configured billing source has green status.
  • Verify that Azure costs appear as expected on Cloudaware CMDB objects.
  • In Cost Management dashboards when provided:
    • Filter to Azure if needed, and verify that subscriptions, resource groups, and tags appear as expected.

See also: Azure Billing Verification

Troubleshooting

Costs Do Not Appear Within 24 Hours

If costs do not appear within 24 hours, check the following:

  • In the Azure portal, verify that the Cost Management export is enabled and still targets the expected Storage account and container.
  • In the Storage account, confirm that new export files are being written under the configured container and path.
  • In Cloudaware AdminAzure BillingCONFIGURED, check that the billing source is discovered, enabled, and has green status.
  • If you recently changed the Storage account, container, export scope, or IAM configuration, confirm that the Cloudaware app/service principal has the required roles on the billing scope and Storage account.
note

Data collection and processing time in Cloudaware depends on the volume of billing files.

Costs Do Not Match Microsoft Cost Management

Microsoft Azure cost totals may differ depending on export scope, cost type, timing, credits, adjustments, and the time range used for comparison. Compare Cloudaware and Microsoft Cost Management using the same billing account or subscription scope, date range, and cost type.

See also: Azure Billing Troubleshooting

Legacy EA Billing Export

Azure Enterprise Agreement customers may have historical exports configured through legacy EA APIs and formats.

  • Cloudaware can continue to ingest EA exports where already configured.
  • For new deployments or when modernizing, prefer Cost Management exports described above.

Security Notes

  • Cloudaware only reads billing export data from Azure Storage.
  • Restrict Storage account access to the minimal required roles and scopes.
  • Use dedicated Storage accounts or containers for billing exports if you require tighter access control.