Использование конечных точек службы и правил виртуальной сети для базы данных Azure для PostgreSQL — один серверUse Virtual Network service endpoints and rules for Azure Database for PostgreSQL - Single Server

Правила виртуальной сети — это одна из функций безопасности брандмауэра, которая определяет, будет ли сервер базы данных Azure для PostgreSQL принимать подключения, отправляемые из определенных подсетей в виртуальные сети.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. В этой статье объясняется, почему правила виртуальной сети иногда являются лучшим вариантом для защиты подключений к серверу Базы данных Azure для 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.

Чтобы создать правило виртуальной сети, требуется виртуальная сеть и конечная точка службы для виртуальной сети, используемая для ссылки.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. На следующем рисунке показано, как конечная точка службы для виртуальной сети работает с Базой данных Azure для PostgreSQL.The following picture illustrates how a Virtual Network service endpoint works with Azure Database for PostgreSQL:

Пример того, как работает конечная точка службы виртуальной сети

Примечание

Эта функция доступна во всех облаках общедоступного облака Azure, где База данных Azure для PostgreSQL развернута для серверов общего назначения и оптимизирована для операций в памяти.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. В случае пиринга между виртуальными сетями, если трафик проходит через общий шлюз виртуальной сети с конечными точками и должен попадать в кэширующий узел, создайте правило ACL или виртуальной сети, чтобы разрешить виртуальным машинам Azure в шлюзе виртуальной сети доступ к Базе данных Azure для сервера 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.

Можно также использовать частную ссылку для подключений.You can also consider using Private Link for connections. Частная ссылка предоставляет частный IP-адрес в виртуальной сети для сервера базы данных Azure для PostgreSQL.Private Link provides a private IP address in your VNet for the Azure Database for PostgreSQL server.

Терминология и описаниеTerminology and description

Виртуальная сеть. С подпиской Azure могут быть связаны виртуальные сети.Virtual network: You can have virtual networks associated with your Azure subscription.

Подсеть. Виртуальная сеть содержит подсети.Subnet: A virtual network contains subnets. Все виртуальные машины Azure в виртуальной сети назначаются в подсеть.Any Azure virtual machines (VMs) within the VNet is assigned to a subnet. Подсеть может содержать несколько виртуальных машин и (или) других расчетных узлов.A subnet can contain multiple VMs and/or other compute nodes. Вычислительные узлы, которые находятся вне вашей виртуальной сети, не имеют доступа к ней, если только не настроить систему безопасности таким образом, чтобы предоставить им доступ.Compute nodes that are outside of your virtual network cannot access your virtual network unless you configure your security to allow access.

Конечная точка службы для виртуальной сети. Конечная точка службы для виртуальной сети — это подсеть, значения свойств которой включают в себя одно формальное имя типа службы 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. В этой статье мы рассмотрим тип Microsoft.Sql, который относится к службе Azure, которая называется Базой данных SQL.In this article we are interested in the type name of Microsoft.Sql, which refers to the Azure service named SQL Database. Этот тег службы также применяется к службам "База данных Azure для PostgreSQL" и "База данных Azure для MySQL".This service tag also applies to the Azure Database for PostgreSQL and MySQL services. Важно отметить, что при применении тега службы Microsoft. SQL к конечной точке службы виртуальной сети будет настраиваться трафик конечной точки службы для служб базы данных Azure: база данных SQL, Azure синапсе Analytics, база данных Azure для PostgreSQL и серверы базы данных Azure для MySQL в подсети.It is important to note when applying the Microsoft.Sql service tag to a VNet service endpoint it will configure service endpoint traffic for Azure Database Services: SQL Database, Azure Synapse Analytics, Azure Database for PostgreSQL and Azure Database for MySQL servers on the subnet.

Правило виртуальной сети. Правило виртуальной сети для сервера базы данных Azure для PostgreSQL — это подсеть, которая указана в списке управления доступом (ACL) сервера Базы данных Azure для 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. Для включения в ACL для сервера базы данных Azure для PostgreSQL подсеть должна содержать имя типа Microsoft.Sql.To be in the ACL for your Azure Database for PostgreSQL server, the subnet must contain the Microsoft.Sql type name.

