> For the complete documentation index, see [llms.txt](https://docs.cloud-halo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cloud-halo.io/azure-setup/connection-process.md).

# Azure connection process

This page explains the end-to-end process for connecting Azure to Cloud Halo.

## Step 1: Choose the connection method

Choose one of:

* Enterprise Application consent
* Service Principal

Enterprise Application consent is usually simpler. Service Principal setup gives your Azure team more direct control over credential creation and rotation.

## Step 2: Create the Cloud Halo connection

In Cloud Halo:

1. Open Onboarding or Azure connections.
2. Select Connect Azure.
3. Enter a clear connection name.
4. Choose the connection method.

Use a name that your team will recognise later, such as Production, Shared Services, or Customer A tenant.

## Step 3: Complete Azure approval

For Enterprise Application consent:

1. Open the Microsoft consent screen from Cloud Halo.
2. Sign in as an Azure administrator.
3. Approve the requested read-only access.

For Service Principal:

1. Create or select the Service Principal.
2. Copy the tenant ID, client ID, client secret, and subscription ID.
3. Enter those values in Cloud Halo.

## Step 4: Assign the Azure role

Assign Cost Management Reader at the subscription scope you want Cloud Halo to monitor.

If your organisation needs resource metadata, tags, or billing-account visibility, also assign the relevant read-only role, such as Reader or Billing Reader.

## Step 5: Confirm the subscription

In Cloud Halo, paste the Azure subscription ID and verify the connection.

Cloud Halo checks that it can read cost data. If verification succeeds, the connection becomes active.

## Step 6: First sync

After verification, Cloud Halo runs or enables the first cost sync.

The first sync may take a little time depending on Azure API response times and the amount of cost data available.

## Step 7: Review the dashboard

After sync completes, review:

* Current month spend
* Forecast
* Spend by service
* Spend by subscription
* Connection health
* Recommendations
* Budgets and alerts

## Step 8: Review optional setup

After the first sync, consider configuring:

* Budget thresholds
* Service or resource-group cost alerts
* Slack webhook delivery
* Cost allocation dimensions and rules
* Scheduled reports
* Team invitations and roles

## If verification fails

Common causes are:

* The role assignment has not propagated yet
* The role was assigned to the wrong identity
* The subscription ID is incorrect
* The identity has tenant consent but no subscription-level role
* The billing model requires additional read-only billing access
* The Service Principal secret has expired or was copied incorrectly

Wait a few minutes after assigning roles, then try again.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cloud-halo.io/azure-setup/connection-process.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
