BYOC do Openflow – Configurar entrada personalizada

Este tópico descreve as considerações e as etapas necessárias para configurar uma implantação BYOC do Openflow com uma solução de entrada personalizada gerenciada em sua conta AWS.

Benefícios

A entrada personalizada para implantações BYOC do Openflow oferece à sua organização:

  • Segurança reforçada com restrições no nível da rede que podem limitar o acesso apenas à sua VPN ou rede privada.

  • Controle completo do URL e do certificado TLS usado para acessar o Openflow para atender aos seus requisitos de segurança e conformidade.

Considerações

Com a entrada gerenciada pelo Snowflake, o Openflow cria os registros DNS e o balanceador de carga público necessários e gerencia o certificado TLS para os tempos de execução do Openflow em sua implantação BYOC.

Ao ativar a entrada personalizada, o Openflow não gerenciará mais automaticamente os registros DNS externos, não criará um balanceador de carga público automaticamente e não gerenciará mais os certificados para os tempos de execução do Openflow. É necessário gerenciar esses recursos em sua própria conta AWS.

Entrada gerenciada pelo Openflow em comparação com entrada personalizada, destacando os requisitos adicionais para DNS, balanceadores de carga e certificados.

Configurar a entrada personalizada no Snowflake Openflow

  1. Ative a entrada personalizada durante a criação da implantação.

    • Durante a criação da implantação, habilite Custom ingress e especifique seu nome de domínio totalmente qualificado (Fully Qualified Domain Name, FQDN) preferencial no campo Hostname.

    • Você deve poder gerenciar esse registro DNS e criar um certificado TLS para o FQDN. Não use um subdomínio de snowflakecomputing.com.

    • Você não deve incluir o protocolo https:// ou uma barra final / no FQDN.

    • Por exemplo, se você especificar openflow01.your-domain.org, acessará um tempo de execução chamado «My Runtime» em https://openflow01.your-domain.org/my-runtime/nifi/.

  2. Baixe o modelo CloudFormation. Esse arquivo tem todas as configurações necessárias para que o Openflow seja executado como seu domínio de entrada personalizado.

Configurar a entrada personalizada na AWS

Nota

{deployment-key} representa o identificador exclusivo do Openflow aplicado aos recursos de nuvem criados e gerenciados pelo Openflow para uma implantação específica.

Ele está no parâmetro DataPlaneKey do modelo CloudFormation, também disponível no Openflow por meio da opção de menu View Details para a implantação.

  1. Adicione a seguinte tag às sub-redes privadas em sua implantação do Openflow:

    • Chave: kubernetes.io/role/internal-elb

    • Valor: 1

  2. Se suas sub-redes privadas forem usadas por outros clusters EKS, você também deverá marcá-los com o nome do cluster Openflow. Isso permite que o Openflow crie um balanceador de carga junto com outros balanceadores de carga.

    • Chave: kubernetes.io/cluster/{deployment-key}

    • Valor: 1

  3. Carregue o modelo CloudFormation. Aguarde aproximadamente 30 minutos para que o Openflow crie o balanceador de carga de rede interno.

    • Você pode encontrar o balanceador de carga de rede interno no console da AWS em EC2 » Load Balancers.

    • O balanceador de carga será chamado runtime-ingress-{deployment-key}.

  4. Obtenha o endereço IP interno do balanceador de carga de rede interno da AWS gerenciado pelo Openflow.

    • Em EC2 » Load Balancers, navegue até a página de detalhes e copie o DNS name do balanceador de carga.

    • Faça login em sua instância EC2 do agente (identificada como openflow-agent-{deployment-key}) e execute o comando nslookup {openflow-load-balancer-dns-name}.

    • Copie os endereços IP do balanceador de carga de rede interno da AWS gerenciado pelo Openflow. Esses são os destinos para o grupo de destino do balanceador de carga que você criará em uma etapa a seguir.

  5. Provisione um certificado TLS.

    • Obtenha um certificado TLS para o balanceador de carga que manipulará o tráfego para as UIs de tempo de execução do Openflow. Você pode gerar um certificado usando o AWS Certificate Manager (ACM) ou importar um certificado existente.

  6. Crie um balanceador de carga de rede que roteie o tráfego para o balanceador de carga de rede interno da AWS gerenciado pelo Openflow.

    1. Na sua conta AWS, crie um balanceador de carga de rede com a seguinte configuração:

      • Nome: Recomendamos a convenção de nomenclatura custom-ingress-external-{deployment-key}, em que {deployment-key} é a chave da sua implantação do Openflow.

      • Tipo: Network Load Balancer

      • Esquema: Internal ou Internet-facing, dependendo dos requisitos.

      • VPC: selecione a VPC da sua implantação

      • Zonas de disponibilidade: selecione as duas zonas de disponibilidade onde sua implantação do Openflow está em execução.

      • Sub-redes: Selecione as sub-redes privadas de VPC para um balanceador de carga Internal ou as sub-redes públicas de VPC para um balanceador de carga Internet-facing.

      • Grupos de segurança: selecione ou crie um grupo de segurança que permita tráfego na porta 443

      • Certificado de servidor SSL/TLS padrão: importe seu certificado SSL/TLS

      • Grupo de destino: crie um novo grupo de destino com as seguintes configurações:

        • Tipo de destino: IP addresses

        • Protocolo: TLS

        • Porta: 443

        • VPC: verifique se a VPC corresponde à sua implantação

        • Digite o endereço IP do balanceador de carga de rede interno criado pelo Openflow (obtido na etapa anterior) como o destino e selecione Include as pending below.

    2. Após a criação do balanceador de carga, copie o nome DNS dele para usar na próxima etapa.

    3. Para obter mais informações sobre como criar um balanceador de carga de rede, consulte Criar um balanceador de carga de rede.

  7. Crie um registro DNS CNAME que mapeia o FQDN da sua entrada personalizada para o nome DNS do balanceador de carga da AWS.

