Usar pontos de extremidade de serviço de rede virtual e regras para o banco de dados do Azure para PostgreSQL-servidor únicoUse Virtual Network service endpoints and rules for Azure Database for PostgreSQL - Single Server

As regras de rede virtual são um recurso de segurança de firewall que controla se o servidor do banco de dados do Azure para PostgreSQL aceita comunicações enviadas de sub-redes específicas em redes virtuais.Virtual network rules are one firewall security feature that controls whether your Azure Database for PostgreSQL server accepts communications that are sent from particular subnets in virtual networks. Este artigo explica por que o recurso de regra de rede virtual às vezes é a melhor opção para permitir a comunicação com segurança com o servidor do banco de dados do Azure para PostgreSQL.This article explains why the virtual network rule feature is sometimes your best option for securely allowing communication to your Azure Database for PostgreSQL server.

Para criar uma regra de rede virtual, primeiro deve haver uma VNet ( rede virtual ) e um ponto de extremidade de serviço de rede virtual para a regra a ser referenciada.To create a virtual network rule, there must first be a virtual network (VNet) and a virtual network service endpoint for the rule to reference. A imagem a seguir ilustra como um ponto de extremidade de serviço de rede virtual funciona com o banco de dados do Azure para PostgreSQL:The following picture illustrates how a Virtual Network service endpoint works with Azure Database for PostgreSQL:

Exemplo de como funciona um ponto de extremidade de serviço de VNet

Nota

Esse recurso está disponível em todas as regiões da nuvem pública do Azure, em que o banco de dados do Azure para PostgreSQL é implantado para servidores Uso Geral e com otimização de memória.This feature is available in all regions of Azure public cloud where Azure Database for PostgreSQL is deployed for General Purpose and Memory Optimized servers. No caso de emparelhamento VNet, se o tráfego estiver fluindo por um gateway de VNet comum com pontos de extremidade de serviço e for supostamente fluir para o par, crie uma regra de ACL/VNet para permitir que as máquinas virtuais do Azure na VNet do gateway acessem o servidor de banco de dados do Azure para PostgreSQL.In case of VNet peering, if traffic is flowing through a common VNet Gateway with service endpoints and is supposed to flow to the peer, please create an ACL/VNet rule to allow Azure Virtual Machines in the Gateway VNet to access the Azure Database for PostgreSQL server.

Terminologia e descriçãoTerminology and description

Rede virtual: Você pode ter redes virtuais associadas à sua assinatura do Azure.Virtual network: You can have virtual networks associated with your Azure subscription.

Redes Uma rede virtual contém sub-redes.Subnet: A virtual network contains subnets. Todas as VMs (máquinas virtuais) do Azure que você tem são atribuídas a sub-redes.Any Azure virtual machines (VMs) that you have are assigned to subnets. Uma sub-rede pode conter várias VMs ou outros nós de computação.One subnet can contain multiple VMs or other compute nodes. Os nós de computação que estão fora da sua rede virtual não podem acessar sua rede virtual, a menos que você configure sua segurança para permitir o acesso.Compute nodes that are outside of your virtual network cannot access your virtual network unless you configure your security to allow access.

Ponto de extremidade de serviço de rede virtual: Um ponto de extremidade de serviço de rede virtual é uma sub-rede cujos valores de propriedade incluem um ou mais nomes formais de tipo de serviço do Azure.Virtual Network service endpoint: A Virtual Network service endpoint is a subnet whose property values include one or more formal Azure service type names. Neste artigo, estamos interessados no nome do tipo do Microsoft. SQL, que se refere ao serviço do Azure chamado banco de dados SQL.In this article we are interested in the type name of Microsoft.Sql, which refers to the Azure service named SQL Database. Essa marca de serviço também se aplica aos serviços de banco de dados do Azure para PostgreSQL e MySQL.This service tag also applies to the Azure Database for PostgreSQL and MySQL services. É importante observar ao aplicar a marca de serviço Microsoft. SQL a um ponto de extremidade de serviço de VNet. ele configurará o tráfego do ponto de extremidade de serviço para todos os servidores do banco de dados SQL do Azure, banco de dados do Azure para PostgreSQL e banco de dados do Azure para MySQLIt is important to note when applying the Microsoft.Sql service tag to a VNet service endpoint it will configure service endpoint traffic for all Azure SQL Database, Azure Database for PostgreSQL and Azure Database for MySQL servers on the subnet.

Regra de rede virtual: Uma regra de rede virtual para o servidor do banco de dados do Azure para PostgreSQL é uma sub-rede listada na lista de controle de acesso (ACL) do seu banco de dados do Azure para o servidor PostgreSQL.Virtual network rule: A virtual network rule for your Azure Database for PostgreSQL server is a subnet that is listed in the access control list (ACL) of your Azure Database for PostgreSQL server. Para estar na ACL para o servidor do banco de dados do Azure para PostgreSQL, a sub-rede deve conter o nome do tipo Microsoft. SQL .To be in the ACL for your Azure Database for PostgreSQL server, the subnet must contain the Microsoft.Sql type name.

