Usar pontos de extremidade privados para o Armazenamento do Azure
Você pode usar pontos de extremidade privados para suas contas do Armazenamento do Azure e permitir que clientes em uma VNet (rede virtual) acessem dados com segurança por meio de um link privado. O ponto de extremidade privado usa um endereço IP separado do espaço de endereço de rede virtual para cada serviço de discos gerenciados. O tráfego de rede entre a máquina em sua VNet e a conta do Automation atravessa a VNet e um link privado na rede principal da Microsoft, eliminando a exposição à Internet pública.
Observação
Os pontos de extremidade privados não estão disponíveis para contas de armazenamento de uso geral v1.
O uso de pontos de extremidade privados para sua conta de armazenamento permite que você:
- Proteja sua conta de armazenamento usando um link privado. Você pode configurar manualmente o firewall de armazenamento para bloquear conexões no ponto de extremidade público do serviço de armazenamento. A criação de um link privado não bloqueia automaticamente as conexões no ponto de extremidade público.
- Aumente a segurança da VNet permitindo que você bloqueie o vazamento de dados.
- Conecte-se com segurança a contas de armazenamento a partir de redes locais que se conectam à VNet usando VPN ou ExpressRoutes com emparelhamento privado.
Visão geral conceitual
Um ponto de extremidade privado é uma interface de rede especial para um serviço do Azure em sua VNet (rede virtual). Ao criar um ponto de extremidade privado para sua conta de armazenamento, ele fornece conectividade segura entre os clientes na sua VNet e o seu armazenamento. O ponto de extremidade privado recebe um endereço IP do intervalo de endereços IP da sua VNet. A conexão entre o ponto de extremidade privado e o serviço de armazenamento usa um link privado seguro.
Os aplicativos na VNet podem se conectar diretamente ao serviço de armazenamento por meio do ponto de extremidade privado, usando as mesmas cadeias de conexão e mecanismos de autorização que eles já usariam normalmente. Pontos de extremidade privados podem ser usados com todos os protocolos compatíveis com a conta de armazenamento, incluindo REST e SMB.
Os pontos de extremidade privados podem ser criados em sub-redes que usam Pontos de Extremidade de Serviço. Os clientes em uma sub-rede podem, portanto, se conectar a uma conta de armazenamento usando o ponto de extremidade privado, ao mesmo tempo que usam pontos de extremidades de serviço para acessar outras.
Quando você cria um ponto de extremidade privado para um serviço de armazenamento em sua rede virtual, uma solicitação de consentimento é enviada para aprovação para o proprietário da conta de armazenamento. Se o usuário que solicita a criação do ponto de extremidade privado também for um proprietário da conta de armazenamento, essa solicitação de consentimento será aprovada automaticamente.
Os proprietários da conta de armazenamento podem gerenciar as solicitações de consentimento e os pontos de extremidade privados na guia 'Pontos de extremidade privados' da conta de armazenamento pelo portal do Azure.
Dica
Se você quiser restringir o acesso à sua conta de armazenamento somente por meio do ponto de extremidade privado, configure o firewall de armazenamento para negar ou controlar o acesso por meio do ponto de extremidade público.
Você pode proteger sua conta de armazenamento fazendo com que ela aceite apenas conexões vindas da sua VNet. Para fazer isso, configure o firewall de armazenamento para negar o acesso por meio de seu ponto de extremidade público por padrão. Você não precisa de uma regra de firewall para permitir o tráfego de uma VNet que tem um ponto de extremidade privado, já que o firewall de armazenamento controla apenas o acesso por meio do ponto de extremidade público. Em vez disso, pontos de extremidade privados dependem do fluxo de autorização para conceder acesso de sub-redes ao serviço de armazenamento.
Observação
Ao copiar Blobs entre contas de armazenamento, o cliente deve ter acesso à rede para ambas as contas. Portanto, se você optar por usar um link privado para apenas uma conta (a origem ou o destino), verifique se o cliente tem acesso à rede para a outra conta. Para saber mais sobre outras maneiras de configurar o acesso à rede, consulte Configurar redes virtuais e firewalls do Armazenamento do Azure.
Criação de um ponto de extremidade privado
Para criar um ponto de extremidade privado usando o portal do Azure, consulte Conectar-se de forma privada a uma conta de armazenamento da experiência de Conta de Armazenamento no portal do Azure.
Para criar um ponto de extremidade privado usando o PowerShell ou o CLI do Azure, consulte um destes artigos. Ambos apresentam um aplicativo Web do Azure como o serviço de destino, mas as etapas para criar um link privado são as mesmas para uma conta do Armazenamento do Azure.
Ao criar um ponto de extremidade privado, você deve especificar a conta e o serviço de armazenamento ao qual ele se conecta.
Você precisa de um ponto de extremidade privado separado para cada recurso de armazenamento que precisa acessar, ou seja, Blobs, Data Lake Storage, Arquivos, Filas, Tabelas ou Sites Estáticos. No ponto de extremidade privado, esses serviços de armazenamento são definidos como o sub-recurso de destino da conta de armazenamento associada.
Se você criar um ponto de extremidade privado para o recurso de armazenamento do Data Lake Storage, também deve criar um para o recurso de Armazenamento de Blobs. Isso acontece porque as operações que se destinam ao ponto de extremidade do Data Lake Storage podem ser redirecionadas para o ponto de extremidade de blob. Da mesma forma, se você adicionar apenas um ponto de extremidade privado para o Armazenamento de Blobs e não para o Data Lake Storage, algumas operações (como Gerenciar ACL, Criar diretório, Excluir diretório, etc.) falharão, pois as APIs exigem um ponto de extremidade privado DFS. Ao criar um ponto de extremidade privado para ambos os recursos, você garante que todas as operações sejam concluídas com êxito.
Dica
Crie um ponto de extremidade privado separado para a instância secundária do serviço de armazenamento para aprimorar o desempenho de leitura em contas RA-GRS. Crie uma conta de armazenamento de Uso Geral v2 (Standard ou Premium).
Para ter acesso de leitura à região secundária com uma conta configurada para armazenamento com redundância geográfica, você precisa de pontos de extremidade privados separados para as instâncias primária e secundária do serviço. Você não precisa criar um ponto de extremidade privado para a instância secundária para failover. O ponto de extremidade privado se conectará automaticamente à nova instância primária após o failover. Para obter mais informações sobre as opções de redundância de armazenamento, confira Redundância no Armazenamento do Azure.
Conectar-se a um ponto de extremidade privado
Os clientes em uma VNet usando o ponto de extremidade privado devem usar a mesma cadeia de conexão para a conta de armazenamento como clientes que se conectam ao ponto de extremidade público. Confiamos na resolução DNS para rotear automaticamente as conexões da VNet para a conta de armazenamento por meio de um link privado.
Importante
Use a mesma cadeia de conexão para se conectar à conta de armazenamento usando pontos de extremidade privados como você usaria se não fosse o caso. Não se conecte à conta de armazenamento usando a URL de subdomínio do privatelink
.
Por padrão, criamos uma zona DNS privada anexada à VNet com as atualizações necessárias para os pontos de extremidade privados. No entanto, se você estiver usando seu servidor DNS, talvez seja necessário fazer alterações adicionais na configuração do DNS. A seção sobre alterações no DNS abaixo descreve as atualizações necessárias para pontos de extremidade privados.
Alterações no DNS para pontos de extremidade privados
Observação
Para obter detalhes sobre como definir suas configurações de DNS para pontos de extremidade privados, consulte Configuração de DNS do ponto de extremidade privado do Azure.
Ao criar um ponto de extremidade privado, o registro de recurso DNS CNAME da conta de armazenamento é atualizado para um alias em um subdomínio com o prefixo privatelink
. Por padrão, também criamos uma zona DNS privada, correspondente ao subdomínio privatelink
, com os registros de recurso DNS A para os pontos de extremidade privados.
Ao resolver a URL do ponto de extremidade de armazenamento de fora da VNet com o ponto de extremidade privado, ele é resolvido para o ponto de extremidade público do serviço de armazenamento. Quando resolvido da VNet que hospeda o ponto de extremidade privado, a URL do ponto de extremidade de armazenamento é resolvida para o endereço IP do ponto de extremidade privado.
Para o exemplo ilustrado acima, os registros de recurso de DNS para a conta de armazenamento 'StorageAccountA', quando resolvidos de fora da VNet que hospeda o ponto de extremidade privado, serão:
Nome | Tipo | Valor |
---|---|---|
StorageAccountA.blob.core.windows.net |
CNAME | StorageAccountA.privatelink.blob.core.windows.net |
StorageAccountA.privatelink.blob.core.windows.net |
CNAME | <Ponto de extremidade público do serviço de armazenamento> |
<Ponto de extremidade público do serviço de armazenamento> | A | <endereço IP público do serviço de armazenamento> |
Conforme mencionado anteriormente, você pode negar ou controlar o acesso dos clientes de fora da VNet por meio do ponto de extremidade público usando o firewall de armazenamento.
Os registros de recurso DNS para StorageAccountA, quando resolvido por um cliente na VNet que hospeda o ponto de extremidade privado, serão:
Nome | Tipo | Valor |
---|---|---|
StorageAccountA.blob.core.windows.net |
CNAME | StorageAccountA.privatelink.blob.core.windows.net |
StorageAccountA.privatelink.blob.core.windows.net |
Um | 10.1.1.5 |
Essa abordagem habilita o acesso à conta de armazenamento usando a mesma cadeia de conexão para os clientes na VNet que hospeda os pontos de extremidade privados, bem como para os clientes fora dela.
Se você estiver usando um servidor DNS personalizado na rede, os clientes devem resolver o FQDN do ponto de extremidade da conta de armazenamento para o endereço IP do ponto de extremidade privado. Configure o servidor DNS para delegar seu subdomínio de link privado à zona DNS privada para a VNet ou configure os registros A para StorageAccountA.privatelink.blob.core.windows.net
com o endereço IP do ponto de extremidade privado.
Dica
Ao usar um servidor DNS personalizado ou local, você deve configurá-lo para resolver o nome da conta de armazenamento no subdomínio privatelink
para o endereço IP do ponto de extremidade privado. Você pode fazer isso delegando o subdomínio privatelink
à zona DNS privada da VNet ou configurando a zona DNS em seu servidor DNS e adicionando os registros do DNS A.
Os nomes de zona DNS recomendados para pontos de extremidade privados de serviços de armazenamento, e os sub-recursos de destino do ponto final associado, são:
Serviço de armazenamento | Sub-recurso de destino | Nome da zona |
---|---|---|
Serviço Blob | blob | privatelink.blob.core.windows.net |
Data Lake Storage | dfs | privatelink.dfs.core.windows.net |
Serviço de arquivos | arquivo | privatelink.file.core.windows.net |
Serviço Fila | fila | privatelink.queue.core.windows.net |
Serviço de tabela | table | privatelink.table.core.windows.net |
Sites estáticos | web | privatelink.web.core.windows.net |
Para obter mais informações sobre como configurar seu próprio servidor DNS para dar suporte a pontos de extremidade privados, consulte os seguintes artigos:
- Resolução de nomes para recursos em redes virtuais do Azure
- Configuração de DNS para pontos de extremidade privados
Preços
Para obter detalhes de preço, confira Preço do Link Privado do Azure.
Problemas conhecidos
Tenha em mente os seguintes problemas conhecidos sobre pontos de extremidade privados para o Armazenamento do Azure.
Restrições de acesso a armazenamento para clientes em redes virtuais com pontos de extremidade privados
Os clientes em VNets com pontos de extremidade privados existentes enfrentam restrições ao acessar outras contas de armazenamento que têm pontos de extremidade privados. Por exemplo, suponha que uma VNet N1 tenha um ponto de extremidade privado para uma conta de armazenamento A1 para o armazenamento de Blobs. Se a conta de armazenamento A2 tiver um ponto de extremidade privado na VNet N2 para o armazenamento de Blob, os clientes na VNet N1 também deverão acessar o armazenamento de Blob na conta A2 usando um ponto de extremidade privado. Se a conta de armazenamento A2 não tiver nenhum ponto de extremidade privado para o armazenamento de Blobs, os clientes na VNet N1 poderão acessar o armazenamento de Blobs nessa conta sem um ponto de extremidade privado.
Essa restrição é um resultado das alterações de DNS feitas quando a conta A2 cria um ponto de extremidade privado.
Copiar Blobs entre contas de armazenamento
Você só pode copiar Blobs entre contas de armazenamento usando pontos de extremidade privados caso use a API REST do Azure ou ferramentas que usam a API REST. Essas ferramentas incluem AzCopy, Gerenciador de Armazenamento, Azure PowerShell, CLI do Azure e SDKs do Armazenamento de Blobs do Azure.
Somente há suporte para os pontos de extremidade privados que têm como destino o ponto de extremidade do recurso de armazenamento blob
ou file
. Isso inclui chamadas de API REST para contas do Data Lake Storage nas quais o ponto de extremidade do recurso blob
é referenciado explícita ou implicitamente. Ainda não há suporte para os pontos de extremidade privados que têm como destino o ponto de extremidade do recurso dfs
do Data Lake Storage. Ainda não há suporte para a cópia entre contas de armazenamento usando o protocolo NFS (sistema de arquivos de rede).