What is an Azure Subscription?
An Azure Subscription is a logical unit of Azure services that is linked to an Azure account. It serves two key purposes:
- Billing boundary — All resources in a subscription are billed together. Each subscription generates its own monthly invoice.
- Access control boundary — You can apply policies and access controls at the subscription level that affect all resources within it.
The Azure Hierarchy
Azure has a clear organisational hierarchy. Understanding it is fundamental to managing Azure at any scale:
| Level | What It Is | Example |
|---|---|---|
| Management Group | Container for multiple subscriptions | Root MG → Production MG |
| Subscription | Billing and access control boundary | Contoso Production Subscription |
| Resource Group | Logical container for related resources | rg-webapp-prod |
| Resource | Individual Azure service | myVM, myStorageAccount |
Policies, access controls, and cost tracking can be applied at any level — and they inherit downward. A policy applied to a subscription applies to all Resource Groups and resources within it.
Types of Azure Subscriptions
| Type | Who It's For | Key Features |
|---|---|---|
| Free | New users learning Azure | $200 credits for 30 days, 12 months free services |
| Pay-As-You-Go | Individuals and small businesses | Pay only for usage, no commitment |
| Enterprise Agreement (EA) | Large enterprises (>500 seats) | Volume discounts, committed spend, central billing |
| Cloud Solution Provider (CSP) | Customers buying through Microsoft partners | Partner-managed billing, often discounted |
| Visual Studio / Dev/Test | Developers with Visual Studio subscriptions | Discounted dev/test rates, not for production |
| Student | Verified students | $100 credits, no credit card required |
When to Use Multiple Subscriptions
A single organisation can have many Azure subscriptions. Here are the most common reasons to use multiple:
Environment Separation
Keep development, staging, and production in separate subscriptions. This creates a hard billing and access boundary — a dev mistake cannot accidentally affect production, and you get separate invoices per environment.
Department / Business Unit Billing
Each business unit (Engineering, Marketing, Finance) gets its own subscription so their Azure spend appears as separate invoices. This makes internal chargeback simple.
Subscription Limits
Each subscription has resource limits (quotas). For example, a single subscription can have a maximum of 980 Resource Groups. High-scale organisations hit these limits and need multiple subscriptions.
Regulatory / Compliance Boundaries
Some organisations keep regulated workloads (healthcare data, financial data) in a dedicated subscription with strict policies, completely isolated from regular workloads.
Geographic / Regional Isolation
Multinational organisations may have separate subscriptions per country to manage local compliance requirements and give regional teams autonomy.
Subscription Limits & Quotas
Every Azure subscription has default limits on the number of resources you can create. These are called quotas. Here are key ones to know:
| Resource | Default Limit per Subscription |
|---|---|
| Resource Groups | 980 |
| Virtual Machines (per region) | 25,000 vCPUs |
| Storage Accounts (per region) | 250 |
| Virtual Networks | 1,000 |
| Azure Active Directory tenants | 1 per subscription |
How Billing Works
Every subscription has a billing cycle — typically monthly. At the end of each cycle, Azure generates an invoice for all resource usage within that subscription during that period.
Billing Account Structure
- Billing Account — Created when you sign up for Azure. One per company or individual.
- Billing Profile — Contains payment method and invoice settings. You can have multiple billing profiles.
- Invoice Section — Organises charges within a billing profile by department or project.
- Subscription — Linked to an invoice section. All resource charges roll up here.
az account list --output table
az account show
Managing Subscriptions
You can manage subscriptions from the Azure Portal under Subscriptions (search in the top bar). From there you can:
- View all subscriptions linked to your account
- See spending and budgets per subscription
- Assign access roles at the subscription level
- Apply Azure Policies
- Cancel or transfer a subscription
Best Practices
- Separate prod from non-prod — At minimum, use different subscriptions for production and development/test
- Use Management Groups — Once you have 3+ subscriptions, use Management Groups to apply policies centrally
- Name subscriptions clearly — E.g.,
Contoso-Production,Contoso-Dev-Test,Contoso-Shared-Services - Assign an owner — Every subscription should have a designated owner who is responsible for its costs and governance
- Set budgets — Configure monthly budget alerts on every subscription