Solucionar erros de autorização do firewall de contas de armazenamento do Azure

Introdução

Reforçar o acesso ao plano de dados de uma conta de armazenamento é uma prática comum para aumentar a segurança. No entanto, ao usar recursos do Azure com integração de rede virtual (VNET) ou acessar endpoints de armazenamento a partir de IPs privados ou outros locatários, erros de autorização podem ocorrer se a origem não estiver devidamente incluída na lista de permissões. Este artigo explora cenários comuns que levam a esses erros e fornece resoluções práticas.


Cenários comuns de erros de autorização

Cenário 1: acesso de outra região

Quando a origem que faz a chamada vem de uma região diferente do Azure, o problema geralmente pode ser resolvido adicionando o endereço IP público da origem ao firewall da conta de armazenamento.


Cenário 2: falha no acesso da mesma região

Solicitações originadas na mesma região do Azure geralmente usam endereços IP privados do Azure em vez de IPs públicos. Nesse caso, incluir IPs públicos na lista de permissões falhará. Consulte Configurar firewalls e redes virtuais do Armazenamento do Azure para obter mais detalhes.


Cenário 3: restringir o acesso a uma sub-rede específica

Se os recursos não têm IPs públicos, mas o cliente deseja restringir o acesso a uma sub-rede específica, podem surgir problemas devido a limitações de visibilidade. O firewall da conta de armazenamento pode não exibir a sub-rede de destino, exigindo a inclusão manual na lista de permissões por alguém com acesso RBAC de Colaborador acesso ou superior.


Cenário 4: acesso de um locatário diferente do Azure

Quando os recursos que tentam acessar a conta de armazenamento pertencem a um locatário diferente do Azure, etapas adicionais são necessárias para incluir a sub-rede de origem na lista de permissões.


Etapas de resolução

Adicionar uma sub-rede de outro locatário

Para incluir na lista de permissões uma sub-rede de uma rede virtual em um locatário diferente do Azure, o parâmetro VirtualNetworkResourceId deve ser usado. Isso envolve especificar o URI da sub-rede no formato:

/subscriptions/<subscription-ID>/resourceGroups/<resourceGroup-Name>/providers/Microsoft.Network/virtualNetworks/<vNet-name>/subnets/<subnet-name>

Exemplo de comando do PowerShell

Para buscar o URI da sub-rede, use o seguinte comando:

$subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"

Se o usuário não tiver acesso suficiente para executar este comando no locatário de origem, ele poderá recuperar o URI da sub-rede inspecionando o corpo JSON do recurso de VNET no Azure. Isso requer acesso READ do plano de controle sobre o recurso.


Habilitar o ponto de extremidade de serviço de armazenamento

Antes de incluir a sub-rede na lista de permissões, verifique se o ponto de extremidade de serviço Microsoft.Storage ou Microsoft.Storage.Global esteja habilitado. Isso pode ser feito usando o Azure PowerShell, a CLI ou o Portal do Azure. Para obter instruções passo a passo, consulte Configurar firewalls e redes virtuais do Armazenamento do Azure.

Exemplo de comando para inclusão na lista de permissões

Depois de obter o URI da sub-rede, use o seguinte comando para adicionar a regra de rede:

Add-AzStorageAccountNetworkRule -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount" -VirtualNetworkResourceId $subnet

Verificação

Para verificar a conexão, use o comando curl com um token SAS:

curl https://storageaccountname.blob.core.windows.net/container/hello.txt?<SAS token>

Dica:

  • O sinalizador -v no comando curl habilita a saída detalhada, o que pode ajudar a identificar respostas HTTP como 403 Forbidden. Remova o sinalizador para obter uma saída mais limpa.

O exemplo abaixo mostrará a sub-rede no firewall da conta de armazenamento de destino 

Dica: O aviso destacado pode ser ignorado com segurança; ele está relacionado ao acesso READ do plano de controle sobre a sub-rede incluída na lista de permissões; o acesso ao plano de dados será permitido. 


Considerações adicionais

  1. Habilitação de ponto de extremidade de serviço: Habilitar o ponto de extremidade de serviço de armazenamento pode causar interrupções temporárias de conectividade. Para obter mais informações, consulte Pontos de extremidade de serviço de rede virtual do Azure.
  2. Pontos de extremidade privados: Pontos de extremidade privados ignoram as regras de rede do firewall, pois dependem do DNS e da conectividade pela sub-rede autorizada. Consulte Usar pontos de extremidade privados – Armazenamento do Azure.
  3. Plano de controle versus plano de dados: Entender a diferença entre operações do plano de controle e do plano de dados é crucial para a solução de problemas. Saiba mais em Operações do plano de controle e do plano de dados.

Conclusão

Erros de autorização ao acessar endpoints do Armazenamento do Azure geralmente decorrem de regras de firewall mal configuradas ou visibilidade insuficiente da sub-rede. Seguindo as etapas descritas acima, você pode solucionar e resolver esses problemas com eficácia, garantindo acesso seguro e contínuo ao plano de dados.

Deixe um comentário