Verificação

  1. A implantação do Openflow mostra o status Active na página Deployments.

  2. Crie um tempo de execução na implantação do Openflow.

  3. Quando o tempo de execução é Active, clique no nome dele ou use a opção de menu View canvas para acessar a UI dele.

  4. O Openflow direciona você para o tempo de execução com o nome de host especificado durante a criação da implantação. Por exemplo, https://openflow01.your-domain.org/my-runtime/nifi/.

Solução de problemas

As seções a seguir apresentam as etapas de solução de problemas comuns com a entrada personalizada. Se você ainda tiver problemas depois de realizar estas verificações, abra um chamado junto ao suporte Snowflake.

Verificação de integridade de destino do balanceador de carga

O grupo de destino do balanceador de carga de rede deve listar os endereços IP do balanceador de carga de rede interno gerenciado pelo Openflow como destinos. Todos esses destinos devem aparecer como Healthy. Se os destinos forem Unhealthy, faça estas verificações para identificar onde ocorre falha no tráfego.

  1. No console da AWS, abra EC2 » Load Balancers.

  2. Localize o balanceador de carga gerenciado pelo Openflow que gerencia a entrada no cluster Kubernetes. Esse balanceador de carga é chamado runtime-ingress-{deployment-key}.

  3. Revise a integridade do destino desse balanceador de carga na guia Resource map.

  4. Se o balanceador de carga gerenciado pelo Openflow não estiver ativo ou tiver destinos Unhealthy:

    • O tráfego pode estar bloqueado entre o balanceador de carga gerenciado pelo Openflow e o cluster BYOC, ou um serviço dentro do cluster pode não estar pronto.

    • Execute ./diagnostics.sh da instância openflow-agent-{deployment-key} do EC2 para gerar um pacote de diagnóstico e anexe-o a um chamado de suporte Snowflake.

  5. Se o balanceador de carga gerenciado pelo Openflow estiver ativo e tiver destinos íntegros, verifique a integridade do destino do seu balanceador de carga.

  6. Se os destinos do seu balanceador de carga forem Unhealthy, o caminho do seu balanceador de carga até o balanceador de carga gerenciado pelo Openflow é o problema mais provável:

    • Endereços IP incorretos ou obsoletos em seu grupo de destino. O balanceador de carga gerenciado pelo Openflow expõe vários endereços IP que podem mudar ao longo do tempo. Para saber os valores mais recentes, execute nslookup com DNS name do balanceador de carga gerenciado pelo Openflow. Atualize os destinos do seu balanceador de carga conforme necessário.

    • Regras do grupo de segurança. Confirme se as regras de entrada nos grupos de segurança do balanceador de carga gerenciado pelo Openflow permitem TCP 443 do seu balanceador de carga. O tráfego poderá falhar se o seu balanceador de carga não puder acessar o balanceador de carga do Openflow na porta 443.

Bloqueio de segurança do navegador

Alguns problemas com a entrada personalizada são causados pela segurança do navegador corporativo, por firewalls ou proxies da web que bloqueiam ou inspecionam o tráfego para seu nome de host personalizado. Essas políticas são separadas da configuração do balanceador de carga da AWS. Você pode descobrir que os usuários não conseguem abrir a UI do Openflow mesmo quando os balanceadores de carga da AWS relatam destinos íntegros.

Para verificar a conectividade com os serviços Openflow por meio dos balanceadores de carga:

  1. No console da AWS, abra EC2 » Load Balancers para obter o nome DNS do balanceador de carga que está processando o tráfego e o certificado TLS para o nome do seu domínio de entrada personalizado.

    • Não se trata do balanceador de carga runtime-ingress-{deployment-key}.

  2. Na instância openflow-agent-{deployment-key} do EC2, verifique a conectividade com a implantação do Openflow por meio dos balanceadores de carga. Execute o comando:

    curl -kv https://{your-load-balancer-dns-name}
    
    • Se o comando retornar as informações de certificado esperadas e uma resposta bem-sucedida de código de status 404, você verificou com sucesso a conectividade com sua implantação do Openflow.

    • Se o comando expirar ou retornar um erro, crie um chamado junto ao suporte Snowflake e anexe um pacote de diagnóstico gerado executando ./diagnostics.sh na instância do Openflow Agent.

  3. Na instância do Openflow Agent, você também pode verificar o registro DNS CNAME para o FQDN da sua entrada personalizada. Execute o comando:

    source ~/.env && nslookup $DOMAIN
    
    • Se o comando retornar os endereços IP do balanceador de carga que está executando a terminação TLS para o nome do seu domínio de entrada personalizado, você verificou com sucesso o registro DNS CNAME.

    • Se o comando não retornar resultados, o registro DNS CNAME não está configurado corretamente. Verifique o registro DNS para o FQDN da sua entrada personalizada e certifique-se de que ele aponte para o nome DNS do seu balanceador de carga.

Se o Openflow Agent se conectou com sucesso usando o DNS do seu balanceador de carga e você verificou o registro DNS CNAME, uma política de segurança ou um firewall provavelmente está bloqueando o tráfego do seu navegador para a implantação BYOC do Openflow. Trabalhe com sua equipe de segurança para incluir o FQDN da sua entrada personalizada na lista de permissão.