Veeam B&R – Como configurar repositórios Azure privados

 

Assim como o post anterior, nesse post irei demonstrar como configurar repositório da Azure de forma privada para garantir que durante o backup todo o tráfego para a Azure seja feito em uma rede privada, evitando assim que os dados sejam trafegados via internet.

 

 

Pré-Requisitos

 

  • Neste tutorial irei utilizar uma VPN client-to-site para demonstrar a conexão privada com a Azure. Os passos para essa configuração não serão cobertos nesse post.
  • No meu ambiente da Azure eu já possuo uma Virtual Network, Subnets e Network Security Group, a criação desses itens não serão cobertos no post.
  • O tutorial foi criado utilizando a versão do Veeam Backup & Replication 12.3.1.
  • Estou me baseando KB 4373 para os passos descritos nesse post: How to Connect to an Object Storage Repository via Azure Blob Private Endpoints
  • O servidor do Veeam Backup & Replication, Gateway que será utilizado para conexão com a Azure e também o Archive Appliance (no caso da utilização do Archive Tier) precisam ter acesso as CRLs utilizadas pela Azure na porta 80 (HTTP).

 

Criando Private DNS Zone

 

O primeiro passo que precisamos fazer é criar uma zona de DNS privada para resolver o nome do storage account quando fomos criar o repositório no Veeam Backup & Replication. No meu lab utilizarei o serviço de DNS privado da própria Azure, mas é possível que esse não seja o ideal em outros ambientes. A Microsoft tem uma série de cenários nesse link que podem ser consultados: Private Endpoint DNS Integration Scenarios

Para criar o DNS privado na Azure, escolha a opção de Private DNS Zone:

 

Escolha a Subscription, Resource Group e o nome da zona. A zona deve ter o nom privatelink.blob.core.windows.net.

 

Não é necessário alterar mais nenhuma opção, apenas clique em Create.

 

A zona será criada apenas com o registro de SOA. Não há necessidade de criarmos nada manualmente nesse momento.

 

 

Criando Storage Account

 

Agora vamos criar o Storage Account que será utilizado como repositório no VBR.
Escolha um nome, o Resource Group, a Região e o Tipo de Stoarge Account. No meu caso estou utilizando as opções de menor custo, mas aí depende de cada ambiente as opções que melhor se adequam.

 

Em Advanced não precisamos mudar nada, mas em Networking vamos escolher a opção “Disable Public Access”:

 

Em Data Protection vamos desabilitar o Soft Delete. Esse passo é muito importante porque não é suportado o uso do Soft Delete.

 

Nesse exemplo não utilizarei Imutabilidade, então podemos apenas prosseguir com a criação.

 

Com o Storage Account criado, vamos até a seção de “Security + Networking” e depois “Access Key”.
Vamos anotar o nome do Storage Account e a Access Key, usaremos esses dados para criação do repositório no VBR posteriormente.

 

Criando Private Endpoint

 

Agora que criamos o Storage Account, precisamos criar um Private Endpoint para que a comunicação com esse Storage Account via rede privada seja possível. O Private Endpoint nada mais é que uma interface de rede que conseguimos associar com diferentes serviços na Azure. Essa interface de rede vai ter o IP privado da vNet que desejarmos, assim será possível acessar o serviço da Azure de forma privada. Esse artigo da Microsoft explica melhor sobre Private Endpoint: What is a private endpoint?

Para criar o Private Endpoint iremos direto no Storage Account -> Private Endpoint connections.

 

Escolha um nome, o resource group, e a região para o Private Endpoint.

 

Depois temos que escolher um resource. Como vamos utilizar o storage account como repositório devemos escolher a opção blob.

 

Em Virtual Network devemos escolher em qual vNet e Subnet a interface de rede será criada. Além disso, podemos escolher se o IP alocado será dinâmico ou fixo. No meu caso deixarei o padrão, mas caso seja necessário é possível fixar um IP. O restante das opções deixaremos o padrão.

 

Em DNS vamos marcar Yes na opção de integrar com uma Zona de DNS e escolher a Subscription e Resource Group onde criamos a Zona Privada no primeiro passo.

 

O restante das opções podem ficar como o padrão e vamos criar o Private Endpoint.

 