Uma regra de rede virtual informa o servidor do banco de dados do Azure para PostgreSQL para aceitar comunicações de cada nó que está na sub-rede.A virtual network rule tells your Azure Database for PostgreSQL server to accept communications from every node that is on the subnet.

Benefícios de uma regra de rede virtualBenefits of a virtual network rule

Até que você execute uma ação, as VMs em suas sub-redes não podem se comunicar com o servidor do banco de dados do Azure para PostgreSQL.Until you take action, the VMs on your subnets cannot communicate with your Azure Database for PostgreSQL server. Uma ação que estabelece a comunicação é a criação de uma regra de rede virtual.One action that establishes the communication is the creation of a virtual network rule. A lógica para escolher a abordagem de regra de VNet requer uma discussão de comparação e contraste envolvendo as opções de segurança concorrentes oferecidas pelo firewall.The rationale for choosing the VNet rule approach requires a compare-and-contrast discussion involving the competing security options offered by the firewall.

R.A. Permitir acesso aos serviços do AzureAllow access to Azure services

O painel segurança de conexão tem um botão ligar/desligar que é rotulado como permitir o acesso aos serviços do Azure.The Connection security pane has an ON/OFF button that is labeled Allow access to Azure services. A configuração on permite a comunicação de todos os endereços IP do Azure e de todas as sub-redes do Azure.The ON setting allows communications from all Azure IP addresses and all Azure subnets. Esses IPs ou sub-redes do Azure podem não ser de propriedade de você.These Azure IPs or subnets might not be owned by you. Essa configuração on provavelmente é mais aberta do que você deseja que o banco de dados do banco de dados do Azure para PostgreSQL seja.This ON setting is probably more open than you want your Azure Database for PostgreSQL Database to be. O recurso de regra de rede virtual oferece um controle granular muito mais detalhado.The virtual network rule feature offers much finer granular control.

B.B. Regras de IPIP rules

O Firewall do banco de dados do Azure para PostgreSQL permite que você especifique os intervalos de endereços IP dos quais as comunicações são aceitas no banco de dados do Azure para PostgreSQL.The Azure Database for PostgreSQL firewall allows you to specify IP address ranges from which communications are accepted into the Azure Database for PostgreSQL Database. Essa abordagem é adequada para endereços IP estáveis que estão fora da rede privada do Azure.This approach is fine for stable IP addresses that are outside the Azure private network. Mas muitos nós dentro da rede privada do Azure são configurados com endereços IP dinâmicos .But many nodes inside the Azure private network are configured with dynamic IP addresses. Os endereços IP dinâmicos podem ser alterados, como quando a VM é reiniciada.Dynamic IP addresses might change, such as when your VM is restarted. Seria ilusório especificar um endereço IP dinâmico em uma regra de firewall em um ambiente de produção.It would be folly to specify a dynamic IP address in a firewall rule, in a production environment.

Você pode recuperar a opção de IP obtendo um endereço IP estático para sua VM.You can salvage the IP option by obtaining a static IP address for your VM. Para obter detalhes, consulte configurar endereços IP privados para uma máquina virtual usando o portal do Azure.For details, see Configure private IP addresses for a virtual machine by using the Azure portal.

No entanto, a abordagem de IP estático pode se tornar difícil de gerenciar e é dispendiosa quando feita em escala.However, the static IP approach can become difficult to manage, and it is costly when done at scale. As regras de rede virtual são mais fáceis de estabelecer e gerenciar.Virtual network rules are easier to establish and to manage.

C.C. Ainda não é possível ter o banco de dados do Azure para PostgreSQL em uma sub-rede sem definir um ponto de extremidade de serviçoCannot yet have Azure Database for PostgreSQL on a subnet without defining a service endpoint

Se seu Microsoft. SQL Server era um nó em uma sub-rede em sua rede virtual, todos os nós na rede virtual podem se comunicar com o servidor do banco de dados do Azure para PostgreSQL.If your Microsoft.Sql server was a node on a subnet in your virtual network, all nodes within the virtual network could communicate with your Azure Database for PostgreSQL server. Nesse caso, suas VMs podem se comunicar com o banco de dados do Azure para PostgreSQL sem a necessidade de nenhuma regra de rede virtual ou regras de IP.In this case, your VMs could communicate with Azure Database for PostgreSQL without needing any virtual network rules or IP rules.

No entanto, a partir de agosto de 2018, o serviço banco de dados do Azure para PostgreSQL ainda não está entre os serviços que podem ser atribuídos diretamente a uma sub-rede.However as of August 2018, the Azure Database for PostgreSQL service is not yet among the services that can be assigned directly to a subnet.

