AZ-104 — Módulo 02 Governança e Conformidade
100%

AZ-104 — Módulo 02: Governança e Conformidade

Toque nos termos destacados para ver a definição rápida. Se ainda não leu, o método de estudo (as 3 camadas: apostila, estudos de caso, Anki) está explicado só uma vez, no topo do Módulo 01.

1. Regiões e Assinaturas do Azure

1.1 Regiões

  • Uma região representa uma coleção de datacenters.
  • Fornece flexibilidade e escala; ajuda a preservar a residência de dados (manter os dados dentro de um país/área específica).
  • Selecione regiões próximas dos seus usuários — mas nem todo serviço está disponível em toda região (verificar disponibilidade de implantação).
  • Há serviços globais que são independentes de região (ex.: Entra ID).
  • Regiões são emparelhadas (region pairs) para alta disponibilidade — replicação entre um par protege contra falha regional.
Mais de 60 regiões, cobrindo mais de 140 países.

1.2 O que é uma Subscription

  • Só identidades no Entra ID (ou em diretório confiável pelo Entra ID) podem criar uma subscription.
  • É a unidade lógica de serviços do Azure vinculada a uma conta do Azure.
  • É um limite de segurança e de faturamento.

1.3 Tipos de assinatura e uso

AssinaturaUso
GratuitaCrédito de US$ 200 nos primeiros 30 dias + acesso limitado gratuito por 12 meses.
Pré-pagaCobrança mensal (pay-as-you-go).
CSPContrato via Provedor Parceiro Microsoft Cloud Solutions, com possíveis descontos — voltado a pequenas/médias empresas.
Empresa (EA)Contrato com descontos para novas licenças e Software Assurance — organizações de escala empresarial.
AlunoUS$ 100 por 12 meses, exige verificação de acesso de aluno.

Como obter uma assinatura: clientes de Contrato Enterprise assumem compromisso monetário inicial; revendedores vendem de forma simples/flexível; parceiros projetam/implementam a solução; ou conta pessoal gratuita para começar na hora.

Estudo de caso 1

Sua empresa tem vários departamentos, cada um com várias máquinas virtuais (VMs). Existe uma subscription com um único grupo de recursos, RG1, e todas as VMs estão nele. Você quer associar cada VM ao seu respectivo departamento, sem reestruturar onde as VMs estão. O que fazer?

2. Grupos de Recursos (Resource Groups)

2.1 Regras fundamentais

  • Um recurso só pode existir em um único grupo de recursos por vez.
  • Um grupo pode conter recursos de tipos e regiões diferentes.
  • Grupos de recursos não podem ser renomeados nem aninhados.
  • Recursos podem ser movidos entre grupos, entre subscriptions e até entre regiões.
Mover um recurso NÃO muda a região dele Mover um recurso (ex.: um App Service) para um grupo de recursos localizado em outra região não move o recurso para essa região. A região de um recurso é definida na criação e é uma propriedade do próprio recurso — o campo "região" do Resource Group é só metadado de onde a definição do grupo fica armazenada. O que muda ao mover é: o recurso passa a estar sujeito às Azure Policies atribuídas ao grupo de destino (e deixa de estar sujeito às do grupo de origem).
Estudo de caso 2

Subscription1 contém: RG1 (região West Europe, Policy1), RG2 (região North Europe, Policy2), RG3 (região France Central, Policy3). RG1 tem um app web WebApp1, localizado em West Europe. Você move WebApp1 para o RG2. Qual é o efeito da mudança?

3. Cotas e Limites de Serviço

3.1 O que são cotas

  • Recursos têm um limite padrão por subscription — a cota.
  • Útil para acompanhar o uso atual e planejar o uso futuro.
  • É possível abrir um caso de suporte gratuito para aumentar limites até os máximos publicados pela Microsoft.

4. Hierarquia de Recursos do Azure (Management Groups)

