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.
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 ID | AD DS (Active Directory clássico) |
|---|---|
| Cloud-native, baseado em HTTP/REST | On-premises, baseado em LDAP/Kerberos |
| Autenticação via OAuth 2.0, SAML, OIDC | Autenticação via Kerberos, NTLM |
| Sem domínio físico — sem Domain Controllers | Requer Domain Controllers dedicados |
| Flat — sem OUs ou GPOs | Hierárquico — OUs, GPOs, DNS integrado |
| SSO para apps cloud e SaaS | SSO para apps Windows on-premises |
| Incluído no Azure — gratuito (tier básico) | Requer Windows Server + licenças CAL |
# 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.
Utilizador · Grupo · App · Managed Identity
Owner · Contributor · Reader · Custom
Subscription · Resource Group · Resource
Funções (Roles) mais comuns
| Role | Pode fazer | Não pode | Uso típico |
|---|---|---|---|
| Owner | Tudo, incluindo gerir acessos | — | Administrador de subscrição |
| Contributor | Criar/gerir recursos | Gerir acessos (RBAC) | Equipa de desenvolvimento |
| Reader | Ver recursos e configurações | Criar/modificar/eliminar | Auditoria, suporte nível 1 |
| User Access Administrator | Gerir acessos (RBAC) | Gerir recursos | Gestão de identidades |
| Custom Role | Permissões específicas definidas | Tudo o resto | Princípio do menor privilégio |
# 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
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.
# 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.
# 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.
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.
Lab 6 — RBAC, Key Vault e verificar Secure Score
Implementar controlo de acesso e gestão de segredos
- No portal Azure, vai a Microsoft Entra ID → Users → + New user. Cria utilizador:
lab.user@<tenant>.onmicrosoft.comcom password temporária. - Cria um grupo: Groups → + New group → Nome:
GRP-Lab-Readers→ Adiciona o utilizador ao grupo. - Atribui role Reader ao grupo no grupo de recursos:
az role assignment create --assignee "GRP-Lab-Readers" --role "Reader" --resource-group rg-lab-mod3 - Abre uma janela privada do browser e faz login com
lab.user. Verifica que consegues VER os recursos mas não criar nem modificar. - Cria um Key Vault:
az keyvault create --name kv-lab-$(shuf -i 1000-9999 -n 1) --resource-group rg-lab-mod3 --location PortugalCentral - Guarda dois segredos:
az keyvault secret set --vault-name <NOME_KV> --name "api-key" --value "abc123xyz"e outro chamadodb-conn-string. - 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?
- Implementa uma recomendação simples: activa MFA para o teu utilizador administrador (Entra ID → Users → teu utilizador → Authentication methods).
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.
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?