Detalhes sobre regras de rede virtualDetails about virtual network rules

Esta seção descreve vários detalhes sobre as regras de rede virtual.This section describes several details about virtual network rules.

Apenas uma região geográficaOnly one geographic region

Cada ponto de extremidade de serviço de rede virtual aplica-se a apenas uma região do Azure.Each Virtual Network service endpoint applies to only one Azure region. O ponto de extremidade não permite que outras regiões aceitem comunicação da sub-rede.The endpoint does not enable other regions to accept communication from the subnet.

Qualquer regra de rede virtual é limitada à região à qual seu ponto de extremidade subjacente se aplica.Any virtual network rule is limited to the region that its underlying endpoint applies to.

Nível de servidor, não nível de banco de dadosServer-level, not database-level

Cada regra de rede virtual se aplica a todo o banco de dados do Azure para servidor PostgreSQL, não apenas a um banco de dados específico no servidor.Each virtual network rule applies to your whole Azure Database for PostgreSQL server, not just to one particular database on the server. Em outras palavras, a regra de rede virtual se aplica no nível do servidor, não no nível do banco de dados.In other words, virtual network rule applies at the server-level, not at the database-level.

Funções de administração de segurançaSecurity administration roles

Há uma separação de funções de segurança na administração de pontos de extremidade de serviço de rede virtual.There is a separation of security roles in the administration of Virtual Network service endpoints. A ação é necessária de cada uma das seguintes funções:Action is required from each of the following roles:

  • Administrador de rede:  Ative o ponto de extremidade.Network Admin:   Turn on the endpoint.
  • Administrador do banco de dados:  Atualize a lista de controle de acesso (ACL) para adicionar a sub-rede fornecida ao banco de dados do Azure para o servidor PostgreSQL.Database Admin:   Update the access control list (ACL) to add the given subnet to the Azure Database for PostgreSQL server.

Alternativa de RBAC:RBAC alternative:

As funções de administrador de rede e administrador de banco de dados têm mais recursos do que o necessário para gerenciar regras de rede virtual.The roles of Network Admin and Database Admin have more capabilities than are needed to manage virtual network rules. Apenas um subconjunto de seus recursos é necessário.Only a subset of their capabilities is needed.

Você tem a opção de usar o controle de acesso baseado em função (RBAC) no Azure para criar uma única função personalizada que tem apenas o subconjunto necessário de recursos.You have the option of using role-based access control (RBAC) in Azure to create a single custom role that has only the necessary subset of capabilities. A função personalizada pode ser usada em vez de envolver o administrador de rede ou o administrador de banco de dados. A área da superfície de sua exposição de segurança será menor se você adicionar um usuário a uma função personalizada, em vez de adicionar o usuário às outras duas principais funções de administrador.The custom role could be used instead of involving either the Network Admin or the Database Admin. The surface area of your security exposure is lower if you add a user to a custom role, versus adding the user to the other two major administrator roles.

Nota

Em alguns casos, o banco de dados do Azure para PostgreSQL e a sub-rede VNet estão em assinaturas diferentes.In some cases the Azure Database for PostgreSQL and the VNet-subnet are in different subscriptions. Nesses casos, você deve garantir as seguintes configurações:In these cases you must ensure the following configurations:

  • Ambas as assinaturas devem estar no mesmo locatário Azure Active Directory.Both subscriptions must be in the same Azure Active Directory tenant.
  • O usuário tem as permissões necessárias para iniciar operações, como habilitar pontos de extremidade de serviço e adicionar uma sub-rede de rede virtual ao servidor especificado.The user has the required permissions to initiate operations, such as enabling service endpoints and adding a VNet-subnet to the given Server.
  • Verifique se a assinatura tem o provedor de recursos Microsoft. SQL registrado.Make sure that both the subscription has the Microsoft.Sql resource provider registered. Para obter mais informações, consulte Resource-Manager-RegistrationFor more information refer resource-manager-registration

LimitaçõesLimitations