4.1 Para que servem os Management Groups

  • Fornecem um nível de escopo acima das subscriptions.
  • Permitem aplicar políticas e orçamentos entre várias subscriptions de uma vez, com herança ao longo da hierarquia.
  • Ajudam a organizar relatórios de conformidade e custos por organização (empresas/equipes).
Tenant Root Group └── MG1 (Management Group) └── Sub1 (Subscription) └── RG1 (Resource Group) └── VM1 (recurso)
O que NÃO existe em Management Groups (nem no Tenant Root Group) Locks e Tags só podem ser aplicados a partir do nível de assinatura, grupo de recursos ou recurso individual — Management Groups (incluindo o Tenant Root Group) não suportam locks nem tags.
Estudo de caso 3

Você tem a hierarquia: Tenant Root Group → MG1 → Sub1 → RG1 → VM1. Você planeja rastrear o uso de recursos e impedir a exclusão de recursos. A quais desses recursos é possível aplicar locks?

5. Tags

5.1 O que são e para que servem

  • Fornecem metadados aos recursos do Azure.
  • Organizam recursos logicamente, sem depender da estrutura de grupos de recursos.
  • Consistem em um par nome-valor (ex.: Departamento: Marketing).
  • Muito úteis para reunir informações de cobrança/custo por critério de negócio (departamento, ambiente, centro de custo).

5.2 Tags não são herdadas automaticamente

Ponto crítico de prova Atribuir uma tag a uma Subscription ou a um Resource Group não faz essa tag aparecer nos recursos filhos dentro deles. Cada recurso só carrega as tags atribuídas diretamente a ele, a menos que exista uma Azure Policy específica de herança de tag.

Uma política do tipo "Append a tag and its value to resources" (modo Indexed) adiciona uma tag a recursos dentro do escopo — mas esse modo não avalia grupos de recursos nem assinaturas, só recursos individuais. Existe uma política diferente ("...to resource groups") para isso.

Estudo de caso 4 · Sim/Não

Sub1 contém RG1 (resource group), storage1 (storage account) e VNET1 (virtual network). Você atribui uma Azure Policy: Escopo Sub1; Exclusão: Sub1/RG1/VNET1 (só o recurso VNET1 é excluído); Definição: "Append a tag and its value to resources"; Tag: Tag4:value4. Manualmente você também atribuiu: Sub1→Tag1:subscription, RG1→Tag2:IT, storage1→Tag3:value1, VNET1→Tag3:value2. Afirmação: "RG1 tem apenas a tag Tag2:IT atribuída." Isso é verdadeiro?

Estudo de caso 4b · Sim/Não (mesmo cenário)

Mesmo cenário acima. Afirmação: "Storage1 tem as tags Tag1:subscription, Tag2:IT, Tag3:value1 e Tag4:value4 atribuídas." Isso é verdadeiro?

Estudo de caso 4c · Sim/Não (mesmo cenário)

Mesmo cenário acima. Afirmação: "VNET1 tem apenas as tags Tag2:IT e Tag3:value2 atribuídas." Isso é verdadeiro?

5.3 Tags + Cost Analysis: rastrear custo por departamento

Quando um departamento usa recursos espalhados por vários grupos de recursos, a forma correta de isolar o custo por departamento é:

  1. Atribuir uma tag a cada recurso (não ao grupo de recursos — já que os recursos de um departamento podem estar espalhados por vários RGs, a tag precisa estar no recurso individual).
  2. Na blade Cost analysis, filtrar a exibição por tag.
  3. Baixar o relatório de uso (usage report).
Estudo de caso 5

Uma assinatura é usada por 4 departamentos, contém 10 grupos de recursos, e cada departamento usa recursos espalhados por vários grupos de recursos. Você precisa enviar ao financeiro um relatório detalhando o custo de cada departamento. Qual é a primeira ação da sequência correta?

6. Locks (bloqueios de recursos)