Правило виртуальной сети предписывает серверу Базы данных Azure для PostgreSQL принимать подключения от всех узлов, находящихся в подсети.A virtual network rule tells your Azure Database for PostgreSQL server to accept communications from every node that is on the subnet.

Преимущества правила виртуальной сетиBenefits of a virtual network rule

Пока вы не выполните действия, виртуальные машины в подсетях не смогут взаимодействовать с сервером базы данных Azure для PostgreSQL.Until you take action, the VMs in your subnet(s) cannot communicate with your Azure Database for PostgreSQL server. Создание правила виртуальной сети — это единственное действие, которое устанавливает подключение.One action that establishes the communication is the creation of a virtual network rule. Чтобы обосновать выбор подхода на основе правил виртуальной сети, требуется сравнить преимущества и недостатки этого подхода с конкурирующими функциями безопасности, предоставляемыми брандмауэром.The rationale for choosing the VNet rule approach requires a compare-and-contrast discussion involving the competing security options offered by the firewall.

Разрешение доступа службам AzureAllow access to Azure services

На панели безопасности подключения есть кнопка Вкл./Выкл. с надписью Разрешить доступ к службам Azure.The Connection security pane has an ON/OFF button that is labeled Allow access to Azure services. Значение ON (Вкл.) разрешает подключение со всех IP-адресов Azure и из всех подсетей Azure.The ON setting allows communications from all Azure IP addresses and all Azure subnets. Эти Azure IP-адреса и подсети могут принадлежать не вам.These Azure IPs or subnets might not be owned by you. Возможно, значение Вкл. делает вашу систему более открытой, чем требуется для Базы данных Azure для PostgreSQL.This ON setting is probably more open than you want your Azure Database for PostgreSQL Database to be. Правила виртуальной сети обеспечивают более детализированный контроль.The virtual network rule feature offers much finer granular control.

Правила фильтрации IP-адресовIP rules

Брандмауэр Базы данных Azure для PostgreSQL позволяет указать диапазоны IP-адресов, подключения с которых принимаются Базой данных Azure для 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. Эта методика хорошо подходит для постоянных IP-адресов, которые находятся за пределами частной сети Azure.This approach is fine for stable IP addresses that are outside the Azure private network. Однако за пределами частной сети Azure используется множество динамических IP-адресов.But many nodes inside the Azure private network are configured with dynamic IP addresses. Динамические IP-адреса могут изменяться, например при перезапуске виртуальной машины.Dynamic IP addresses might change, such as when your VM is restarted. Было бы неразумно указывать динамический IP-адрес в правиле брандмауэра в рабочей среде.It would be folly to specify a dynamic IP address in a firewall rule, in a production environment.

Можно сохранить выбранный IP-адрес, присвоив виртуальной машине статический IP-адрес.You can salvage the IP option by obtaining a static IP address for your VM. Дополнительные сведения см. в разделе Настройка частных IP-адресов для виртуальной машины с помощью портала Azure.For details, see Configure private IP addresses for a virtual machine by using the Azure portal.

Однако применение статических IP-адресов может усложнить управление и создать дополнительные расходы при увеличении масштаба среды.However, the static IP approach can become difficult to manage, and it is costly when done at scale. Правила виртуальной сети проще устанавливать и контролировать.Virtual network rules are easier to establish and to manage.

Сведения о правилах виртуальной сетиDetails about virtual network rules

В этом разделе приводятся некоторые сведения о правилах виртуальной сети.This section describes several details about virtual network rules.

Только один географический регионOnly one geographic region

Каждая конечная точка службы для виртуальной сети может использоваться только в одном регионе Azure.Each Virtual Network service endpoint applies to only one Azure region. Конечная точка не поддерживает прием подключений из подсети в других регионах.The endpoint does not enable other regions to accept communication from the subnet.

Любое правило виртуальной сети ограничена регионом, в котором используется базовая конечная точка.Any virtual network rule is limited to the region that its underlying endpoint applies to.

