🟠 Intermédio 🕐 ~60 min Módulo 6 de 7

Segurança
e Identidade

A segurança é a responsabilidade partilhada mais importante na cloud. O Azure oferece um ecossistema completo de identidade, controlo de acesso, gestão de segredos e proteção de workloads. Neste módulo dominamos as ferramentas essenciais.

🔒
Responsabilidade partilhada: A Microsoft é responsável pela segurança da cloud (hardware, datacenters, rede global). Tu és responsável pela segurança na cloud — gestão de identidades, configuração de acessos, dados, aplicações e configuração dos recursos.

1 Microsoft Entra ID

O Microsoft Entra ID (anteriormente Azure Active Directory / Azure AD) é o serviço de gestão de identidade e acesso (IAM) baseado na cloud da Microsoft. É a base de autenticação para o Azure, Microsoft 365 e milhares de aplicações SaaS.

👤

Utilizadores

Contas de utilizador na cloud. Podem ser membros (da organização) ou convidados (B2B — parceiros externos).

👥

Grupos

Agrupa utilizadores para atribuir permissões coletivamente. Tipos: Security (RBAC) e Microsoft 365 (colaboração).

📱

Aplicações

Regista apps para usar o Entra ID como IDP (Identity Provider). SSO para apps próprias e de terceiros.

🏢

Tenant

Instância dedicada do Entra ID para a tua organização. O teu tenant tem um ID único (Tenant ID GUID).

Entra IDAD DS (Active Directory clássico)
Cloud-native, baseado em HTTP/RESTOn-premises, baseado em LDAP/Kerberos
Autenticação via OAuth 2.0, SAML, OIDCAutenticação via Kerberos, NTLM
Sem domínio físico — sem Domain ControllersRequer Domain Controllers dedicados
Flat — sem OUs ou GPOsHierárquico — OUs, GPOs, DNS integrado
SSO para apps cloud e SaaSSSO para apps Windows on-premises
Incluído no Azure — gratuito (tier básico)Requer Windows Server + licenças CAL
Azure CLI — Gestão Entra ID
# Ver informações do tenant activo
az account show --query tenantId --output tsv

# Criar utilizador no Entra ID
az ad user create \
  --display-name "Ana Costa" \
  --user-principal-name ana.costa@<tenant>.onmicrosoft.com \
  --password "AzureUser@2024!" \
  --force-change-password-next-sign-in true

# Listar utilizadores
az ad user list \
  --query "[].{Nome:displayName, UPN:userPrincipalName, Enabled:accountEnabled}" \
  --output table

# Criar grupo de segurança
az ad group create \
  --display-name "GRP-Desenvolvedores" \
  --mail-nickname "grp-devs"

# Adicionar utilizador ao grupo
az ad group member add \
  --group "GRP-Desenvolvedores" \
  --member-id $(az ad user show --id ana.costa@<tenant>.onmicrosoft.com --query id --output tsv)

2 MFA e Acesso Condicional

A Autenticação Multi-Fator (MFA) adiciona uma segunda camada de verificação — uma password comprometida não é suficiente para aceder à conta. O Acesso Condicional aplica políticas baseadas em contexto.

📱

Microsoft Authenticator

App para iOS/Android. Push notification, código TOTP ou início de sessão sem password (passwordless).

💬

SMS / Chamada

Código enviado por SMS ou chamada telefónica. Menos seguro que a app, mas mais acessível.

🔑

FIDO2 / Passkeys

Chave física (YubiKey) ou biométrica (Windows Hello). Mais seguro — sem passwords.

📋

Acesso Condicional

Pede MFA só em certas condições: dispositivo não gerido, localização desconhecida, app de alto risco.

Política de Acesso Condicional típica: "Se o utilizador acede ao portal Azure de um IP fora da rede da empresa e o dispositivo não está enrolled no Intune → exigir MFA." Isto permite experiência fluída internamente e protecção reforçada externamente.

3 RBAC — Controlo de Acesso Baseado em Funções

O RBAC (Role-Based Access Control) é o sistema de autorização do Azure. Define quem pode fazer o quê em que recurso. Segue o princípio do menor privilégio — dá apenas as permissões necessárias.

Componentes de uma atribuição RBAC
👤 Security Principal
Utilizador · Grupo · App · Managed Identity
+
📋 Role Definition
Owner · Contributor · Reader · Custom
+
🎯 Scope
Subscription · Resource Group · Resource

Funções (Roles) mais comuns

