Partilhar via


Traga seu próprio NSG (Network Security Group) para um cluster do Azure Red Hat OpenShift (ARO)

Normalmente, ao configurar um cluster ARO, você deve designar um grupo de recursos para implantar o objeto de cluster ARO (referido como 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 somente 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 ARO Resource Provider (RP) estabelece um grupo de recursos dedicado específico para as 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 está totalmente protegido, proibindo quaisquer modificações em seu conteúdo, incluindo o NSG vinculado às sub-redes VNET especificadas durante a criação do cluster. Em algumas situações, o NSG gerado pelo ARO RP 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 (Network Security Group) para anexar seu próprio NSG pré-configurado residente no grupo de recursos Base/VNET (RG) (mostrado no diagrama a seguir como BYO-NSG) às sub-redes do cluster 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 trazer seu próprio grupo de segurança de rede funciona no Azure Red Hat OpenShift.

Capacidades e limitações gerais

  • Você precisa anexar seus NSGs pré-configurados às sub-redes mestre e de trabalho antes de criar o cluster. A falha ao 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 diferentes para sub-redes mestre e de trabalho.

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

  • Não é possível 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 NSG pré-configurada não é configurável a partir do portal do Azure.

  • Se você usou esse recurso durante a visualização, seus clusters pré-configurados existentes agora são totalmente suportados.

Nota

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

Utilização de regras

Aviso

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

  • O NSG de cluster ARO padrão (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 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. Em seguida, você pode 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 (quando 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 elas podem interferir na operação do cluster e/ou impedir que as equipes de suporte/SRE do ARO forneçam suporte/gerenciamento. (Aqui, sub-rede indica qualquer ou todos os endereços IP na sub-rede e todas as portas correspondentes a essa sub-rede):

    • Sub-rede principal ←→ Sub-rede principal

    • Sub-rede do Trabalhador ←→ Sub-rede do Trabalhador

    • Sub-rede principal ←→ Sub-rede do trabalhador

    • Regras mal configuradas 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 ARO, defina as seguintes regras INBOUND ALLOW (ou equivalente) no NSG. Consulte o NSG padrão do cluster para obter detalhes específicos e o exemplo NSG mostrado em Implantação. Você pode criar um cluster mesmo sem essas regras no NSG.

    • Para acesso ao servidor de API → Da Internet (ou seus IPs de origem preferidos) para a porta 6443 na sub-rede principal.
    • Para acesso ao roteador OpenShift (e, portanto, ao console OpenShift e às rotas OpenShift) → Da Internet (ou seus IPs de origem preferidos) para as portas 80 e 443 no IP público padrão-v4 no balanceador de carga público do cluster.
    • Para acesso a qualquer tipo de balanceador de carga, o serviço Kubernetes → Da Internet (ou seus IPs de origem preferidos) para portas de serviço em IP público correspondente ao serviço no balanceador de carga público do cluster.

Implementação

Criar VNET e criar e configurar NSG pré-configurado

  1. Crie uma VNET e, em seguida, crie sub-redes mestre e de trabalho dentro dela.

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

Criar um cluster ARO e atualizar NSGs pré-configurados

  1. Criar 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 de cluster como mostrado na saída de captura de tela/CLI:

    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 ecrã a mostrar regras de segurança de entrada e saída.