6.1 Regras dos locks

  • Associe o lock a uma assinatura, grupo de recursos ou recurso (nunca a um Management Group).
  • Locks são herdados pelos recursos filhos.
  • Read-only impede qualquer alteração no recurso (nem escrita, nem exclusão).
  • Delete impede apenas a exclusão — alterações continuam permitidas.

7. Gerenciar Custos

7.1 Fatores de custo e otimização

  • Custos são específicos por recurso e podem variar entre regiões/locais.
  • Custos de transferência de dados de entrada e saída diferem entre si.
  • Instâncias reservadas do Azure — pré-pagar para reduzir custo de longo prazo.
  • Benefício Híbrido do Azure — reutilizar licenças on-premises já pagas.
  • Azure Advisor — recomendações de custo, incluindo identificar VMs subutilizadas que poderiam usar um SKU/tier mais barato.
Estudo de caso 6

Você tem 100 VMs no Azure e precisa identificar rapidamente quais estão subutilizadas e poderiam ter o nível de serviço trocado por uma opção mais barata. Qual lâmina você deve usar?

8. Azure Policy

8.1 O que é e para que serve

  • Serviço para criar, atribuir e gerenciar políticas.
  • Executa avaliações/varreduras para identificar recursos fora de conformidade.
  • Vantagens: imposição e conformidade, aplicar políticas em escala, remediação.

Casos de uso comuns: restringir tipos de recurso permitidos, restringir SKUs de VM permitidas, restringir locais/regiões permitidos, exigir uma tag e seu valor, auditar se o Backup do Azure está habilitado em todas as VMs.

8.2 Fluxo: definir → atribuir → avaliar

Definição(s) de política -> Iniciativa de política | v Escopo e atribuição (Management Group / Subscription / Resource Group) | v Avaliar a conformidade
  • Uma iniciativa agrupa várias definições de política.
  • Uma política pode ser atribuída em qualquer nível da hierarquia (Management Group, Subscription, Resource Group) e vale para tudo abaixo desse escopo — com exclusões pontuais possíveis (ex.: excluir só um recurso específico).
  • O modo Indexed de uma política só avalia recursos que suportam tag+location — não avalia Resource Groups nem Subscriptions mesmo que eles suportem tags.

9. RBAC (Controle de Acesso Baseado em Função)

9.1 Azure RBAC × Entra ID Roles

Azure RBACEntra ID Roles
GerenciaAcesso aos recursos do AzureAcesso a objetos do Entra ID
EscopoVários níveis (Management Group → Subscription → Resource Group → recurso)Nível do Tenant
Onde acessarPortal, Azure CLI, Azure PowerShell, ARM templates, API RESTPortal, Microsoft 365 admin center, Microsoft Graph, Azure AD PowerShell

RBAC oferece gerenciamento de acesso mais refinado/granular. Existem roles internas (built-in) e é possível criar roles personalizadas (custom).

9.2 Definição de função (Role Definition)

Uma role é uma coleção de permissões (Actions) que lista o que pode ser feito, e opcionalmente NotActions (o que é explicitamente removido de dentro de Actions).

"Actions": ["*"],
"NotActions": [
  "Microsoft.Authorization/*/Delete",
  "Microsoft.Authorization/*/Write",
  "Microsoft.Authorization/elevateAccess/Action"
],
"AssignableScopes": ["/"]

Esse é exatamente o papel Contributor: pode fazer qualquer coisa ("*"), exceto mexer em autorização/permissões (namespace Microsoft.Authorization).

O erro mais comum de prova sobre RBAC Contributor (em qualquer variante — Network Contributor, Storage Account Contributor, Virtual Machine Contributor, etc.) nunca inclui a permissão de atribuir papéis a outros usuários (Microsoft.Authorization/roleAssignments/write). Só Owner (que não tem NotActions nenhum) ou o papel User Access Administrator concedem isso.
Estudo de caso 7

Subscription1 contém RG1, que contém VNet1. Usuário1 tem os papéis Leitor, Segurança Administrador e Leitor de Segurança. Você precisa garantir que Usuário1 possa atribuir o papel Leitor para VNet1 a outros usuários. O que fazer?

