Warning: Undefined variable $file in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php on line 14 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-content/plugins/fix-my-feed-rss-repair/rss-feed-fixr.php:14) in /customers/a/e/3/tunecom.be/httpd.www/stg_ba12f/wp-includes/rest-api/class-wp-rest-server.php on line 1637 {"id":186,"date":"2020-01-29T08:20:00","date_gmt":"2020-01-29T08:20:00","guid":{"rendered":"https:\/\/www.tunecom.be\/stg_ba12f\/?p=186"},"modified":"2020-02-18T13:57:19","modified_gmt":"2020-02-18T13:57:19","slug":"virtual-datacenter-concept-2-of-10-governance","status":"publish","type":"post","link":"https:\/\/www.tunecom.be\/stg_ba12f\/?p=186","title":{"rendered":"Virtual Datacenter Concept | 2 of 10 | Governance"},"content":{"rendered":"\n

This blogpost is part of a series of Azure Virtual Datacenter Concept blog posts.<\/p>\n\n\n\n

Today let’s focus on probably the most important pillar of the Azure Governance scaffold: Azure Governance<\/strong>.
We will talk about Azure Policies and auditing, resource tagging, managing subscriptions, locking down resources and role based access controls.<\/p>\n\n\n\n

\"\"<\/figure><\/div>\n\n\n\n

What’s it all about? Policies on Azure? And more!<\/h5>\n\n\n\n

As stated before, this is probably the most important pillar, so what is it exactly?
Azure Governance allows you to define <\/strong>the rules <\/strong>of play to all <\/strong>your subscriptions <\/strong>within your Azure AD tenant<\/strong>. As with typical on-premises scenario’s, you would deploy group policies <\/strong>within your Windows Server Active Directory estate in order to meet your corporate requirements<\/strong> and standards<\/strong>. And most of all to make sure you’re gaining a certain amount of control <\/strong>over your infrastructure<\/strong>.<\/p>\n\n\n\n

So, comparable with group policies you say? Not exactly, with Azure Policies we can do so much more and on different levels.<\/p>\n\n\n\n

Before we start deploying policies, we need some kind of hierarchy to which we can apply our policies. And as with traditional group policies, we needed organizational units to group our resources into logical containers.<\/p>\n\n\n\n

Management Groups<\/h5>\n\n\n\n

A management group is a logical container that can have policies<\/strong>, blueprints <\/strong>and role based access controls<\/strong> applied. Subscriptions can be added to a management group, so they can inherit the settings that are being applied to a management group. Below example provided by Microsoft<\/a>, shows you how you can organize management groups, subscriptions and resource groups per Business Unit, Geo-location and environment type.<\/p>\n\n\n\n

\"\"<\/figure><\/div>\n\n\n\n

When on-boarding your first subscription into your tenant, it will be added to your root management group. <\/p>\n\n\n\n

Best practice <\/strong>is to create a management group attached to the root management group and start from there. As with group policies, you usually start with a new OU and apply policies on that level. You never start with changing the default domain policies.<\/p>\n\n\n\n

The following powershell demonstrates how to create a very simple management group hierarchy.<\/p>\n\n\n\n

Powershell script<\/h5>\n\n\n
\n###########\n#\n# Let us define our variables here\n#\n###########\n\n$ParentGroupname = "Contoso_Management_Group"\n$ITManagementGroupname = "IT_OPS_Management_Group"\n$PRDManagementGroupname = "Production_Environment_Management_Group"\n$DEVManagementGroupname = "Development_Environment_Management_Group"\n\n###########\n#\n# Create the parent management group which is located just below the root management group\n#\n###########\n\n$ParentGroup = New-AzManagementGroup -GroupName $ParentGroupname -DisplayName $ParentGroupname\n$parentobject = Get-AzManagementGroup -GroupName $ParentGroupname\n$ParentID = $ParentGroup.ParentId\n\n###########\n#\n# Create the IT Operations management group as a member of the parent group\n#\n###########\n\n$ITGroup = New-AzManagementGroup -GroupName $ITManagementGroupname -DisplayName $ITManagementGroupname -ParentObject $parentobject\n$ITGroupObject = Get-AzManagementGroup -GroupName $ITManagementGroupname\n\n###########\n#\n# Create the Production and Development management groups as a member of the IT Operations management group\n#\n###########\n\n$PRDGroup = New-AzManagementGroup -GroupName $PRDManagementGroupname -DisplayName $PRDManagementGroupname -ParentObject $ITGroupObject\n$DEVGroup = New-AzManagementGroup -GroupName $DEVManagementGroupname -DisplayName $DEVManagementGroupname -ParentObject $ITGroupObject\n\n\n###########\n#\n# Move our subscriptions to the correct management group\n#\n###########\n\n$PRDsubscription = Get-AzSubscription | where {$_.Name -eq "Azure IT Ops Prd"}\n$DEVsubscription = Get-AzSubscription | where {$_.Name -eq "Azure IT OPS Dev"}\n\n\nNew-AzManagementGroupSubscription -GroupName $PRDGroup.Name -SubscriptionId $PRDsubscription.SubscriptionId\nNew-AzManagementGroupSubscription -GroupName $DEVGroup.Name -SubscriptionId $DEVsubscription.SubscriptionId\n\n###########\n#\n# End of script\n#\n###########\n<\/pre>\n\n\n
Subscriptions<\/h5>\n\n\n\n

In the previous example, we’ve added our production and development subscription to a management group. By adding our subscriptions to a management group, we can start defining our rules of play at 2 levels.<\/p>\n\n\n\n