Connect Billing Data Per Provider
Who this is for
Users setting up the FinOps module for the first time, or anyone whose FinOps dashboard shows "No billing data" for a specific cloud provider.
What you will complete
Enable billing data access for each connected cloud provider so that cost data flows into the FinOps dashboard.
Before you begin
- Cloud accounts must be connected first. See KB-01 for provider-specific connection guides.
- Owner or Admin role required.
- Each provider requires additional billing permissions on top of the basic provisioning permissions.
AWS billing setup
AWS billing data requires access to AWS Cost Explorer or Cost and Usage Reports (CUR).
- Log in to your AWS console.
- Go to IAM → Roles and find the role you created for CloudAIPilot.
- Attach the AWSCostExplorerReadOnlyAccess managed policy (or add
ce:GetCostAndUsageandce:GetDimensionValuesto a custom policy). - In the AWS console, go to Cost Management → Cost Explorer and ensure Cost Explorer is activated for your account (first activation takes 24 hours).
- Return to CloudAIPilot → FinOps and click Refresh.
- Wait 24–48 hours for Cost Explorer data to be available.
Alternatively — CUR (Cost and Usage Reports): For more granular data, configure a CUR export to an S3 bucket and grant CloudAIPilot access to that bucket. Contact support for CUR integration setup.
GCP billing setup
GCP billing data requires a BigQuery billing export.
- In the Google Cloud Console, go to Billing → Billing Export.
- Enable BigQuery Export and select or create a BigQuery dataset.
- Note the dataset name — you will need it.
- Grant the CloudAIPilot service account the BigQuery Data Viewer role on the billing dataset.
- Return to CloudAIPilot → the cloud account settings for GCP and enter the BigQuery billing dataset name.
- Click Refresh in FinOps.
- Initial data load takes 24–48 hours.
Azure billing setup
Azure billing data requires Cost Management Reader access.
- In the Azure portal, go to Subscriptions → [your subscription] → Access Control (IAM).
- Click Add → Add Role Assignment.
- Select the role Cost Management Reader.
- Assign it to the service principal (app registration) you created for CloudAIPilot.
- Save.
- Return to CloudAIPilot → FinOps and click Refresh.
- Data appears within 24–48 hours.
DigitalOcean billing setup
DigitalOcean billing data is included automatically with the basic API token used for your cloud account connection, as long as the token has read access to billing.
- In the DigitalOcean console, verify your personal access token has Read scope (which includes billing data).
- Return to CloudAIPilot → FinOps and click Refresh.
- Billing data should appear within 24 hours.
If DigitalOcean data is missing, re-generate a token with billing read access and update it in CloudAIPilot. See KB-01-04.
Verify billing is connected
- Go to FinOps in the left sidebar.
- Look at the cost cards — each provider's spend should appear.
- Look at the By Account section — it should show cost breakdowns per cloud account.
- If a provider shows "No data" after 48 hours: re-check the IAM/permission step for that provider.
What success looks like
- The FinOps dashboard shows cost totals for each connected provider with billing access.
- The trend chart shows daily cost data for the past 7–30 days.
- The By Account breakdown shows costs per cloud account.
Common errors and fixes
"FinOps shows AWS cost as zero or missing after 48 hours" Cause: Cost Explorer may not be activated in the AWS account. Fix: Go to AWS Console → Cost Management → Cost Explorer and confirm Cost Explorer is active. First activation takes 24 hours.
"GCP billing data is missing" Cause: BigQuery billing export may not be configured or the service account lacks access. Fix: Verify the export dataset name in the cloud account settings. Check the service account has BigQuery Data Viewer role on the billing dataset.
"Azure cost data is not appearing" Cause: Cost Management Reader role may not be assigned at the subscription level. Fix: Verify the role assignment is at the Subscription level (not resource group level). CloudAIPilot needs subscription-level access to Cost Management.