Apply governance (policies, RBAC) and manage access across numerous Azure subscriptions.
→Organize subscriptions into a Management Group hierarchy.
Why: Management groups are a scope above subscriptions. Policies and role assignments applied at a management group level are inherited by all subscriptions within it.
Reference↗
Enforce organizational standards, such as restricting deployments to specific regions or requiring tags on all resources.
→Use Azure Policy.
Why: Policy enforces rules on resource configurations. This is for governance, whereas RBAC controls user permissions (actions).
Distinguish between controlling user actions and controlling resource properties.
→Use Role-Based Access Control (RBAC) to define what actions a user can perform (e.g., "Contributor" can create VMs). Use Azure Policy to define what configurations are allowed (e.g., "VMs can only be of D-series size").
Why: RBAC is about "who can do what". Policy is about "what is allowed". They work together for comprehensive governance.
Protect a critical production resource from accidental deletion, even by administrators.
→Apply a `CanNotDelete` Resource Lock to the resource or its resource group.
Why: Resource locks override RBAC permissions. An Owner cannot delete a locked resource until the lock is explicitly removed. A `ReadOnly` lock prevents any modifications.
Logically organize resources for cost tracking, automation, or ownership identification.
→Apply Tags (key-value pairs) to resources.
Why: Tags are metadata used for filtering and grouping resources across resource groups, enabling powerful cost analysis and management.
A tag applied to a resource group is not showing up on the resources within it.
→Tags are not automatically inherited from resource groups. Each resource must be tagged explicitly.
Why: To enforce tag inheritance, use an Azure Policy with a "Modify" or "DeployIfNotExists" effect to append tags from the parent resource group.
Estimate future Azure costs vs. calculating savings from an on-prem migration.
→Use the Pricing Calculator to estimate the cost of specific Azure services. Use the Total Cost of Ownership (TCO) Calculator to compare on-prem costs vs. Azure costs.
Why: The Pricing Calculator is for greenfield deployments or adding new services. The TCO Calculator is for building a business case for migration.
Track current Azure spending, set spending alerts, and find savings opportunities.
→Use Azure Cost Management. Create Budgets to trigger alerts when spend thresholds are met.
Why: Budgets provide proactive notification of spending, helping to prevent cost overruns. Cost Management analysis helps identify spending anomalies and trends.
Reduce costs for predictable, continuously running workloads like VMs or databases.
→Purchase Azure Reserved Instances or Savings Plans for a 1- or 3-year term.
Why: Reservations offer significant discounts (up to 72%) over pay-as-you-go pricing in exchange for a long-term commitment. Ideal for steady-state workloads.
Deploy Azure infrastructure repeatably, consistently, and under version control.
→Use declarative Infrastructure as Code (IaC) with ARM Templates (JSON) or Bicep.
Why: Bicep is a simpler, more concise domain-specific language (DSL) that transpiles to ARM JSON, providing better authoring experience and readability.
Manage and govern servers running on-premises or in other clouds using Azure tools.
→Onboard the non-Azure servers to Azure Arc.
Why: Azure Arc projects external resources into Azure Resource Manager, allowing you to use Azure Policy, RBAC, and monitoring for hybrid and multi-cloud assets from a single control plane.
Reference↗
Provide a single, cloud-based identity and access management solution for all applications.
→Use Microsoft Entra ID (formerly Azure AD).
Why: Entra ID is the identity control plane, providing Single Sign-On (SSO), Multi-Factor Authentication (MFA), and Conditional Access for cloud and on-prem apps.
Require MFA for users signing in from an untrusted network but not from the corporate office.
→Configure a Microsoft Entra Conditional Access policy.
Why: Conditional Access acts as an "if-then" policy engine. If a user/location/device condition is met, then an access control (like requiring MFA) is enforced.
Allow an Azure resource (like a VM or App Service) to authenticate to another Azure service (like Key Vault) without storing secrets in code.
→Assign a Managed Identity to the resource and grant it RBAC permissions on the target service.
Why: Azure manages the credential lifecycle automatically, eliminating the risk of leaked secrets from configuration files or code.
Securely store and manage application secrets, keys, and certificates.
→Use Azure Key Vault.
Why: Key Vault provides a centralized, hardware-secured, and audited repository for secrets, preventing them from being hard-coded in applications.
Continuously assess the security posture of cloud workloads, get a Secure Score, and receive threat protection.
→Use Microsoft Defender for Cloud.
Why: Defender for Cloud provides Cloud Security Posture Management (CSPM) and Cloud Workload Protection (CWP) across Azure, hybrid, and multi-cloud environments.
Filter network traffic at the subnet/NIC level vs. centrally for the entire VNet.
→Use Network Security Groups (NSGs) for basic Layer 3/4 stateful packet filtering. Use Azure Firewall for a centralized, fully stateful firewall-as-a-service with Layer 7 filtering and threat intelligence.
Why: NSGs are simple and distributed. Azure Firewall provides advanced capabilities and centralized policy management, often used in a hub-spoke topology.
Reduce the attack surface of VMs by keeping management ports (RDP/SSH) closed by default.
→Enable Just-In-Time (JIT) VM access in Microsoft Defender for Cloud.
Why: JIT grants temporary access to management ports on-demand for a limited time, automatically closing them afterward. This is more secure than leaving ports perpetually open.
Monitor the health of Azure infrastructure vs. the performance of application code.
→Use Azure Monitor for platform metrics and logs. Use Application Insights (a feature of Azure Monitor) for Application Performance Management (APM).
Why: Azure Monitor collects infrastructure data (CPU, memory). Application Insights provides deep code-level diagnostics (response times, dependencies, exceptions).
Receive personalized alerts about Azure service outages, planned maintenance, and health advisories.
→Use Azure Service Health.
Why: Service Health is personalized to your subscriptions, regions, and services, unlike the public Azure Status page. It is for Azure platform issues, not your own resource health.
Receive personalized, actionable recommendations to optimize Azure resources.
→Review Azure Advisor recommendations.
Why: Advisor analyzes your configuration and usage telemetry and provides recommendations across five pillars: Reliability, Security, Performance, Cost, and Operational Excellence.
Establish a standardized, governed, and scalable foundation for all Azure workloads in an enterprise.
→Implement an Azure Landing Zone architecture.
Why: Landing Zones provide a prescriptive framework from the Cloud Adoption Framework, including management group structure, networking, identity, and governance policies, to accelerate cloud adoption securely.