На уровне сервера, а не базы данныхServer-level, not database-level

Каждое правило виртуальной сети применяется ко всему серверу Базы данных Azure для PostgreSQL, не только к одной конкретной базе данных на сервере.Each virtual network rule applies to your whole Azure Database for PostgreSQL server, not just to one particular database on the server. Другими словами, правило виртуальной сети применяется на уровне сервера,а не на уровне базы данных.In other words, virtual network rule applies at the server-level, not at the database-level.

Роли администратора безопасностиSecurity administration roles

Роли безопасности для администрирования конечных точек служб для виртуальной сети разделены.There is a separation of security roles in the administration of Virtual Network service endpoints. Требуется действие каждой из следующих ролей:Action is required from each of the following roles:

  • администратор сети:   включение конечной точки;Network Admin:   Turn on the endpoint.
  • администратор базы данных:   обновление списка управления доступом (ACL) для добавления данной подсети на сервер Базы данных Azure для PostgreSQL.Database Admin:   Update the access control list (ACL) to add the given subnet to the Azure Database for PostgreSQL server.

Альтернатива Azure RBAC:Azure RBAC alternative:

Роли администратора сети и администратора базы данных имеют больше возможностей, чем требуется для управления правилами виртуальной сети.The roles of Network Admin and Database Admin have more capabilities than are needed to manage virtual network rules. На самом деле для этого требуется только часть их возможностей.Only a subset of their capabilities is needed.

Вы можете использовать Управление доступом на основе ролей Azure (Azure RBAC) в Azure, чтобы создать одну настраиваемую роль, имеющую только необходимое подмножество возможностей.You have the option of using Azure role-based access control (Azure RBAC) in Azure to create a single custom role that has only the necessary subset of capabilities. Вместо администратора сети или администратора базы данных можно использовать пользовательскую роль. При добавлении пользователя в пользовательскую роль контактная зона снижает уровень безопасности, а не добавляет пользователя к двум другим основным ролям администратора.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.

Примечание

Иногда База данных Azure для PostgreSQL и подсеть виртуальной сети относятся к разным подпискам.In some cases the Azure Database for PostgreSQL and the VNet-subnet are in different subscriptions. В этих случаях необходимо обеспечить следующую конфигурацию:In these cases you must ensure the following configurations:

  • Обе подписки должны быть в одном клиенте Azure Active Directory.Both subscriptions must be in the same Azure Active Directory tenant.
  • Пользователь должен иметь необходимые разрешения для запуска операций, например для включения конечных точек службы или добавления подсети виртуальной сети к заданному серверу.The user has the required permissions to initiate operations, such as enabling service endpoints and adding a VNet-subnet to the given Server.
  • Убедитесь, что у обеих подписок есть зарегистрированный поставщик ресурсов Microsoft. SQL и Microsoft. дбфорпостгрескл .Make sure that both the subscription have the Microsoft.Sql and Microsoft.DBforPostgreSQL resource provider registered. Дополнительные сведения см. в разделе resource-manager-registrationFor more information refer resource-manager-registration

ОграниченияLimitations

