Connect Azure
10 minute read
The process is automated: you authorize CloudBolt and select the subscriptions to include, and CloudBolt handles the rest.
Ensure you have completed the steps in Configure Azure tenants.
There are three stages to the onboarding process:
- Authorize: Sign in to your Azure tenant and grant CloudBolt read-only consent
- Configure: Select which subscriptions and billing scope to include
- Provision: CloudBolt creates the required Azure resources and begins importing your cost data
The active part of this process takes approximately 10 minutes, after which time historical data import, if enabled, continues in the background.
Prerequisites
Before you begin, ensure you have:
- Completed the steps in Configure Azure tenants.
- A modern web browser with popups enabled for your CloudBolt Platform instance.
- Admin access to your CloudBolt Platform instance. Refer to Manage roles.
Network requirements
The onboarding process requires the browser to reach:
login.microsoftonline.com: Microsoft Entra ID authenticationmanagement.azure.com: Azure Resource Manager APIgraph.microsoft.com: Microsoft Entra ID Graph API (app registration)
What CloudBolt creates
During onboarding, CloudBolt provisions the following resources using your administrator’s credentials:
| Resource | Purpose | Scope |
|---|---|---|
| App registration + service principal | Long-term read-only access via Workload Identity Federation | Microsoft Entra ID tenant |
| Custom role (“CloudBolt Reader”) | Read-only access to cost, billing, and reservation data | Root management group |
| Resource group | Container for the storage account | Selected subscription |
| Storage account + blob container | Destination for Cost Management export files | Selected subscription |
| Cost Management exports | Daily FOCUS billing, price sheet, and reservation data | Billing account scope |
| RBAC role assignments | Grants the CloudBolt service principal read-only access | Management group, billing, and storage scopes |
CloudBolt does not:
- Modify or delete any of your existing cloud resources
- Access your application data, secrets, or key vaults
- Make changes to your billing configuration or spending
- Retain your administrator’s credentials after onboarding
Step 1: Start the Azure integration
- Log in to the CloudBolt Platform. The address depends on where your organization’s tenant is hosted; see Sign in.
- In the sidebar, go to Settings > Connections.
- Next to Azure, select Add Connection.
- Select your Azure environment:
- Azure Commercial (default)
- Azure Government
- Select Authorize CloudBolt.
- A pop-up window opens for Azure sign-in. Sign in with an account that has the required permissions.
Your browser may block the sign-in pop-up. Allow pop-ups for your CloudBolt Platform URL and try again.
Step 2: Select your Azure tenant
If your Azure account has access to multiple Microsoft Entra ID tenants, you will be asked to select a tenant. Choose the tenant that contains the subscriptions you want CloudBolt to manage.
If your account has access to only one tenant, this step is automatic.
Step 3: Review discovery results
After authorization, CloudBolt discovers your Azure environment:
- Subscriptions: All active Azure subscriptions in the tenant
- Billing accounts: Your Enterprise Agreement (EA), Microsoft Customer Agreement (MCA), or Microsoft Partner Agreement (MPA) billing hierarchy
- Management group: Your organizational structure (used for read-only access scoping)
CloudBolt also verifies that your account has the required access to complete onboarding. If permissions are missing, you will see a warning with instructions for resolution.
Step 4: Select scope
On the scope selection screen:
- Review your subscriptions. All active subscriptions are selected by default. Deselect any you do not want CloudBolt to monitor.
- Confirm billing scope. CloudBolt auto-detects your billing account. If you have multiple billing accounts or profiles, select the one that covers your chosen subscriptions. Each billing account row displays its agreement type (for example, “Microsoft Customer Agreement”) and a status badge; the resolved billing account type follows the account you select.
- Select Continue.
You can add or remove subscriptions later from the connection management page.
Connect to indirect CSP subscriptions (if available)
Where subscriptions were discovered, a Connect to indirect CSP subscriptions link button may be available. This option is enabled per tenant, so you may not see it. Use it for indirect CSP scenarios where no billing account is accessible. CloudBolt onboards per-subscription cost exports instead of one billing account-scope export.
- Select Connect to indirect CSP subscriptions. A dialog titled Select subscriptions to onboard opens, with a search box and a checklist of discovered subscriptions.
- Check the subscriptions you want to onboard and confirm.
After confirming, the page shows a Subscription scope summary (“Scoped to <n> subscription(s)”) with Change and Use a billing account instead links.
Step 5: Configure provisioning
On the provisioning configuration screen:
- Provisioning subscription: Select which subscription will host the storage account for cost export data. This should be a subscription that gives you Contributor access.
- Azure region: Choose the region for the storage account (default: East US). For best performance, select a region close to your primary operations.
- Resource prefix: The naming prefix for resources CloudBolt creates (default:
cloudbolt). Change this if you have naming conventions to follow. - Include historical data (recommended): When enabled, CloudBolt imports 12 months of historical cost data so your dashboards and reports have full context from day one.
CloudBolt-hosted storage (MPA only)
When the selected billing account is an MPA, a Use CloudBolt-hosted storage (cross-tenant SAS) switch appears. When enabled, CloudBolt creates the cost exports at the Azure billing scope and delivers them to CloudBolt-hosted storage via a container-scoped SAS token, so no storage account or subscription is needed in your tenant. In this mode, the provisioning subscription, region, and resource prefix fields are hidden.
Advanced: management group scope
A collapsible Advanced: management group scope section controls where CloudBolt’s read role is assigned:
- Tenant root management group (default): Assigns the role at the root, covering all subscriptions in the tenant.
- Specific management group: Choose a management group from the dropdown to limit the role assignment to that group.
- Provisioning subscription only: Limits inventory and security data to the provisioning subscription. Cost data is unaffected.
Options your service principal cannot serve are disabled with an explanatory tooltip. If your Azure admin will not grant role-assignment write at the root, pick a narrower scope.
Step 6: Start provisioning
Select Start Provisioning. CloudBolt begins setting up your Azure environment.
A progress tracker shows each step in real time:
| Step | What happens | Duration |
|---|---|---|
| Create resource group | Creates a resource group in your provisioning subscription | ~30 seconds |
| Create storage account | Creates a storage account with secure defaults | 1-2 minutes |
| Create blob container | Creates the container for cost export files | ~15 seconds |
| Create cost exports | Sets up 5 daily Cost Management exports (FOCUS billing, price sheet, reservations) | 1-2 minutes |
| Create custom role | Creates the “CloudBolt Reader” role with read-only permissions | ~30 seconds |
| Assign access | Grants the CloudBolt service principal read-only access to your billing and subscription data | 1-2 minutes |
| Validate connection | Verifies end-to-end data access works correctly | ~30 seconds |
| Import historical data (optional) | Downloads up to 12 months of historical cost data (if enabled) | 15-60 minutes |
You can leave the page after the “Assign access” step completes. The historical data import continues in the background.
If a provisioning step fails
Non-critical steps, such as individual cost exports, may show as “skipped” without blocking the overall process. CloudBolt can function with partial data for those export types.
For critical failures:
- Review the error message shown next to the failed step.
- Select Retry to re-attempt the failed steps. Steps that have already succeeded are preserved.
- If the issue persists, check the Troubleshooting section.
Step 7: Lighthouse delegation (MPA only)
This step is informational. If your billing account is an MPA, the wizard shows an informational card after provisioning completes, explaining that Azure Lighthouse delegations (cross-tenant read access to customer subscriptions for inventory data) are configured from the connection management page after onboarding completes.
Step 8: Verify your connection
After provisioning completes, CloudBolt redirects you to the connection management page. Verify:
- Status shows “Configured”
- Subscriptions list those selected
- Last validation shows a recent successful check
Your cost data begins appearing in CloudBolt dashboards within 24 hours as Azure Cost Management generates its first daily export. Historical data (if enabled) appears as the background import completes.
Manage your connection
After onboarding, you can manage your Azure connection from Settings > Connections:
Update subscriptions
To add or remove subscriptions from a connection:
- Open the connection.
- Edit the subscription selection.
- Save your changes.
CloudBolt updates the access scope without re-running the full provisioning process.
Re-validate
Select Validate to run a health check that verifies CloudBolt can access your Azure data. This checks authentication, subscription access, cost data, and billing connectivity.
SAS token rotation
For connections that use CloudBolt-hosted storage, the connection management page shows a SAS Token card with its Expires date and a Rotate SAS button. Rotation prompts a fresh Azure sign-in and mints a new token. Warnings appear when the token nears or passes expiry.
Rotating the SAS token requires the same Azure permissions as onboarding.
Disconnect
To remove CloudBolt’s access to your Azure tenant:
- Open the connection and select Disconnect.
Result: CloudBolt removes its configuration record.
Disconnecting does not delete the Azure resources (resource group, storage account, app registration) created during onboarding. Delete these resources manually from the Azure Portal after disconnecting.
Troubleshooting
“Could not create resource group” or “Could not create storage account”
Cause: The onboarding user does not have Contributor access on the selected provisioning subscription.
Fix: Assign the Contributor role to the onboarding user on the subscription, then select Retry.
“Could not create custom role”
Cause: The onboarding user does not have permission to create role definitions at the management group or subscription scope.
Fix: Ensure the user has the User Access Administrator or Owner role at the root management group. If management group access is not available, CloudBolt will attempt per-subscription role assignment as a fallback.
“Could not assign roles” (partial)
Cause: Role assignment at the root management group was denied (403).
Impact: CloudBolt falls back to assigning roles to each individual subscription. This works, but it means newly added subscriptions will need manual onboarding.
Fix: To enable auto-discovery of future subscriptions, grant User Access Administrator permissions at the root management group, then retry.
Cost data not appearing after 24 hours
- Check export status in Azure Portal > Cost Management > Exports. Verify the exports CloudBolt created are active and have a recent “Last run” timestamp.
- Check storage account: Verify files are being written to the blob container.
- Re-validate the connection in CloudBolt to check for access issues.
Pop-up blocked during authorization
Allow pop-ups for your CloudBolt Platform URL in your browser settings. The authorization flow requires a pop-up window for Azure sign-in.
“Billing scope not found”
Cause: The onboarding user lacks read access to the billing account.
Fix: Assign Billing Account Reader (MCA/MPA) or Enrollment Reader (EA) to the onboarding user and restart the onboarding flow.
What CloudBolt accesses
After onboarding, CloudBolt has read-only access to:
| Data | Purpose |
|---|---|
| Cost and billing data (FOCUS format) | Cost analysis, dashboards, anomaly detection |
| Price sheets | Accurate cost calculations and re-rating |
| Reserved Instance and Savings Plan data | Commitment utilization, coverage, and recommendations |
| Subscription and resource metadata | Inventory and resource organization |
| Management group hierarchy | Organizational context for cost allocation |
CloudBolt cannot modify your Azure resources, access application data, or change your billing configuration.
Frequently asked questions
Q: How long does onboarding take?
The interactive portion takes about 10 minutes. Historical data import (if enabled) runs in the background for 15-60 minutes, depending on data volume.
Q: Can I onboard multiple Azure tenants?
Yes. Repeat the onboarding process for each Azure tenant. Each tenant gets its own connection in CloudBolt.
Q: What happens if I add new subscriptions to my Azure tenant?
If CloudBolt has management group-level access, new subscriptions are discovered automatically. If access is per-subscription, you will need to update the connection to include the new subscription.
Q: Can I change the storage account location after onboarding?
The storage account region is set during provisioning and cannot be changed afterward. To use a different region, disconnect and re-onboard.
Q: Does CloudBolt store my Azure credentials?
No. CloudBolt uses Workload Identity Federation (WIF) for ongoing access, which uses short-lived tokens exchanged through a trust relationship, so no passwords or secrets are stored. The onboarding user’s credentials are used only during the setup process and are not retained.
Q: What Azure resources are created, and who pays for them?
CloudBolt creates a resource group, storage account, and blob container in your Azure subscription. The storage costs are minimal (typically under $5/month for most organizations) since Azure Cost Management exports are small compressed files. These resources are in your subscription and appear on your Azure bill.