Blog Post

Azure InfraGurus
7 MIN READ

FinOps Hub Privado: Implementação Manual em Ambientes Corporativos

carolinamelo's avatar
carolinamelo
Icon for Microsoft rankMicrosoft
Apr 10, 2026

O que é o FinOps Hub?

O FinOps Hub é uma solução open source da Microsoft, parte do FinOps Toolkit, que fornece uma base escalável e extensível para análise, governança e otimização de custos em nuvem. A solução centraliza dados de custos por meio de recursos de armazenamento e pipelines de dados, permitindo que as organizações padronizem a forma como analisam seus gastos na nuvem, adotando o modelo de dados FOCUS definido pela FinOps Foundation.

Além de disponibilizar relatórios e dashboards prontos, o FinOps Hub expõe os dados de custos de forma estruturada por meio do Azure Data Explorer ou do Microsoft Fabric, possibilitando a criação de relatórios customizados no Power BI e o desenvolvimento de soluções internas sob medida, de acordo com as necessidades do negócio.

Objetivo

Esse artigo visa orientar a implementação manual do acesso privado ao FinOps Hub após uma implementação pública, sem usar diretamente a opção de implementação privada oferecida pelo template.

Por que implementar o FinOps Hub com acesso privado de forma manual?

O template disponibilizado para a implementação do FinOps Hub permite que selecionemos duas formas de implementação:

  • Pública: forma de implementação mais simples e comum. Os recursos são provisionados com acesso público habilitado, sendo acessados por meio de seus endpoints públicos padrões do Azure. O controle de acesso é feito exclusivamente via permissões RBAC.
  • Privada: forma de implementação mais segura. Os recursos são provisionados com acesso público desabilitado e expostos apenas por meio de private endpoints, ficando acessíveis somente através de redes privadas que possuem conectividade com a rede onde esses endpoints estão implementados.

Embora a comunicação privada traga ganhos significativos de segurança, sua habilitação através do template do FinOps Hub introduz algumas implicações importantes no processo de implantação. O template, de forma automática, tenta:

  • Criar uma rede virtual (/26);
  • Provisionar Private DNS Zones;
  • Criar os registros DNS associados aos private endpoints;
  • Configurar os links entre as VNets e as zonas DNS.

Em muitas organizações, esse tipo de configuração é restrito por políticas internas. A criação de redes, zonas DNS e seus respectivos vínculos costuma ser responsabilidade de times especializados, que garantem a padronização e a aderência às diretrizes arquiteturais definidas pela empresa.

Em cenários onde a organização adota, por exemplo, uma topologia Hub & Spoke, com landing zones bem definidas para workloads e conectividade, é fundamental considerar alguns pontos adicionais:

  • Garantir que a rede criada para os private endpoints não tenha sobreposição (overlap) com outras redes existentes;
  • Assegurar que exista peering com a VNet de hub;
  • Integrar os registros DNS dos novos private endpoints às Private DNS Zones centralizadas;
  • Configurar corretamente os VNet links;
  • Garantir que a resolução de nomes esteja funcional no ambiente on-premises, permitindo o acesso ao FinOps Hub por meio de VPN, ExpressRoute ou outras formas de conectividade híbrida.

Esses fatores explicam por que, em muitos casos, o uso do template com configuração privada se torna inviável quando utilizado de forma isolada. Isso ocorre porque, frequentemente, o time de FinOps não é o mesmo time responsável por redes e DNS, possuindo permissão para implantar apenas parte dos recursos necessários.

Nesses cenários, a implementação privada exige a orquestração entre diferentes times, cada um atuando dentro de suas responsabilidades. Como resultado, algumas etapas que o template tenta executar automaticamente precisam ser realizadas manualmente, conforme descrito nas próximas seções.

Passo a Passo para Implementação

  1. Faça a implementação do template seguindo o tutorial documentado, com “Networking” em modo público.
  2. Assim que o template é implementado, alguns scripts de configuração são executados. Aguarde até que esses scripts sejam executados, ou seja, desapareçam do grupo de recursos onde o FinOps Hub foi implementado para seguir com os próximos passos. Exemplos dos “Deployment Scripts” que desaparecerão:

 

  1. Crie uma rede de tamanho mínimo /26 – valide com o time de infraestrutura o espaçamento que pode ser utilizado. Dentro dessa rede implemente uma subrede:
    • private-endpoint-subnet (/28) – subrede para os private endpoints.
  2. Garanta a existência das Private DNS Zones: se seu ambiente possui zonas de DNS privadas centralizadas pré-configuradas. Garanta que as seguintes zonas já existam na subscription padrão para os seus recursos de rede:
    • privatelink.blob.core.windows.net– para o Data Explorer e storage
    • privatelink.dfs.core.windows.net– para o Data Explorer and o data lake hospedando os dados de FinOps data e configuração das pipelines
    • privatelink.table.core.windows.net– para Data Explorer
    • privatelink.queue.core.windows.net– para o Data Explorer
    • privatelink.{location}.kusto.windows.net– para Data Explorer

 

Configurando a Storage Account com Acesso Privado