Para o banco de dados do Azure para PostgreSQL, o recurso de regras de rede virtual tem as seguintes limitações:For Azure Database for PostgreSQL, the virtual network rules feature has the following limitations:

  • Um aplicativo Web pode ser mapeado para um IP privado em uma VNet/sub-rede.A Web App can be mapped to a private IP in a VNet/subnet. Mesmo que os pontos de extremidade de serviço sejam ativados da VNet/sub-rede determinada, as conexões do aplicativo Web para o servidor terão uma origem de IP público do Azure, não uma origem de VNet/sub-rede.Even if service endpoints are turned ON from the given VNet/subnet, connections from the Web App to the server will have an Azure public IP source, not a VNet/subnet source. Para habilitar a conectividade de um aplicativo Web para um servidor que tem regras de firewall de VNet, você deve permitir que os serviços do Azure acessem o servidor no servidor.To enable connectivity from a Web App to a server that has VNet firewall rules, you must Allow Azure services to access server on the server.

  • No firewall do banco de dados do Azure para PostgreSQL, cada regra de rede virtual faz referência a uma sub-rede.In the firewall for your Azure Database for PostgreSQL, each virtual network rule references a subnet. Todas essas sub-redes referenciadas devem ser hospedadas na mesma região geográfica que hospeda o banco de dados do Azure para PostgreSQL.All these referenced subnets must be hosted in the same geographic region that hosts the Azure Database for PostgreSQL.

  • Cada servidor de banco de dados do Azure para PostgreSQL pode ter até 128 entradas de ACL para qualquer rede virtual específica.Each Azure Database for PostgreSQL server can have up to 128 ACL entries for any given virtual network.

  • As regras de rede virtual se aplicam somente a redes virtuais Azure Resource Manager; e não para redes de modelo de implantação clássica .Virtual network rules apply only to Azure Resource Manager virtual networks; and not to classic deployment model networks.

  • A ativação de pontos de extremidade de serviço de rede virtual para o banco de dados do Azure para PostgreSQL usando a marca de serviço Microsoft. SQL também habilita os pontos de extremidade para todos os serviços de banco de dados do Azure: Banco de dados do Azure para MySQL, banco de dados do Azure para PostgreSQL, banco de dados SQL do Azure e Azure SQL Data Warehouse.Turning ON virtual network service endpoints to Azure Database for PostgreSQL using the Microsoft.Sql service tag also enables the endpoints for all Azure Database services: Azure Database for MySQL, Azure Database for PostgreSQL, Azure SQL Database and Azure SQL Data Warehouse.

  • Suporte para pontos finais de serviço da VNet é apenas para fins gerais e memória otimizada de servidores.Support for VNet service endpoints is only for General Purpose and Memory Optimized servers.

  • No firewall, os intervalos de endereços IP se aplicam aos seguintes itens de rede, mas as regras de rede virtual não:On the firewall, IP address ranges do apply to the following networking items, but virtual network rules do not:

ExpressRouteExpressRoute

Se sua rede estiver conectada à rede do Azure por meio do uso do ExpressRoute, cada circuito será configurado com dois endereços IP públicos no Microsoft Edge.If your network is connected to the Azure network through use of ExpressRoute, each circuit is configured with two public IP addresses at the Microsoft Edge. Os dois endereços IP são usados para se conectar aos serviços da Microsoft, como o armazenamento do Azure, usando o emparelhamento público do Azure.The two IP addresses are used to connect to Microsoft Services, such as to Azure Storage, by using Azure Public Peering.

Para permitir a comunicação do seu circuito com o banco de dados do Azure para PostgreSQL, você deve criar regras de rede IP para os endereços IP públicos de seus circuitos.To allow communication from your circuit to Azure Database for PostgreSQL, you must create IP network rules for the public IP addresses of your circuits. Para localizar os endereços IP públicos do circuito do ExpressRoute, abra um tíquete de suporte com o ExpressRoute usando o portal do Azure.In order to find the public IP addresses of your ExpressRoute circuit, open a support ticket with ExpressRoute by using the Azure portal.

Adicionando uma regra de firewall de VNET ao seu servidor sem ativar os pontos de extremidade de serviço de VNETAdding a VNET Firewall rule to your server without turning On VNET Service Endpoints

Simplesmente definir uma regra de firewall não ajuda a proteger o servidor para a VNet.Merely setting a Firewall rule does not help secure the server to the VNet. Você também deve ativar os pontos de extremidade de serviço da VNet para que a segurança entre em vigor.You must also turn VNet service endpoints On for the security to take effect. Quando você ativa os pontos de extremidade deserviço, sua sub-rede VNet experimenta o tempo de inatividade até que conclua a transição de desativado para ativado.When you turn service endpoints On, your VNet-subnet experiences downtime until it completes the transition from Off to On. Isso é especialmente verdadeiro no contexto de grandes VNets.This is especially true in the context of large VNets. Você pode usar o sinalizador IgnoreMissingServiceEndpoint para reduzir ou eliminar o tempo de inatividade durante a transição.You can use the IgnoreMissingServiceEndpoint flag to reduce or eliminate the downtime during transition.

Você pode definir o sinalizador IgnoreMissingServiceEndpoint usando o CLI do Azure ou o Portal.You can set the IgnoreMissingServiceEndpoint flag by using the Azure CLI or portal.

Passos SeguintesNext steps

Para obter artigos sobre a criação de regras de VNet, consulte:For articles on creating VNet rules, see: