Tags within Azure are a little more complicated than they might first appear when getting started. One of these complexities, or just general misconceptions is that by tagging a subscription you are also tagging all resources within it. However, this is not the case; when you tag a subscription you are only tagging that subscription, nothing more.
From a CloudCtrl perspective that's important because it means that when usage comes through from Azure, resources aren't tagged with their subscription's tags, which can be confusing for some users expecting more $$s under a tag.
Even though this isn't the default behavior, you can configure Azure through the use of Azure policies to ensure that all resources are tagged with any set of given tags if they belong in a specific subscription.
Step 1: Configure a new Azure tagging policy
First follow this link https://portal.azure.com/#...s%2Fb27a0cbd-a167-4dfa-ae64-4337be671140 to configure a new tagging policy. If you are familiar with the Azure policy syntax, I encourage you to read through it.
Once you are comfortable with the configuration (there should be no changes required), click on the Assign button, which will begin the process of creating this policy.
Step 2: Select the subscription you want this policy to apply to
Next, select the subscription you want this policy to apply to. Because this policy only applies to one subscription, you will need to repeat it for each subscription you want to configure.
Step 3: Select the tag name/key you want to copy down to all resources within the subscription
Specify the tag name you wish to have copied from the subscription you chose earlier. In the following screenshot this configuration would result in tags with the name App being copied down to all resources. For example, if the app name was "My Test App", all resources within the selected subscription above would be tagged with App:My Test App.
Step 4: Create a remediation task
Make sure to tick the Create a remediation task during this initial configuration. This will cause all resources that already exist within a subscription to be tagged appropriately.
Step 5: Finalize creating the policy and remediation task
Finally create the policy and remediation task. Your configuration should look similar, with a different Assigned By and whichever Default non-compliance message you'd prefer (it's optional, empty is fine).
Step 6: Finished!
You should now have a policy that is enforcing your new tagging strategy, as well as a remediation task that should be tagging your existing resources as you read this. To confirm, go to the top search bar and enter: Policy.
Within this section, you should see a new policy within the compliance menu, and a new remediation task within the remediation menu. This can take a little while to process, depending on your environmental complexity so go grab a coffee and come back later to check it.
There are a lot of great pre-built tag policies from Microsoft here: https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/tag-policies