Introduction

This post is for everyone that occasionally touches Azure resources or performs operations on Azure and wants to improve their understanding of governance. This post is simple and dedicated for beginners and shows the most important considerations. ❗️

The definition of Azure Governance is quite broad, but in the end it is about maintaining hygiene and control over your digital infrastructure, hosted in Microsoft Azure. This could include computing resources, data storage, intelligence services, networking or security resources.

Why Azure Governance?

More and more organizations are making use of Azure, next to Microsoft 365 services. They need more flexibility and a wider range of products to fulfill an IT need. Every here and then, an administrator creates a new resource and starts using services. Over time, this can get messy and in the worst scenario get out of control. Cleaning up and bring everything in a good shape means more effort that sticking to proven framework.

🎯 Goals

  • Build sustainable and logic Azure infrastructures
  • Maintain defined concepts and a healthy cloud environment
  • Keep operational costs under control
  • Reduce business risk
  • Ensure security on the cloud platform
ℹ️
Microsoft itself released their Cloud Adoption Framework (CAF) with a rich set of resources for the journey to the cloud. However, this post is a simple and personal writedown of the key Azure Governance topics in operations, with experience from the field.

Tip: Read common antipaterns, you should avoid.


Overview

Check Criticality Implementation / Compliance costs
1 Data location 🚨 Critical 🟢 Low
2 Naming location ✅ Helpful 🟢 Low
3 Structure and hierarchy ✅ Helpful 🟢 Low
4 Permissions & RBAC 🚨 Critical 🟠 Medium
5 Budgets & costs 🚨 Critical 🟢 Low
6 Tags ✅ Helpful 🟠 Medium
7 Policy ❗️ Advanced 🔴 High
8 Blueprints ❗️ Advanced 🔴 High

Tips

1 Data location

First of all, the geographical residency of your data and services should be a key consideration. Choosing a appropriate region, probably the closest to your corporate location or branch office may improve performance, but more importantly, ensures that your data remains within the country's borders, thereby complying with local data sovereignty laws and regulations.

💡
Check out the Azure Speed Test checker to see to which region your network connection is the best.

2 Naming convention

The naming convention is always the first thing I ask my customers. Sometimes they already established one, and sometimes they are completely new with it. Naming convention ensures hygiene and let's you easily identify your own or others resources and immediately reveals crucial attributes of the resource, such as environment (prod/int/dev), Azure region residency or workload type.

💡
I tend to recommend the official Naming convention by Azure CAF.

Here's a list of the Abbreviations commonly used.

3 Structure and hierarchy

Understanding the hierarchy of Azure resources and defining how to organize will benefit you with:

  • Proper resource organization
  • Clear responsibilities of resources
  • No security gaps by permission misconceptions
Diagram that shows the relationship of management hierarchy levels.
Source: Microsoft
💡
I recommend to group workload resources that share: connections, purpose or responsibility and lifecycle into one subscription or resource group.

Management group grouping = owners and stakeholders
Subscription grouping = organize and associate costs
Resource group grouping = containers of related resources

4 Permissions & RBAC

Identity & access management (IAM) is a very crucial part and should be defined very clearly. Each resource can be assigned with specific permissions and roles that should follow the principle of least-privilege to fulfill the required task.

💡
Permissions are usually inherited. I recommend to assign permissions on the subscription and resource group level to staff that is involved in a specific workload. Always go for least privileged roles.

5 Budgets & cost

Maintaining cost control over all resources should be a top priority, if you wish to avoid high, unexpected bills 😉

Every subscription should have configured at least one budget with a smart forecasting of the expected costs. If it actually or predictively reaches the budget, admins should receive a notification about it. Set a subscription budget at Subscription > Cost Management > Budgets

Also make use of the built-in cost analysis tools that is visible for every subscription or resource group.

🗒️
Note that there also resource-specific features to control costs. For example, I always configure the data retention and daily ingest limit on a Log Analytics Workspace resource.

6 Tags

Azure tags are a key-value pair that can be set for each and every resource in Azure. It is basically metadata, to better identify, group and recognize resources. It is not a bad idea to consider these and add pre-defined templates.

7 Policy

❗️ Advanced

Azure Policy is a definition-based system to apply policies and restrictions that are evaluated against Azure resources. Different compliance sets are pre-defined and can be applied. Those hold definitions (json files) that check certain features, services, settings and attributes of resources. The overall compliance state defines how much you comply with your own or external compliance regulations.

💡
Some community inspiration for policies: https://github.com/Azure/Community-Policy

8 Blueprints

❗️ Advanced

Azure Blueprints are defined templates (public custom) to create resources of. Those resources are simply created out of a blueprint and come with pre-configured settings that are defined in the blueprint.

🗒️
Note that some larger organizations tend to use Infrastrucure as a Code (IAC) with Bicep, Terraform or Pulumi.

🔮 Bonus: Entra ID takeover

Someone with a Global Administrator role in Microsoft Entra ID can take over Azure resources. In principle, Entra ID and Azure don't share their RBAC, but Azure is using identities from Entra ID. At Microsoft Entra > Overview > Properties you can define if your Global Administrator roles have access to Azure, which is an important security consideration.

Shoutout to Pratheep Sinnathurai for valuable inputs!


powered by Oceanleaf

Oceanleaf
Technology blog on Microsoft Cloud. Learn about cutting edge tech, explained simply & straightforward in quality focused blog posts.
You’ve successfully subscribed to Oceanleaf
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.