Estudo de caso 7b

Mesmo tipo de cenário: Usuário1 tem Leitor, Segurança Administrador e Leitor de Segurança em Subscription1/VNet1. Você precisa garantir que Usuário1 possa atribuir o papel Leitor para VNet1 a outros usuários — mas dessa vez a opção "Administrador de Acesso do Usuário" não está disponível. O que fazer?

9.3 Custom RBAC role — assignableScopes e notActions

Ao criar uma role personalizada, dois campos importantes:

  • assignableScopes — define onde a role PODE ser atribuída (nela mesma ou em escopos abaixo). Não existe sintaxe genérica para "qualquer grupo de recursos" — seria preciso listar cada RG, então o escopo mais próximo do pedido "só pode ser atribuída a grupos de recursos" costuma ser o da assinatura (que permite atribuição nela e em tudo abaixo).
  • notActions — remove permissões específicas do que está em actions. Para bloquear gerenciamento de permissões de acesso, usa-se o namespace Microsoft.Authorization/*.
Estudo de caso 8

Subscription1 (ID c276fc76-...436e). Você precisa criar uma role personalizada CR1 que: (1) só pode ser atribuída a grupos de recursos na Subscription1; (2) impede o gerenciamento de permissões de acesso dos grupos de recursos; (3) permite visualizar, criar, modificar e excluir recursos dentro deles. O que especificar em notActions?

9.4 Papéis internos aplicados — management-plane × data-plane

Management-plane × Data-plane Papéis de management-plane (ex.: Reader, Contributor) controlam a existência/configuração do recurso. Papéis de data-plane (ex.: Storage Blob Data Contributor) controlam o acesso aos dados dentro do recurso. Ter um não implica ter o outro.
Estudo de caso 9 · múltipla seleção

Storage account storageacct1234. Usuário1 tem: Reader (herdado do Resource Group) + Storage Blob Data Contributor (atribuído diretamente na conta). Quais duas ações Usuário1 pode realizar?

Selecione 2 opções.

9.5 Menor privilégio: escolhendo entre papéis parecidos

Virtual Machine Contributor NÃO gerencia rede A documentação oficial descreve: Virtual Machine Contributor concede acesso total a gerenciar VMs, mas não permite gerenciar a rede virtual nem a conta de armazenamento conectadas a ela (só tem leitura na VNet + permissão de anexar a uma subnet já existente). Se o requisito pede "implantar VMs e gerenciar redes virtuais", esse papel sozinho não basta.
Estudo de caso 10

Você precisa garantir que Usuário1 possa implantar VMs e gerenciar redes virtuais, usando o menor privilégio possível. Qual papel RBAC atribuir?

Estudo de caso 11

Sub1 tem dois usuários: Usuário1 deve visualizar dados em qualquer conta de armazenamento. Usuário2 deve atribuir aos usuários o papel Contribuidor para contas de armazenamento. A solução deve usar o menor privilégio. Papéis disponíveis: Owner, Contributor, Reader and Data Access, Storage Account Contributor. Qual papel para o Usuário1?

Estudo de caso 11b (mesmo cenário)

Mesmo cenário do estudo de caso 11. Qual papel para o Usuário2, que precisa atribuir o papel Contribuidor a outros usuários para contas de armazenamento?

9.6 Papéis internos específicos — não confundir "operar" com "criar"

PapelO que realmente permite
DevTest Labs UserGerencia recursos dentro de um Azure DevTest Lab (VMs de laboratório etc.) — nenhuma relação com Logic Apps ou recursos gerais.
Logic App OperatorLê, habilita e desabilita Logic Apps existentes — não cria nem edita.
Logic App Contributor / ContributorPode criar e gerenciar Logic Apps.
Estudo de caso 12 · Sim/Não

Tenant Adatum + Subscription1, que contém o RG "Dev". O grupo "Desenvolvedores" precisa da capacidade de criar aplicativos Azure Logic no RG Dev. Solução: no Subscription1, atribuir o papel Operador de Aplicativo Lógico (Logic App Operator) ao grupo Desenvolvedores. Isso atinge o objetivo?

Estudo de caso 12b · Sim/Não (mesmo cenário)

Mesmo cenário. Solução: no RG Dev, atribuir o papel Contribuidor (Contributor) ao grupo Desenvolvedores. Isso atinge o objetivo?

10. Resumo de decorar

Cheat sheet — os fatos que mais caem

TemaFato
Regiões+60 regiões, +140 países. São emparelhadas para alta disponibilidade.
SubscriptionLimite de segurança e faturamento. Só identidade do Entra ID pode criar uma.
Resource Group1 recurso → 1 RG. RGs não podem ser renomeados nem aninhados. Recursos podem ser movidos.
Mover recurso entre RGs/regiõesNunca muda a região do recurso — só troca qual Azure Policy passa a valer.
Management GroupsEscopo acima da subscription. Não suportam locks nem tags.
TagsPar nome-valor. Não são herdadas entre Sub → RG → recurso.
Policy "Append tag to resources"Modo Indexed — não atinge Resource Groups nem Subscriptions, só recursos.
Rastrear custo por departamentoTag no recurso (não no RG) → filtrar Cost Analysis por tag → baixar relatório.
LocksRead-only = trava tudo. Delete = só trava exclusão. Herdado pelos filhos.
Azure AdvisorIdentifica VMs subutilizadas e sugere redimensionar.
Contributor (qualquer variante)Nunca inclui atribuir papéis a outros. Isso é só Owner ou User Access Administrator.
Virtual Machine ContributorImplanta VM, mas não gerencia rede virtual (só lê/anexa a subnet existente).
Reader and Data AccessVer dados (via chaves da storage account) sem gerenciar a conta — menor privilégio para "visualizar dados".
Storage Blob Data ContributorData-plane, só blob (não cobre file shares).
Custom role — notActionsMicrosoft.Authorization/* bloqueia gerenciar permissões, mantendo o resto liberado.
Custom role — assignableScopesNão existe sintaxe genérica para "qualquer RG" — não confundir com listar um RG específico.

11. Questões que já errei

Revisar sempre antes da prova

1 · "Atribuir papel Leitor de VNet1 a outros usuários" — qual papel dar ao usuário Resposta: Administrador de Acesso do Usuário (ou Owner, se essa opção não existir). Nunca uma variante de Contribuidor — Contributor não inclui permissão de atribuir papéis a ninguém.
2 · Mover WebApp1 de RG1 (West Europe) para RG2 (North Europe) O App Service permanece em West Europe. Mover entre grupos de recursos nunca muda a região do recurso — só troca a Policy que se aplica (passa a valer a do RG de destino).
3 · Custom RBAC role CR1 — assignableScopes e notActions assignableScopes: escopo da assinatura (não existe sintaxe genérica de "qualquer resource group"). notActions: Microsoft.Authorization/* para bloquear gerenciamento de permissões, sem bloquear a criação/edição de recursos.
4 · "Implantar VMs e gerenciar redes virtuais" com menor privilégio Resposta: Colaborador (Contributor). Virtual Machine Contributor não gerencia rede virtual — a documentação da Microsoft afirma isso explicitamente.
5 · "RG1 tem apenas a tag Tag2:IT atribuída" (com Policy "Append tag to resources") Verdadeiro (Sim). Essa política, em modo Indexed, não atinge grupos de recursos — só recursos individuais. RG1 fica só com a tag atribuída manualmente a ele.
6 · "Usuário2 deve atribuir aos usuários o papel Contribuidor para contas de armazenamento" — menor privilégio Resposta: Owner. Nem Contributor nem Storage Account Contributor concedem a permissão de atribuir papéis a outros usuários.

12. Glossário

Termos técnicos e siglas