Guia de Arquitetura Hub-Spoke no Azure — conectividade, segurança e operações
Índice
1) Conceito e benefícios
- Separação de conectividade/segurança (Hub) e workloads (Spokes).
- Centralização de serviços compartilhados: DNS, firewall, gateways, inspeção de tráfego.
- Escalabilidade por Spokes independentes com governança consistente.
2) Componentes típicos do Hub
- Azure Firewall ou NVA para inspeção L3-L7 e egress control.
- Gateway (VPN/ER) para conectividade híbrida.
- Azure DNS Private Resolver + zonas privadas compartilhadas.
- Sub-redes de infraestrutura:
AzureFirewallSubnet,GatewaySubnet,AzureBastionSubnet, etc.
3) Spokes e segmentação
Crie Spokes por domínio de negócios, ambiente (dev/test/prod) ou criticidade. Padronize sub-redes (app/data/mgmt), NSGs e UDRs. Utilize landing zones para provisionamento padronizado.
4) Roteamento, UDRs e inspeção
- Tráfego spoke↔spoke normalmente passa pelo Hub (via UDR para firewall).
- Use UDRs nas sub-redes dos Spokes apontando next-hop para Azure Firewall no Hub.
- Evite assimetrias: alinhe UDRs de ida e volta e verifique effective routes nas NICs.
5) DNS: Private Resolver e zonas privadas
- Hospede zonas privadas no Hub e link para os Spokes.
- Use Azure DNS Private Resolver para encaminhar consultas on‑premises↔Azure.
- Padronize sufixos internos e evite split-horizon confuso.
6) Conectividade híbrida (VPN/ExpressRoute)
- Gateway no Hub com gateway transit para os Spokes.
- Para ER + VPN simultâneos, avalie Active-Active e FastPath em VNets suportadas.
7) Peering e gateway transit
- Peering não transitivo: use UDR + firewall para spoke↔spoke.
- Ative Allow gateway transit no Hub e Use remote gateways nos Spokes.
- Endereços IP das VNets não podem se sobrepor.
8) Segurança (NSG/ASG/Firewall)
- NSGs por sub-rede e ASGs para agrupar VMs por função.
- Azure Firewall com regras DNAT/SNAT, FQDN tags e threat intel.
- Integração com Microsoft Defender for Cloud para recomendações.
9) Observabilidade e operação
- Envie logs de firewall/gateway para Log Analytics e crie Workbooks.
- Monitore latência, data transfer do peering e health de gateways.
- Automatize verificação de rotas com scripts (CLI/PowerShell) em pipelines.
10) Custos e limites
- Custos de data transfer no peering (regional vs global) e do Azure Firewall.
- Limites de peering por VNet e throughput por SKU de gateway/firewall.
11) IaC: Bicep (exemplo minimalista)
// hub-spoke-min.bicep
@description('Região')
param location string = 'brazilsouth'
@description('Prefixo CIDR do Hub')
param hubCidr string = '10.0.0.0/16'
@description('Prefixo CIDR do Spoke')
param spokeCidr string = '10.1.0.0/16'
resource hub 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: 'vnet-hub'
location: location
properties: {
addressSpace: { addressPrefixes: [ hubCidr ] }
subnets: [
{ name: 'AzureFirewallSubnet', properties: { addressPrefix: '10.0.0.0/24' } },
{ name: 'AzureBastionSubnet', properties: { addressPrefix: '10.0.1.0/27' } },
{ name: 'mgmt', properties: { addressPrefix: '10.0.2.0/24' } }
]
}
}
resource spoke 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: 'vnet-spoke'
location: location
properties: {
addressSpace: { addressPrefixes: [ spokeCidr ] }
subnets: [
{ name: 'app', properties: { addressPrefix: '10.1.1.0/24' } },
{ name: 'data', properties: { addressPrefix: '10.1.2.0/24' } }
]
}
}
resource peerHubToSpoke 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2023-11-01' = {
name: '${hub.name}/peer-hub-to-spoke'
properties: {
remoteVirtualNetwork: { id: spoke.id }
allowVirtualNetworkAccess: true
allowForwardedTraffic: true
}
}
resource peerSpokeToHub 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings@2023-11-01' = {
name: '${spoke.name}/peer-spoke-to-hub'
properties: {
remoteVirtualNetwork: { id: hub.id }
allowVirtualNetworkAccess: true
allowForwardedTraffic: true
useRemoteGateways: true
}
}