RolePode fazerNão podeUso típico
OwnerTudo, incluindo gerir acessos—Administrador de subscrição
ContributorCriar/gerir recursosGerir acessos (RBAC)Equipa de desenvolvimento
ReaderVer recursos e configuraçõesCriar/modificar/eliminarAuditoria, suporte nível 1
User Access AdministratorGerir acessos (RBAC)Gerir recursosGestão de identidades
Custom RolePermissões específicas definidasTudo o restoPrincípio do menor privilégio
Azure CLI — Atribuições RBAC
# Ver atribuições de role no grupo de recursos
az role assignment list \
  --resource-group rg-lab-mod3 \
  --output table

# Dar role Contributor a um utilizador num grupo de recursos
az role assignment create \
  --assignee ana.costa@<tenant>.onmicrosoft.com \
  --role "Contributor" \
  --resource-group rg-lab-mod3

# Dar role Reader a um grupo Entra ID (melhor prática)
az role assignment create \
  --assignee $(az ad group show --group "GRP-Desenvolvedores" --query id -o tsv) \
  --role "Reader" \
  --resource-group rg-lab-mod3

# Remover atribuição
az role assignment delete \
  --assignee ana.costa@<tenant>.onmicrosoft.com \
  --role "Contributor" \
  --resource-group rg-lab-mod3

# Verificar permissões de um utilizador (what can I do?)
az role assignment list --all --assignee <user-id> --output table
💡
Boa prática RBAC: Atribui roles sempre a grupos, nunca directamente a utilizadores individuais. Quando alguém muda de equipa, basta remover do grupo — não precisas de procurar e remover todas as atribuições individuais.

4 Managed Identity

Uma Managed Identity é uma identidade gerida automaticamente pelo Azure para um recurso (VM, Function, App Service...). Permite que o recurso se autentique a outros serviços Azure sem armazenar passwords ou chaves no código.

🤖

System-Assigned

Criada automaticamente com o recurso. Ligada ao ciclo de vida do recurso — é eliminada com ele. 1 para 1.

🎭

User-Assigned

Criada independentemente e associada a múltiplos recursos. Persiste mesmo que os recursos sejam eliminados.

Azure CLI — Managed Identity (VM → Key Vault)
# Activar Managed Identity na VM
az vm identity assign \
  --resource-group rg-lab-mod3 \
  --name vm-lab01

# Obter o principal ID da identidade
az vm identity show \
  --resource-group rg-lab-mod3 \
  --name vm-lab01 \
  --query principalId \
  --output tsv

# Dar permissão ao Key Vault para a identidade da VM
az keyvault set-policy \
  --name kv-lab-azureedu \
  --object-id <PRINCIPAL_ID> \
  --secret-permissions get list

# Na VM, aceder ao segredo sem passwords (só com curl):
# 1. Obter token da Managed Identity
# TOKEN=$(curl -H Metadata:true "http://169.254.169.254/metadata/identity/oauth2/token?resource=https://vault.azure.net" | jq -r .access_token)
# 2. Usar token para aceder ao Key Vault
# curl -H "Authorization: Bearer $TOKEN" https://kv-lab-azureedu.vault.azure.net/secrets/db-password?api-version=7.4

5 Azure Key Vault

O Azure Key Vault é o serviço para armazenar e aceder de forma segura a segredos, chaves de encriptação e certificados. Nunca guarda passwords, connection strings ou chaves de API no código ou em ficheiros de configuração — usa o Key Vault.

🔏

Segredos (Secrets)

Passwords, connection strings, chaves de API. Versionados — podes recuperar versões anteriores.

🔑

Chaves (Keys)

Chaves criptográficas RSA e EC para encriptação/assinatura. Nunca saem do Key Vault (HSM).

📜

Certificados

Certificados SSL/TLS geridos. Renovação automática via Let's Encrypt ou CA parceiros.

📋

Auditoria completa

Todos os acessos registados. Quem acedeu a que segredo e quando — essencial para compliance.

Azure CLI — Key Vault
# Criar Key Vault
az keyvault create \
  --name kv-lab-azureedu \
  --resource-group rg-lab-mod3 \
  --location PortugalCentral \
  --enable-rbac-authorization true   # RBAC em vez de Access Policies (recomendado)

# Dar permissão ao teu utilizador (Key Vault Administrator)
az role assignment create \
  --role "Key Vault Administrator" \
  --assignee $(az account show --query user.name --output tsv) \
  --scope $(az keyvault show --name kv-lab-azureedu --query id --output tsv)

