Visão geral da arquitetura do linux Azure

Azure Linux é uma distribuição Linux mantida pela Microsoft, baseada no ecossistema Fedora e otimizada para o Azure. Este artigo explica como Azure Linux é estruturado, o que ele inclui por padrão e onde ele desenha limites intencionalmente.

Note

Azure Linux 4.0 agora está em preview e está estritamente limitado às finalidades de avaliação e teste. Não é adequado para uso em produção.

Como Azure Linux se relaciona com Fedora

Azure Linux deriva de Fedora e usa o mesmo ecossistema de empacotamento baseado em RPM. Você conta com a familiaridade de dnf5, das ferramentas de compilação do Fedora (mock, fedpkg, koji, kiwi) e de cadeias modernas de ferramentas de compilação — todas acompanhando o Fedora upstream. Além dessa base, Microsoft adiciona proteção Azure específica, um kernel personalizado e um ciclo de vida gerenciado adequado para cargas de trabalho de nuvem.

O kernel é disponibilizado na versão 6.18 LTS, com drivers de convidado do Hyper-V, ajustes de desempenho específicos do Azure e reforço de segurança validados em todas as SKUs de VM do Azure.

Arquitetura em camadas

Azure Linux usa um modelo em camadas. Cada camada se baseia em uma abaixo dela, desde hardware e firmware na base até suas cargas de trabalho na parte superior.

Screenshot de um diagrama mostrando a arquitetura em camadas do Azure Linux.

Camada do núcleo

O kernel personalizado do Azure Linux inclui drivers de convidado do Hyper-V, patches de reforço de segurança e otimizações de desempenho otimizadas para a infraestrutura do Azure. Você pode escolher entre kernels de Suporte de Longo Prazo (LTS), para maior estabilidade, ou kernels HWE (Ativação de Hardware), para suporte a novo hardware e a GPUs. Consulte a cadência de versão e o ciclo de vida para obter detalhes.

Camada do sistema operacional principal

Essa camada fornece o sistema de arquivos raiz mínimo: systemd para o gerenciamento de serviços, glibc como o runtime C e o OpenSSL para criptografia. Estes são componentes de Camada 1, o que significa que eles estão bloqueados por versão durante o tempo de vida de uma versão principal e recebem apenas backports de segurança. Isso mantém a ABI (interface binária do aplicativo) estável e o comportamento previsível.

Camada de pacotes do espaço do usuário

Os runtimes de linguagem (Python, Go, Rust, Node.js), ferramentas de contêiner e dependências de aplicativo residem aqui. Os pacotes de camada 1 estão bloqueados para estabilidade. Os pacotes de camada 2 são atualizados em uma cadência previsível. Para obter mais informações, consulte Cadência de versão e ciclo de vida.

Camada de carga de trabalho

Seus Azure serviços e aplicativos são executados aqui. Azure Linux apresenta a mesma base de sistema operacional, conjunto de pacotes e comportamento se você estiver executando no AKS, Azure VMs ou imagens de contêiner.

Escopo da plataforma

Azure Linux foi projetado para cargas de trabalho de nuvem Azure. Embora o Azure Linux seja de código aberto, o suporte da Microsoft e seus compromissos de ciclo de vida se aplicam apenas a cenários no Azure.

A tabela a seguir descreve o que é e não tem suporte no Azure Linux:

Area Supported Sem suporte
Arquiteturas x86-64 (mínimo v2), ARMv8 (64 bits) Arquiteturas de 32 bits
Ambientes Azure VMs, AKS, imagens de contêiner Imagens ISO, locais, multinuvem, IoT, dispositivos de borda
Interface do usuário Console baseado em texto, SSH Ambientes de área de trabalho gráfica, instalador de GUI
Virtualização Convidados da KVM, Hyper-V Xen
Hardware periférico armazenamento anexado Azure, rede, GPUs Bluetooth, Wi-Fi, impressoras, áudio/vídeo, robótica
Plataforma confiável TPM 2.0 TPM 1.x
Suporte a idiomas Suporte global a localidades disponível Nem todos os pacotes de idiomas estão incluídos na imagem base

Cada imagem do Linux Azure inclui waagent e cloud-init. Esses componentes são necessários para Azure integração e devem estar sempre presentes.

Estrutura do repositório

