Azure Subscriptions: Billing, Access, and Structure Explained
An Azure subscription is the foundational container for everything you build in Azure. It defines how you are billed, what resources you can create, and who has access to them. Before you write a single line of code or spin up a single virtual machine, you need a subscription.
What a subscription actually does
Every resource you create in Azure — a virtual machine, a storage account, a database — must belong to a subscription. The subscription plays two distinct roles:
- Billing boundary. Azure calculates your costs per subscription and generates one invoice per subscription per billing period. If you want separate invoices for separate teams or business units, separate subscriptions achieve that.
- Access boundary. You can grant users, service principals, and managed identities RBAC roles at the subscription level. A role granted at the subscription level applies to every resource group and resource inside it. This makes the subscription a convenient place to enforce organization-wide access policies.
A subscription is identified by a globally unique subscription ID (a UUID like a1b2c3d4-e5f6-7890-abcd-ef1234567890). You’ll see this ID constantly — in Azure CLI commands, in ARM templates, in error messages, and in Azure portal URLs.
# Show all subscriptions linked to your account
az account list --output table
# Show the currently active subscription
az account show --output table
# Switch to a specific subscription by ID or name
az account set --subscription "a1b2c3d4-e5f6-7890-abcd-ef1234567890"The Azure CLI always operates against whichever subscription is currently “active.” Always confirm which subscription is set before creating resources, especially if you manage multiple subscriptions. Running az account show first is a good habit.
Subscription types
Azure offers several subscription types, each suited to different situations.
Free trial
New Azure accounts get a 30-day free trial with a $200 credit. This is a single subscription tied to your email address. Once the credit is used or 30 days pass (whichever comes first), the subscription converts to pay-as-you-go unless you manually upgrade it. Services that exceed the free tier limits are blocked, not charged, while you’re in trial mode.
Pay-As-You-Go (PAYG)
Pay-As-You-Go is the default subscription type for individuals and small teams. You pay only for what you use, billed monthly to a credit card or bank account. There are no upfront commitments. This is the most flexible option but also the most expensive per-unit for sustained workloads.
Enterprise Agreement (EA)
Large organizations (typically 500+ users or $100,000+ annual Azure spend) sign an Enterprise Agreement with Microsoft. An EA gives you volume discounts, unified invoicing for all your subscriptions, and a dedicated Microsoft account team. EA subscriptions are managed through the EA portal rather than the standard Azure portal billing section.
Microsoft Customer Agreement (MCA)
A newer billing model that replaced the traditional EA process for many customers. It uses a hierarchy of billing accounts, billing profiles, and invoice sections. MCAs are more flexible than traditional EAs for managing multiple subscriptions with different cost centers.
Cloud Solution Provider (CSP)
When you buy Azure through a Microsoft partner (a managed service provider or reseller), you’re using a CSP subscription. Billing goes through the partner, who may offer additional support, bundled services, or custom pricing. The partner manages the subscription on your behalf but you retain control of your resources.
Dev/Test subscriptions
If you have a Visual Studio subscription (formerly MSDN), you get access to Azure Dev/Test pricing — significantly discounted rates for non-production workloads. Windows virtual machines, for example, cost far less on Dev/Test pricing because the Windows license is included in the Visual Studio subscription.
Subscriptions and tenants
A common point of confusion: subscriptions and tenants are related but separate things.
Your Microsoft Entra ID tenant is your organization’s identity directory. It holds user accounts, groups, applications, and policies. The tenant has its own ID (called the tenant ID or directory ID) and is typically associated with your organization’s domain (for example, acme.onmicrosoft.com or your custom domain acme.com).
A subscription is linked to exactly one tenant. When a user logs into the Azure portal and creates a resource, that action is authenticated through the tenant’s Entra ID. RBAC assignments on subscriptions reference users and groups that live in the tenant directory.
The relationship is:
- One tenant can own many subscriptions
- Each subscription belongs to exactly one tenant
- You can transfer a subscription to a different tenant (there are restrictions, and it requires Owner role on the subscription)
For most small organizations, there is one tenant and one or more subscriptions. For large enterprises with subsidiaries or distinct divisions, it’s possible to have multiple tenants, though this significantly increases complexity. See Azure resource hierarchy to understand how subscriptions fit into the broader organization structure.
When to use multiple subscriptions
Many teams start with a single subscription and outgrow it. Here are the most common reasons to add subscriptions:
Billing isolation
If your engineering team and your data science team have separate budgets, separate subscriptions let you see exactly what each team spends without parsing cost center tags. Each subscription gets its own invoice.
Access isolation
You might want to prevent developers from accidentally deploying changes to production. Putting production in a separate subscription means engineers need an explicit RBAC role on that subscription to touch it — no role, no access. This is cleaner than trying to manage it purely through resource group permissions.
Subscription limits
Each subscription has service quotas. For example, a subscription can have a maximum number of virtual CPUs per region. If your workload is large enough to hit these limits, splitting across subscriptions increases your effective capacity. See Azure quotas and limits for details.
Regulatory or compliance requirements
Some industries require strict separation between environments. A healthcare organization might keep PHI (protected health information) workloads in a dedicated subscription with its own compliance controls, separate from non-PHI workloads.
Worked example: how Acme Corp structures subscriptions
Acme Corp is a 200-person software company with a core product, a data analytics team, and a QA team that runs continuous testing. Here is how their subscriptions are structured:
| Subscription name | Purpose | Who has access | Billing owner |
|---|---|---|---|
| acme-production | Production workloads — customer-facing app, database, CDN | Senior engineers (Contributor), all engineers (Reader) | Engineering VP |
| acme-staging | Pre-production testing and integration testing | All engineers (Contributor) | Engineering VP |
| acme-dev | Developer sandboxes — short-lived, experimental resources | All engineers (Contributor), automated cleanup jobs | Engineering VP |
| acme-data | Data pipelines, Azure Synapse, Databricks, ML training jobs | Data team (Contributor), others (no access) | Data team lead |
| acme-qa | Load testing environments, automated test infrastructure | QA team (Contributor) | QA manager |
All five subscriptions are under the same tenant (acme.com), managed from a single Entra ID directory. Microsoft Entra groups map to RBAC roles across subscriptions, so when a new engineer joins, adding them to the “engineers” Entra group automatically grants the right access to all relevant subscriptions.
Management Groups sit above all five subscriptions and enforce company-wide policies: for example, “all resources must have a cost-center tag” or “no public IP addresses in production.” You can read more about this in Azure resource hierarchy.
Budget alerts are set per subscription. Acme Corp sets a monthly budget on each subscription and alerts the billing owner when 80% and 100% of the budget is reached. This prevents any single team from silently accumulating unexpected costs. See how billing works in Azure for how to set this up.
Subscription limits to know about
Subscriptions are not unlimited. Azure enforces default quotas on most resource types. Some important defaults:
- Virtual machine cores per region: 20 per family (e.g. 20 D-series cores in East US)
- Resource groups per subscription: 980
- Resources per resource group: 800 (for most resource types)
- Storage accounts per subscription per region: 250
- Virtual networks per subscription per region: 50
Many of these limits can be increased by submitting a quota increase request in the Azure portal. Navigate to Subscriptions → Usage + quotas to see your current usage and request increases. The process typically takes a few hours for compute quotas and is nearly always approved for legitimate requests.
Some limits are hard maximums that cannot be increased, which is a common reason teams split workloads across multiple subscriptions.
Creating and managing subscriptions
You can create new subscriptions from the Azure portal under Subscriptions → Add, or programmatically via the Azure CLI:
# List available subscription offers for your enrollment
az billing enrollment-account list
# Create a new subscription under an Enterprise Agreement
az account alias create \
--name "acme-new-sandbox" \
--billing-scope "/providers/Microsoft.Billing/billingAccounts/123456/enrollmentAccounts/789"For Pay-As-You-Go accounts, subscription creation is done through the portal. The CLI-based creation shown above applies to EA and MCA billing accounts.
To rename a subscription or change its directory association, go to Subscriptions → [your subscription] → Rename or use the portal’s transfer subscription option. Renaming does not change the subscription ID.
Common subscription mistakes
- Putting everything in one subscription indefinitely. A single subscription works fine at first, but mixing production and development resources in one subscription means a developer’s experiment can consume resources that affect production quotas, and billing is harder to attribute.
- Confusing subscription with tenant. A subscription is a billing and resource container. The tenant (Entra ID directory) is the identity store. When someone says “give me access to your subscription,” they mean RBAC access to resources. When someone says “add me to your tenant,” they mean create a user account in the Entra ID directory. These are different operations.
- Not setting budget alerts on new subscriptions. Azure charges accumulate immediately. A forgotten VM running for a month at the wrong size tier can generate hundreds of dollars in unexpected charges. Set a budget alert as the first action when creating any subscription.
- Deleting a subscription to clean up resources. Deleting a subscription deletes all resources inside it, including data. This is rarely the right approach. Instead, delete the resource groups or individual resources you no longer need, then consider canceling the subscription if it’s truly empty.
Summary
- An Azure subscription is both a billing boundary (one invoice) and an access boundary (RBAC can be scoped here).
- Every Azure resource must belong to a subscription, identified by a unique subscription ID (UUID).
- Subscription types include Free Trial, Pay-As-You-Go, Enterprise Agreement, MCA, and CSP — each suited to different organization sizes and purchasing models.
- A tenant (Entra ID directory) can own many subscriptions; each subscription belongs to exactly one tenant.
- Multiple subscriptions are the standard pattern for separating production, staging, dev, and team-specific environments, with management groups providing policy enforcement above them all.
Frequently asked questions
What is an Azure subscription?
An Azure subscription is the container in which you create Azure resources. It defines a billing boundary (you get one invoice per subscription) and an access boundary (RBAC roles can be scoped to a subscription). Every resource in Azure must belong to exactly one subscription.
Can one company have multiple Azure subscriptions?
Yes, and large organizations almost always do. Common patterns are: one subscription per environment (dev, staging, production), one subscription per team or business unit, or one subscription per project. Multiple subscriptions share the same Azure tenant (Entra ID directory) but each has its own billing and resource quota.
What is the difference between an Azure tenant and a subscription?
A tenant is your Microsoft Entra ID directory — it holds your users, groups, and identity configuration. A subscription is a billing and resource container that is linked to a tenant. One tenant can have many subscriptions, but each subscription belongs to exactly one tenant.