Для Базы данных Azure для PostgreSQL правила виртуальной сети имеют следующие ограничения:For Azure Database for PostgreSQL, the virtual network rules feature has the following limitations:

  • Веб-приложения можно сопоставить с частным IP-адресом в виртуальной сети или подсети.A Web App can be mapped to a private IP in a VNet/subnet. Даже если конечные точки службы включены в определенной виртуальной сети или подсети, при подключении из веб-приложения к серверу в качестве источника будет использоваться открытый IP-адрес Azure, виртуальная сеть или подсеть.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. Чтобы обеспечить подключение из веб-приложения к серверу, на котором установлены правила брандмауэра виртуальной сети, включите параметр Разрешить службам Azure доступ к серверу на сервере.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.

  • В брандмауэре для Базы данных Azure для PostgreSQL каждое правило виртуальной сети ссылается на подсеть.In the firewall for your Azure Database for PostgreSQL, each virtual network rule references a subnet. Все такие упомянутые подсети должны размещаться в том же географическом регионе, где размещена База данных Azure для PostgreSQL.All these referenced subnets must be hosted in the same geographic region that hosts the Azure Database for PostgreSQL.

  • Каждый сервер Базы данных Azure для PostgreSQL может использовать до 128 записей ACL для любой заданной виртуальной сети.Each Azure Database for PostgreSQL server can have up to 128 ACL entries for any given virtual network.

  • Правила виртуальной сети применяются только к виртуальным сетям Azure Resource Manager, но не к сетям на основе классической модели развертывания.Virtual network rules apply only to Azure Resource Manager virtual networks; and not to classic deployment model networks.

  • Включение конечных точек службы виртуальной сети в базу данных Azure для PostgreSQL с помощью тега службы Microsoft. SQL также позволяет использовать конечные точки для всех служб базы данных Azure: база данных Azure для MySQL, база данных Azure для PostgreSQL, база данных SQL Azure и аналитика синапсе Azure.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 Synapse Analytics.

  • Поддержка конечных точек службы виртуальной сети предназначена только для серверов общего назначения и серверов, оптимизированных для операций в памяти.Support for VNet service endpoints is only for General Purpose and Memory Optimized servers.

  • Если Microsoft. SQL включен в подсети, это означает, что для подключения нужно использовать только правила виртуальной сети.If Microsoft.Sql is enabled in a subnet, it indicates that you only want to use VNet rules to connect. Правила брандмауэра, не связанные с виртуальной сетью, для ресурсов в этой подсети не будут работать.Non-VNet firewall rules of resources in that subnet will not work.

  • К приведенным ниже элементам сети применяются диапазоны IP-адресов в брандмауэре, а правила виртуальной сети — нет:On the firewall, IP address ranges do apply to the following networking items, but virtual network rules do not:

ExpressRouteExpressRoute

Если сеть подключена к сети Azure с использованием ExpressRoute, то для каждого канала настроены два общедоступных IP-адреса в 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. Эти два IP-адреса используются для подключения к службам Майкрософт, таким как служба хранилища Azure, с помощью общедоступного пиринга Azure.The two IP addresses are used to connect to Microsoft Services, such as to Azure Storage, by using Azure Public Peering.

Чтобы разрешить взаимодействие канала с Базой данных Azure для PostgreSQL, необходимо создать правила IP-сети для общедоступных IP-адресов каналов.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. Чтобы найти общедоступные IP-адреса канала ExpressRoute, отправьте запрос по ExpressRoute в службу поддержки через портал Azure.In order to find the public IP addresses of your ExpressRoute circuit, open a support ticket with ExpressRoute by using the Azure portal.

Добавление правила брандмауэра виртуальной сети на сервер без включения конечных точек службы виртуальной сетиAdding a VNET Firewall rule to your server without turning on VNET Service Endpoints

Просто Настройка правила брандмауэра виртуальной сети не помогает защитить сервер в виртуальной сети.Merely setting a VNet firewall rule does not help secure the server to the VNet. Для безопасности нужно включить конечные точки службы виртуальной сети.You must also turn VNet service endpoints On for the security to take effect. При включении конечных точек службы подсеть виртуальной сети будет простаивать, пока не будет выполнен переход из состояния Выкл. в состояние Вкл.When you turn service endpoints On, your VNet-subnet experiences downtime until it completes the transition from Off to On. Это особенно верно в случае с большими виртуальными сетями.This is especially true in the context of large VNets. С помощью параметра IgnoreMissingServiceEndpoint можно уменьшить или исключить время простоя во время перехода.You can use the IgnoreMissingServiceEndpoint flag to reduce or eliminate the downtime during transition.

Задать параметр IgnoreMissingServiceEndpoint можно с помощью Azure CLI или портала.You can set the IgnoreMissingServiceEndpoint flag by using the Azure CLI or portal.

Дальнейшие действияNext steps

Статьи о создании правил виртуальной сети см. по следующим ссылкам:For articles on creating VNet rules, see: