Compartilhar via


Traga seu próprio NSG (grupo de segurança de rede) para um cluster do ARO (Red Hat OpenShift) do Azure

Normalmente, ao configurar um cluster ARO, você deve designar um grupo de recursos para implantar o objeto do cluster ARO (chamado de Grupo de Recursos Base no diagrama a seguir). Nesses cenários, você pode usar o mesmo grupo de recursos para a rede virtual (VNET) e o cluster ou pode optar por um grupo de recursos separado apenas para a VNET. Nenhum desses grupos de recursos corresponde diretamente a um único cluster ARO, concedendo-lhe controle total sobre eles. Isso significa que você pode criar, modificar ou excluir recursos livremente dentro desses grupos de recursos.

Durante o processo de criação do cluster, o RP (Provedor de Recursos) do ARO estabelece um grupo de recursos dedicado específico às necessidades do cluster. Esse grupo abriga vários recursos específicos do cluster, como VMs de nó, balanceadores de carga e NSGs (grupos de segurança de rede), conforme descrito pelo Grupo de Recursos Gerenciados no diagrama a seguir. O Grupo de Recursos Gerenciados é fortemente protegido, proibindo quaisquer modificações em seu conteúdo, incluindo o NSG vinculado às sub-redes da VNET especificadas durante a criação do cluster. Em algumas situações, o NSG gerado pelo RP do ARO pode não aderir às políticas de segurança de determinadas organizações.

Diagrama mostrando uma visão geral de como os grupos de segurança de rede funcionam em um cluster ARO típico.

Este artigo mostra como usar o recurso "traga seu próprio" NSG (grupo de segurança de rede) para anexar seu próprio NSG pré-configurado que reside no RG (grupo de recursos) Base/VNET (mostrado no diagrama a seguir como BYO-NSG) às sub-redes de cluster do ARO. Como você possui esse NSG pré-configurado, você pode adicionar/remover regras durante o tempo de vida do cluster ARO.

Diagrama mostrando uma visão geral de como funciona trazer seu próprio grupo de segurança de rede no Red Hat OpenShift do Azure.

Funcionalidades e limitações gerais

  • Você precisa anexar seus NSGs pré-configurados a sub-redes mestras e de trabalho antes de criar o cluster. A falha em anexar seus NSGs pré-configurados a ambas as sub-redes resulta em um erro.

  • Você pode optar por usar os mesmos NSGs pré-configurados ou NSGs diferentes para sub-redes mestras e de trabalho.

  • Ao usar seu próprio NSG, o RP do ARO ainda cria um NSG no Grupo de Recursos Gerenciados (NSG padrão), mas esse NSG não está anexado às sub-redes de trabalho ou mestras.

  • Você não pode habilitar o recurso NSG pré-configurado em um cluster ARO existente. Atualmente, esse recurso só pode ser habilitado no momento da criação do cluster.

  • A opção de NSG pré-configurado não é configurável no portal do Azure.

  • Se você usou esse recurso durante a versão prévia, seus clusters pré-configurados existentes agora têm suporte total.

Observação

Se você estiver usando o recurso NSG "traga seu próprio" e quiser usar logs de fluxo NSG, consulte Registro de fluxo para grupos de segurança de rede na documentação do Observador de Rede do Azure, em vez da documentação específica do log de fluxo do ARO que ganhou (não funciona com o recurso traga seu próprio NSG).

Usar regras

Aviso

Os NSGs pré-configurados não são atualizados automaticamente com regras quando você cria serviços do tipo Kubernetes LoadBalancer ou rotas do OpenShift dentro do cluster ARO. Portanto, você deve atualizar essas regras manualmente, conforme necessário. Esse comportamento é diferente do comportamento original do ARO em que o NSG padrão é atualizado programaticamente nessas situações.

  • O NSG padrão do cluster ARO (não anexado a nenhuma sub-rede ao usar esse recurso) ainda será atualizado com regras quando você criar serviços do tipo Kubernetes LoadBalancer ou rotas do OpenShift dentro do cluster ARO.

  • Você pode desanexar NSGs pré-configurados das sub-redes do cluster criado usando esse recurso. Isso resulta em um cluster com sub-redes que não têm NSGs. Você pode, então, anexar um conjunto diferente de NSGs pré-configurados ao cluster. Como alternativa, você pode anexar o NSG padrão do ARO às sub-redes do cluster (momento em que o cluster se torna como qualquer outro cluster que não esteja usando esse recurso).

  • Seus NSGs pré-configurados não devem ter regras INBOUND/OUTBOUND DENY dos seguintes tipos, pois isso pode interferir na operação do cluster e/ou dificultar as equipes de suporte/SRE do ARO de fornecer suporte/gerenciamento. (Aqui, a sub-rede indica qualquer ou todos os endereços IP na sub-rede e todas as portas correspondentes a essa sub-rede):

    • Sub-rede Mestra ←→ Sub-rede Mestra

    • Sub-rede de Trabalho ←→ Sub-rede de Trabalho

    • Sub-rede Mestra ←→ Sub-rede de Trabalho

    • Regras configuradas incorretamente resultam em um sinal usado pelo Azure Monitor para ajudar a solucionar problemas de NSGs pré-configurados.

  • Para permitir o tráfego de entrada para o cluster público do ARO, defina as seguintes regras INBOUND ALLOW (ou equivalente) em seu NSG. Consulte o NSG padrão do cluster para obter detalhes específicos e para o exemplo de NSG mostrado na Implantação. Você pode criar um cluster mesmo sem essas regras no NSG.

    • Para acessar o servidor de API → da Internet (ou de seus IPs de origem preferenciais) à porta 6443 na sub-rede mestra.
    • Para acessar o roteador OpenShift (e, portanto, ao console do OpenShift e às rotas do OpenShift) → da Internet (ou de seus IPs de origem preferenciais) às portas 80 e 443 no IP público padrão v4 no balanceador de carga público do cluster.
    • Para acessar qualquer serviço do tipo Load Balancer do Kubernetes → da Internet (ou de seus IPs de origem preferenciais) às portas de serviço no IP público correspondentes ao serviço no balanceador de carga público do cluster.

Implantação

Criar uma VNET e criar e configurar um NSG pré-configurado

  1. Crie uma VNET e crie sub-redes mestras e de trabalho dentro dela.

  2. Crie NSGs pré-configurados com regras padrão (ou nenhuma regra) e anexe-os às sub-redes mestras e de trabalho.

Criar um cluster ARO e atualizar os NSGs pré-configurados

  1. Crie o cluster.

    az aro create \
    --resource-group BASE_RESOURCE_GROUP_NAME \
    --name CLUSTER_NAME \
    --vnet VNET_NAME \
    --master-subnet MASTER_SUBNET_NAME \
    --worker-subnet WORKER_SUBNET_NAME \
    --client-id CLUSTER_SERVICE_PRINCIPAL_ID \
    --client-secret CLUSTER_SERVICE_PRINCIPAL_SECRET \
    --enable-preconfigured-nsg
    
  2. Atualize os NSGs pré-configurados com regras de acordo com seus requisitos, considerando também os pontos mencionados em Recursos e limitações.

    O exemplo a seguir tem o balanceador de carga público do cluster, conforme mostrado na saída da CLI/captura de tela:

    Captura de tela do balanceador de carga público do cluster, conforme mostrado com a saída do comando.

    $ oc get svc | grep tools
    tools LoadBalancer 172.30.182.7 20.141.176.3 80:30520/TCP 143m
    $ $ oc get svc -n openshift-ingress | grep Load
    router-default LoadBalancer 172.30.105.218 20.159.139.208 80:31157/TCP,443:31177/TCP 
    5d20
    

    Captura de tela mostrando as regras de segurança de entrada e saída.