Azure Linux envia pacotes em vários repositórios separados. Saber de qual repositório um pacote vem ajuda a entender o nível de suporte, o que está disponível por padrão e o que você precisa ativar explicitamente. Para obter informações diárias de gerenciamento de pacotes, consulte o gerenciamento de pacotes.

Padrões de rede

O Azure Linux vem com uma pilha de rede otimizada para VMs do Azure, nós do AKS e cargas de trabalho de contêineres. A maioria das cargas de trabalho pode usar os padrões sem alterações.

A tabela a seguir resume os componentes de rede padrão no Azure Linux e as alternativas que estão disponíveis se você precisar substituir os padrões para um cenário específico:

Componente Default Alternativa Observações
Gerenciador de rede systemd‑networkd + cloud‑init NetworkManager (disponível, não padrão) systemd-networkd é o padrão para Azure cenários de VM e contêiner.
Firewall firewalld N/D Habilitado por padrão com uma política de bloquear conexões de entrada e permitir conexões de saída.
Mecanismo de firewall nftables iptables (herdado, disponível) nftables é o substituto moderno do iptables. O suporte herdado de iptables está disponível, mas não é padrão.
IPv6 Habilitado e reforçado N/D Endurecimento rigoroso de sysctl aplicado tanto para IPv4 quanto para IPv6.

Configurações padrão de armazenamento

As configurações padrão de armazenamento do Azure Linux são ajustadas para discos conectados ao Azure e para o hipervisor Hyper-V subjacente a cada VM do Azure. O sistema de arquivos, o carregador de inicialização e a fonte de clock são escolhidos para garantir desempenho previsível e compatibilidade com recursos da plataforma Azure, como snapshots e discos gerenciados.

A tabela a seguir resume as configurações de armazenamento padrão no Azure Linux e as alternativas que estão disponíveis se você precisar substituir os padrões para um cenário específico:

Setting Default Alternativas
Sistema de arquivos ext4 xfs, btrfs
Inicialização Gerenciador de inicialização GRUB2 N/D
Relógio Origem do relógio PTP do Hyper-V N/D
NVMe Tempo limite ajustado para armazenamento anexado ao Azure N/D

Arquitetura de segurança

Azure Linux é protegido em todas as camadas, desde o kernel até a cadeia de suprimentos. As seções a seguir descrevem os controles de segurança habilitados por padrão. Consulte Segurança e conformidade para obter mais informações.

Controle de acesso obrigatório

O MAC (controle de acesso obrigatório) restringe os processos apenas ao acesso de que realmente precisam, mesmo quando são executados como root.

A versão prévia do Azure Linux 4.0 habilita o SELinux no modo de imposição como sua estrutura MAC.

Inicialização Segura

A Inicialização Segura garante que somente os carregadores de inicialização e kernels assinados são executados. O bloqueio do kernel protege o kernel em execução e desabilita o carregamento de módulos kernel não confiáveis em runtime.

Note

Azure Linux 4.0 agora está em versão preliminar e seus componentes ainda não foram assinados para Inicialização Segura.

Kernel e reforço de segurança do sistema

O kernel e o espaço do usuário são compilados com mitigações que tornam os exploits mais difíceis de desenvolver e mais fáceis de conter caso tenham sucesso.

A tabela a seguir resume os recursos de proteção de sistema e kernel no Azure Linux:

Capacidade Description
ASLR Randomização robusta do layout do espaço de endereços habilitada.
Proteção de pilha Proteções de pilha no nível do compilador aplicadas a todos os pacotes.
Restrições de Syscall Perfis seccomp padrão e filtragem de chamadas de sistema.
Imagem base mínima Superfície de ataque reduzida com um conjunto mínimo de pacotes.

Cryptography

Azure Linux centraliza a política criptográfica para que algoritmos e tamanhos de chave permaneçam consistentes em OpenSSL, GnuTLS, NSS e OpenSSH.

A tabela a seguir resume as configurações de criptografia no Azure Linux:

Setting Valor
FIPS A certificação FIPS 140-3 é obrigatória.
Políticas de criptografia As políticas de criptografia do Fedora foram adotadas para uma seleção consistente de algoritmos.
Pós-quântico ML-KEM planejado, alinhado ao planejamento do Fedora e do RHEL.

Registro de logs e auditoria

A tabela a seguir resume as configurações de log e auditoria no Azure Linux:

Setting Valor
Daemon de auditoria auditd habilitado.
Armazenamento de diários Armazenamento diário persistente.