Com o Private Endpoint criado podemos ir em Settings > DNS Configuration para verificar as configurações de DNS.
Um IP da vNet que escolhemos foi associado e agora temos um FQDN associado com o Private Endpoint.

 

Se formos até a Zona Privada que criamos anteriormente, vamos ver que um registro A foi criado automaticamente.

 

 

Preparando o VBR

 

Agora que temos tudo criado do lado da Azure podemos iniciar a preparação do VBR. Assim como no caso da AWS, precisamos criar algumas chaves de registro.

Se queremos utilizar o Archive Tier e queremos que o Helper Appliance utilize apenas IP privado, é necessário criar a chave de registro a seguir:

New-ItemProperty -Path "HKLM:\SOFTWARE\Veeam\Veeam Backup and Replication\" -Name "ArchiveFreezingUsePrivateIpForAzureAppliance" -Value "1" -PropertyType "DWORD"

 

Se queremos utilizar o Helper Appliance com IP Privado para executar o Health Check das cadeias de backup criadas na Azure, é necessário criar a chave de registro abaixo:

New-ItemProperty -Path 'HKLM:\SOFTWARE\Veeam\Veeam Backup and Replication\' -Name 'ArchiveUsePrivateIpForAzureHelperAppliance ' -Value "1" -PropertyType DWORD -Force

 

Se o Gateway que fará a conexão com a Azure para envio dos dados não possui acesso direto a internet, precisamos desabilitar a checagem da revogação de certificados com a chave de registro abaixo:

New-ItemProperty -Path 'HKLM:\SOFTWARE\Veeam\Veeam Backup and Replication\' -Name 'ObjectStorageTlsRevocationCheck' -Value "0" -PropertyType DWORD -Force

 

Caso o Gateway seja um servidor Linux, é necessário alterar o arquivo “/etc/VeeamAgentConfig” e adicionar a linha “ObjectStorageTlsRevocationCheck=0“. Caso o arquivo não exista ele deve ser criado manualmente.
Após a criação das chaves de registro reinicie o servidor do Veeam Backup & Replication e os Gateways caso esteja utilizando para garantir que as modificações foram aplicadas.

Agora que temos as alterações feitas falta apenas a resolução do FQDN do Private Endpoint. No meu exemplo, se tento resolver o nome que criado no passo anterior do Private Endpoint recebo o resultado abaixo:

 

Está resolvendo o IP publico porque meu lab não conhece a Zona Privada que criamos na Azure. Nesse caso, existem lagumas soluções:

  • A mais simples é criar no Hosts do servidor que fará a conexão com a Azure o hostname do nosso Private Endpoint. Nesse caso ficaria da forma abaixo:
    • 192.168.1.4 stgrepovbrprivate.privatelink.blob.core.windows.net
    • 192.168.1.4 stgrepovbrprivate.blob.core.windows.net
  • Outra forma seria criar Conditional Fowarders ou ainda ter essa zona internamente em sua rede local.

Independente da forma escolhida, é necessário que o servidor que vai fazer a conexão com a Azure, seja o VBR ou um Gateway específico, seja capaz de resolver os nomes para o IP privado.
Depois dessa configuração podemos testar a conexão com o endereço na porta 443. Se conectar corretamente já podemos criar o repositório.

 

Criando Repositório

 

Agora já podemos criar o repositório. Em meu caso irei criar um repositório simples da Azure para utilizar como alvo em um job directo to cloud.

 

Escolhemos a opção de Blob.

 

Em Account vamos adicionar a credencial com o nome do storage account e a Access Key.
Em Connection Mode, escolha o Gateway que fará a conexão, no meu caso ;e o próprio VBR, então vou manter a opção de Direct.

 

Escolha o Container e a Folder e também as opções do repositório. No meu caso deixarei tudo como o padrão.

 

O restante das opções vou manter o padrão porque não utilizarei o Helper Appliance para esse teste.

 

Testando repositório e conexão

 

Para validar o repositório e a conexão com a Azure eu criei um job simples criando o backup diretamente na Azure.

 

Iniciando o job podemos ver que a transferência de dados já começou.

 

No Resource Monitor podemos ver a conexão com o FQDN do repositório, o IP público é da VPN que estou utilizando com a Azure.

 

Além disso, se verificarmos os logs vamos ver a conexão no IP privado também.

 

 

Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *