Azure Policy para exigir uma Tag e não permitir que o valor dela fique em branco
Olá pessoal! Blz?
Primeiramente, gostaria de deixar claro que esse artigo não é sobre como usar o Azure Policy, para isso eu irei deixar alguns links de referência, mas sim descrever uma solução para ambientes onde precisamos exigir que uma TAG seja criada e NÃO PERMITA que o valor fique em branco.
Sei que existe algumas Policies Definitions para uso de TAG no Azure Policy que requerem o uso de TAG mas o problema é que essas Policies exigem que voce apenas use a TAG mas permite que seja criada com o valor em branco.
Primeiro vamos demonstrar um Assignments de uma Policy existente que não atende o que precisamos e depois um personalizado com o objetivo desse artigo.
Assignments de uma Policy existente que permite não preencher o valor da tag
No portal do Microsoft Azure, pesquise por Azure Policy, depois clique em “Assignments” -> “Assign policy” para que possamos atribuir uma policy:
Pesquisando por TAG no campo de busca voce filtra todas as policies relacionadas a TAG, usaremos nesse exemplo a policy “Require a tag on resource groups” e o escopo será na Assinatura toda.
Irei especificar a TAG CentroCusto que foi a tag especifica que me pediram em um projeto em que trabalhei e após especificar o nome da tag pode clicar em “Salvar”.
Da forma que configuramos ao criar um Resource Group, o Azure não deixara criarmos o Resource Group sem a tag “CentroCusto” mas permitirá criar o recurso sem preencher o valor da tag conforme vimos na imagem abaixo:
Abaixo o Resource Group criado com a tag mas com o valor vazio:
Criando uma Policy personalizada
Para criarmos policies personalizadas devemos ir no menu “Definitions” -> “+ Policy definition” conforme imagem abaixo:
Para criar uma policy definition temos alguns campos obrigatórios como location (Assinatura) nome, qual a categoria e nesse caso usaremos uma categoria já existente “Tags” e abaixo voce deve preencher com o código JSON com a definição do que queremos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"properties": {
"mode": "All",
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "Name of the tag, such as 'CostCenter'"
}
}
},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"anyOf": [
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"exists": false
},
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"equals": ""
}
]
}
]
},
"then": {
"effect": "deny"
}
}
}
}
Após colar o código, clicar no botão “Salvar” e o processo para realizar o Assignments da Policy é como fizemos na primeira parte desse artigo.
Como podem ver na imagem abaixo ao criar um Resource Group onde especificamos a tag “CentroCusto” mas deixamos o valor vazio e o Azure ja da o alerta de falha e com isso nos obriga a preencher o valor da tag para poder criar o Resource Group:
E com o preenchimento do valor o Resource Group é criado:
Concluindo!
Bom pessoal, espero que esse artigo seja util a voces, para mim serviu muito e uso em todos os projetos que trabalho onde o cliente exige o preenchimento de tags especificas.
Antes eu tinha que contar com a boa vontade do usuário preencher o valor da tag 😉
Artigos relacionados
Criar uma atribuição de política para identificar recursos fora de conformidade.
Bom pessoal, espero que tenha gostado e que esse artigo seja útil a vocês!
Compartilhe o artigo com seus amigos clicando nos icones abaixo!!!