1.4.2. š” First Principle: Subscriptions
š” First Principle: An Azure Subscription's fundamental purpose is to serve as a primary boundary for billing, policy, and security, enabling clear separation of concerns and governance across an organization.
Scenario: Your enterprise uses Azure DevOps to manage CI/CD pipelines. Different development teams need separate Azure environments for their projects. You want to isolate costs and enforce different security policies (e.g., more permissive for dev, stricter for prod) for each team's environment.
What It Is: An Azure Subscription is a logical container for your Azure services and a billing unit. All Azure resources must belong to a subscription.
Key Concepts:
- Billing Boundary: Usage and costs are aggregated at the subscription level, making it a key unit for cost management and chargeback within a DevOps team or organization.
- Security Scope: Role-Based Access Control (RBAC) permissions can be applied at the subscription level, and these permissions are inherited by all Resource Groups and resources within that subscription.
- Resource Deployment Boundary: All Azure resources must be deployed within a subscription.
- Linked to Azure AD: Each subscription is linked to a single Azure Active Directory (Azure AD) tenant, which manages user identities and access.
ā ļø Common Pitfall: Using a single subscription for all environments (Dev, Test, Prod) in a large organization. This makes cost allocation, security isolation, and policy enforcement extremely difficult.
Key Trade-Offs:
- Isolation vs. Management Overhead: Multiple subscriptions provide strong isolation but can increase the complexity of managing cross-subscription resources and policies. Tools like Azure Management Groups help mitigate this.
Practical Implementation: Conceptual Logic
Enterprise Agreement
āāā Management Group: Production
āāā Subscription: App-A-Prod
āāā Resource Group: App-A-Prod-RG
āāā Management Group: Development
āāā Subscription: App-A-Dev
āāā Resource Group: App-A-Dev-RG
āāā Subscription: App-B-Dev
āāā Resource Group: App-B-Dev-RG
Reflection Question: How does using multiple Azure Subscriptions for different teams or environments fundamentally simplify cost management, enhance security isolation, and enable granular policy enforcement in a large DevOps organization?
š” Tip: For enterprise cloud adoption, plan your subscription strategy early in your DevOps architectural design. It provides a natural boundary for billing, compliance, and access control.