# Guardar um segredo
az keyvault secret set \
  --vault-name kv-lab-azureedu \
  --name "db-password" \
  --value "SuperSecreta@BD2024!"

# Ler um segredo
az keyvault secret show \
  --vault-name kv-lab-azureedu \
  --name "db-password" \
  --query value \
  --output tsv

# Listar segredos (sem mostrar valores)
az keyvault secret list \
  --vault-name kv-lab-azureedu \
  --output table

# Eliminar (e purgar permanentemente) um segredo
az keyvault secret delete --vault-name kv-lab-azureedu --name db-password
az keyvault secret purge  --vault-name kv-lab-azureedu --name db-password

6 Microsoft Defender for Cloud

O Microsoft Defender for Cloud é a plataforma de gestão de postura de segurança (CSPM) e proteção de workloads (CWPP) do Azure. Analisa continuamente a tua infraestrutura e dá recomendações concretas de melhoria.

📊

Secure Score

Pontuação de 0 a 100 que reflecte a postura de segurança. Cada recomendação implementada melhora o score.

🔍

Recomendações

Lista priorizada de acções de melhoria: "Habilitar MFA para administradores", "Encriptar discos das VMs", etc.

🚨

Alertas de Segurança

Detecção de ameaças em tempo real — login de IP suspeito, malware, tentativas de brute force.

📋

Compliance

Avalia conformidade com standards (ISO 27001, PCI DSS, NIST, RGPD) com relatórios automáticos.

💡
Defender for Cloud gratuito: o tier gratuito inclui Secure Score e recomendações básicas para todos os recursos Azure. O tier pago (Enhanced Security) adiciona detecção de ameaças avançada (~15 USD/VM/mês). Para laboratório, o gratuito é suficiente.

7 Modelo Zero Trust

O Zero Trust é o modelo de segurança moderno recomendado pela Microsoft: "Nunca confies, verifica sempre". Em vez de assumir que tudo dentro da rede está seguro, verifica cada acesso independentemente da sua origem.

🔍
Verificar explicitamente
Autentica e autoriza sempre com base em todos os dados disponíveis: identidade, localização, dispositivo, serviço, dados e anomalias.
🔒
Menor privilégio
Limita o acesso dos utilizadores com Just-In-Time (JIT) e Just-Enough-Access (JEA). Revoga quando já não é necessário.
💥
Assumir a violação
Segmenta o acesso por rede, utilizador, dispositivo e aplicação. Encripta tudo. Usa analytics para detectar anomalias rapidamente.
Laboratório

Lab 6 — RBAC, Key Vault e verificar Secure Score

Passo a passo

Implementar controlo de acesso e gestão de segredos

  1. No portal Azure, vai a Microsoft Entra ID → Users → + New user. Cria utilizador: lab.user@<tenant>.onmicrosoft.com com password temporária.
  2. Cria um grupo: Groups → + New group → Nome: GRP-Lab-Readers → Adiciona o utilizador ao grupo.
  3. Atribui role Reader ao grupo no grupo de recursos: az role assignment create --assignee "GRP-Lab-Readers" --role "Reader" --resource-group rg-lab-mod3
  4. Abre uma janela privada do browser e faz login com lab.user. Verifica que consegues VER os recursos mas não criar nem modificar.
  5. Cria um Key Vault: az keyvault create --name kv-lab-$(shuf -i 1000-9999 -n 1) --resource-group rg-lab-mod3 --location PortugalCentral
  6. Guarda dois segredos: az keyvault secret set --vault-name <NOME_KV> --name "api-key" --value "abc123xyz" e outro chamado db-conn-string.
  7. No portal, vai a Microsoft Defender for Cloud → Overview. Vê o teu Secure Score. Clica em Recommendations — quantas recomendações tens? Qual tem maior impacto no score?
  8. Implementa uma recomendação simples: activa MFA para o teu utilizador administrador (Entra ID → Users → teu utilizador → Authentication methods).
✅
Critério de sucesso: o utilizador lab.user consegue ver os recursos mas não os modificar. Os segredos estão criados no Key Vault e acessíveis via CLI. O Defender for Cloud mostra o teu Secure Score.
Quiz

Verifica os teus conhecimentos — Módulo 6

1. Qual a diferença entre autenticação e autorização?

2. Porque é que o uso de Managed Identities é preferível a guardar chaves de acesso em variáveis de ambiente ou ficheiros de configuração?

3. Um developer precisa de criar e gerir recursos Azure mas não deve poder dar acesso a outros utilizadores. Qual role deve receber?