O primeiro recurso que a ser configurado será a Storage Account.

  1. A configuração a seguir deve ser realizada duas vezes uma para o target sub-resource “blob” e outra para o target sub-resource “dfs”.
    • Acesse “Networking” e a aba “Private Endpoints”
    • Na aba “Basics” defina:
      • Subscription: mesma que o FinOps Hub foi implementado
      • Resource Group: mesmo que o FinOps Hub foi implementado
      • Name: use um nome que remeta ao recurso criado (private endpoint) e o sub recurso que ele fará exposição (blob/dfs). Exemplo: pe-storageaccount-blob/ pe-storageaccount-dfs
    • Na aba “Resource” defina o target sub-resource para o qual a configuração está sendo feita. No caso, primeiro foi feito para “blob” e depois “dfs”.
    • Na aba “Virtual Network”, deve-se selecionar a rede criada para os private endpoints bem como a subrede (private-endpoint-subnet).
    • Na aba “DNS” selecione a private DNS zone na qual são realizados os registros do seus private endpoints. Quando estiver configurando o private endpoint para blob será privatelink.blob.core.windows.net e para dfs privatelink.dfs.core.windows.net.
    • Adicione Tags caso seja necessário.
    • Clique em “Review + create”.
    • Ao final, dois private endpoints devem estar criados para a storage account: 

 

  1. Agora será necessário configurar o private endpoint usado pelo Data Factory para acessar a Storage Account.
    • Acesse o Data Factory e clique em "Launch Studio".
    • No menu lateral, selecione a opção "Manage" -> "Linked services":
    • Selecione o serviço correspondente ao Azure Data Lake Storage Gen2.
    • Em “Connect via integration runtime” substitua “AutoResolveIntegrationRuntime” por New+:
    • Em “Integration runtime setup” selecione “Azure” -> Botão “Continue”:
    • Na aba “Settings”, apenas altere o campo “Name”. Use algo como “ManagedIntegrationRuntime”. Os demais campos, mantenha como estão:
    • Na aba “Virtual Network”, configure conforme a imagem abaixo:
    • Por fim, na aba “Data flow runtime”, use as configurações abaixo:
    • Clique em “Create”.
    • Agora, voltando a página “Edit linked Service”, adicione o “Managed Private Endpoint”. Ele ficará em estado “Pending”.
    • Clique em “Save”.
    • Além disso, use a managed identity fornecida na página “Edit linked Service”, e lhe dê os seguintes acessos na storage account:
      • Reader
      • Storage Account Contributor
      • Storage Blob Data Contributor
    • Por fim, acesse a seção “Networking” da Storage Account novamente, selecione o private endpoint criado pelo Data Factory e clique no botão “Approve”. 

Configurando o Linked Service ftkRepo no Data Factory

  1. Voltando na seção “Manage” do Azure Data Factory, será necessário editar o serviço “ftkRepo”. Nele, o único campo a ser alterado é o “Connect via integration runtime” usando o “ManagedIntegrationRuntime” criado na etapa de configuração da storage account.

Clique em “Save”.

Configurando o Azure Data Explorer com Acesso Privado

  1. Acesse a seção “Networking” cluster do Data Explorer criado pelo script do FinOps Hub e acesse a aba “Private Endpoint Connections”
  2. Clique em “+ Private Endpoint”.
  3. Em “Basics” inclua um nome para o private endpoint e garanta que a região selecionada é a de implementação do seu FinOps Hub e da vnet criada para ele.
  4. Na aba “Virtual Network” selecione a rede e subrede criadas para os private endpoints.
  5. Na aba “DNS”, associar cada configuração a sua private DNS zone correspondente. Se essas zonas já existirem no ambiente e forem utilizadas de forma centralizada, usar as existentes. Caso contrário, a configuração poderá criar private DNS zones novas:
  6. Novamente será preciso configurar o private endpoint gerenciado pelo Data Factory. Para isso, acesse “Managed” -> “Linked Services” e selecione o serviço referente ao Azure Data Explorer.

     

  7. Nessa seção, o único campo a ser editado é o “Connect via integration runtime” usando o “ManagedIntegrationRuntime” criado na etapa de configuração da storage account.
  8. Agora ainda em “Manage” no Data Factory, selecione a opção “Managed Private Endpoints”. Clique em “+New” -> “Azure Data Explorer (Kusto)”
  9. Forneça um nome para o private endpoint, marque a subscription na qual o Data Explorer foi implementado e em "Cluster" selecione o recurso implementado via template do FinOps Hub:
  10. Ao final, deve-se ter dois private endpoints configurados no Azure Data Explorer:

 

Ajustes Finais e Validações de Conectividade

  • Tanto para a Storage Account quanto para o Data Explorer, acesse as configurações de rede e altere o Public network access para “Disabled”.
  • Por fim, no seu servidor local de DNS, crie o registro para o Data Explorer apontando para o forwarder correto no Azure seja ele uma máquina virtual ou o inbound endpoint do Azure Private Resolver. Não use o domínio com privatelink, mas sim o padrão, no caso do Data Explorer a forma geral é <localização>.kusto.windows.net conforme o exemplo abaixo:
  • Ao configurar os apontamentos corretamente, será possível configurar os dashboards em máquinas locais/on-premises que tenham acesso privado ao ambiente Azure. Os dashboards precisam ser capazes de resolver a URL do cluster Data Explorer que é apontado como parâmetro do Dashboard em PowerBI.

     

  • Se desejar validar a comunicação antes de configurar o dashboard de Power BI, teste da sua máquina local a resolução da URI do Data Explorer implementado para o FinOps Hub, usando nslookup conforme o exemplo abaixo.

 

Updated Apr 10, 2026
Version 1.0
No CommentsBe the first to comment