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.
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
| Assinatura | Uso |
|---|---|
| Gratuita | Crédito de US$ 200 nos primeiros 30 dias + acesso limitado gratuito por 12 meses. |
| Pré-paga | Cobrança mensal (pay-as-you-go). |
| CSP | Contrato 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. |
| Aluno | US$ 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.
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.
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).
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
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.
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?
Mesmo cenário acima. Afirmação: "Storage1 tem as tags Tag1:subscription, Tag2:IT, Tag3:value1 e Tag4:value4 atribuídas." Isso é verdadeiro?
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 é:
- 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).
- Na blade Cost analysis, filtrar a exibição por tag.
- Baixar o relatório de uso (usage report).
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.
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
- 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 RBAC | Entra ID Roles | |
|---|---|---|
| Gerencia | Acesso aos recursos do Azure | Acesso a objetos do Entra ID |
| Escopo | Vários níveis (Management Group → Subscription → Resource Group → recurso) | Nível do Tenant |
| Onde acessar | Portal, Azure CLI, Azure PowerShell, ARM templates, API REST | Portal, 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).
Microsoft.Authorization/roleAssignments/write). Só Owner (que não tem NotActions nenhum) ou o papel User Access Administrator concedem isso.
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?
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 namespaceMicrosoft.Authorization/*.
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
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
Você precisa garantir que Usuário1 possa implantar VMs e gerenciar redes virtuais, usando o menor privilégio possível. Qual papel RBAC atribuir?
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?
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"
| Papel | O que realmente permite |
|---|---|
| DevTest Labs User | Gerencia recursos dentro de um Azure DevTest Lab (VMs de laboratório etc.) — nenhuma relação com Logic Apps ou recursos gerais. |
| Logic App Operator | Lê, habilita e desabilita Logic Apps existentes — não cria nem edita. |
| Logic App Contributor / Contributor | Pode criar e gerenciar Logic Apps. |
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?
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
| Tema | Fato |
|---|---|
| Regiões | +60 regiões, +140 países. São emparelhadas para alta disponibilidade. |
| Subscription | Limite de segurança e faturamento. Só identidade do Entra ID pode criar uma. |
| Resource Group | 1 recurso → 1 RG. RGs não podem ser renomeados nem aninhados. Recursos podem ser movidos. |
| Mover recurso entre RGs/regiões | Nunca muda a região do recurso — só troca qual Azure Policy passa a valer. |
| Management Groups | Escopo acima da subscription. Não suportam locks nem tags. |
| Tags | Par 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 departamento | Tag no recurso (não no RG) → filtrar Cost Analysis por tag → baixar relatório. |
| Locks | Read-only = trava tudo. Delete = só trava exclusão. Herdado pelos filhos. |
| Azure Advisor | Identifica VMs subutilizadas e sugere redimensionar. |
| Contributor (qualquer variante) | Nunca inclui atribuir papéis a outros. Isso é só Owner ou User Access Administrator. |
| Virtual Machine Contributor | Implanta VM, mas não gerencia rede virtual (só lê/anexa a subnet existente). |
| Reader and Data Access | Ver dados (via chaves da storage account) sem gerenciar a conta — menor privilégio para "visualizar dados". |
| Storage Blob Data Contributor | Data-plane, só blob (não cobre file shares). |
| Custom role — notActions | Microsoft.Authorization/* bloqueia gerenciar permissões, mantendo o resto liberado. |
| Custom role — assignableScopes | Nã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
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.