Использование частных конечных точек для службы хранилища AzureUse private endpoints for Azure Storage

Вы можете использовать частные конечные точки для учетных записей хранения Azure, чтобы разрешить клиентам в виртуальной сети (VNet) безопасный доступ к данным по частной ссылке.You can use private endpoints for your Azure Storage accounts to allow clients on a virtual network (VNet) to securely access data over a Private Link. Частная конечная точка использует IP-адрес из адресного пространства виртуальной сети для вашей службы учетной записи хранения.The private endpoint uses an IP address from the VNet address space for your storage account service. Сетевой трафик между клиентами в виртуальной сети и учетной записью хранения проходит по виртуальной сети и частной ссылке на магистральную сеть Майкрософт, что устраняет уязвимость в общедоступном Интернете.Network traffic between the clients on the VNet and the storage account traverses over the VNet and a private link on the Microsoft backbone network, eliminating exposure from the public internet.

Использование частных конечных точек для учетной записи хранения позволяет выполнять следующие задачи:Using private endpoints for your storage account enables you to:

  • Защитите учетную запись хранения, настроив брандмауэр хранилища для блокировки всех подключений в общедоступной конечной точке для службы хранилища.Secure your storage account by configuring the storage firewall to block all connections on the public endpoint for the storage service.
  • Увеличьте уровень безопасности для виртуальной сети, позволяя блокировать утечка данных из сети.Increase security for the virtual network (VNet), by enabling you to block exfiltration of data from the VNet.
  • Безопасное подключение к учетным записям хранения из локальных сетей, подключающихся к виртуальной сети с помощью VPN или которыми с частными пиринга.Securely connect to storage accounts from on-premises networks that connect to the VNet using VPN or ExpressRoutes with private-peering.

Общие сведенияConceptual overview

Общие сведения о частных конечных точках для службы хранилища Azure

Частная конечная точка — это специальный сетевой интерфейс для службы Azure в виртуальной сети (VNet).A private endpoint is a special network interface for an Azure service in your Virtual Network (VNet). При создании частной конечной точки для учетной записи хранения обеспечивается безопасное подключение между клиентами в виртуальной сети и хранилищем.When you create a private endpoint for your storage account, it provides secure connectivity between clients on your VNet and your storage. Частной конечной точке назначается IP-адрес из диапазона IP-адресов виртуальной сети.The private endpoint is assigned an IP address from the IP address range of your VNet. Соединение между частной конечной точкой и службой хранилища использует защищенную закрытую ссылку.The connection between the private endpoint and the storage service uses a secure private link.

Приложения в виртуальной сети могут легко подключаться к службе хранилища через закрытую конечную точку, используя те же строки подключения и механизмы авторизации, которые используются в противном случае.Applications in the VNet can connect to the storage service over the private endpoint seamlessly, using the same connection strings and authorization mechanisms that they would use otherwise. Частные конечные точки можно использовать со всеми протоколами, поддерживаемыми учетной записью хранения, включая остальные и SMB.Private endpoints can be used with all protocols supported by the storage account, including REST and SMB.

Частные конечные точки можно создавать в подсетях, использующих конечные точки служб.Private endpoints can be created in subnets that use Service Endpoints. Таким образом клиенты в подсети могут подключаться к одной учетной записи хранения с помощью частной конечной точки, а также использовать конечные точки службы для доступа к другим пользователям.Clients in a subnet can thus connect to one storage account using private endpoint, while using service endpoints to access others.

Когда вы создаете в виртуальной сети частную конечную точку для службы хранилища, соответствующий запрос на предоставление согласия отправляется владельцу учетной записи хранения.When you create a private endpoint for a storage service in your VNet, a consent request is sent for approval to the storage account owner. Если пользователь, запрашивающий создание частной конечной точки, также является владельцем учетной записи хранения, этот запрос на согласие автоматически утверждается.If the user requesting the creation of the private endpoint is also an owner of the storage account, this consent request is automatically approved.

Владельцы учетных записей хранения могут управлять запросами на согласие и закрытыми конечными точками через вкладку "частные конечные точки" для учетной записи хранения в портал Azure.Storage account owners can manage consent requests and the private endpoints, through the 'Private endpoints' tab for the storage account in the Azure portal.

Совет

Если вы хотите ограничить доступ к учетной записи хранения только через закрытую конечную точку, настройте брандмауэр службы хранилища для запрета или управления доступом через общедоступную конечную точку.If you want to restrict access to your storage account through the private endpoint only, configure the storage firewall to deny or control access through the public endpoint.

Вы можете защитить учетную запись хранения, чтобы принимать подключения только из виртуальной сети, настроив брандмауэр хранилища на запрет доступа через общедоступную конечную точку по умолчанию.You can secure your storage account to only accept connections from your VNet, by configuring the storage firewall to deny access through its public endpoint by default. Правило брандмауэра не требуется, чтобы разрешить трафик из виртуальной сети, имеющей закрытую конечную точку, так как брандмауэр хранилища управляет доступом только через общедоступную конечную точку.You don't need a firewall rule to allow traffic from a VNet that has a private endpoint, since the storage firewall only controls access through the public endpoint. Вместо этого частные конечные точки используют поток согласия для предоставления подсетям доступа к службе хранилища.Private endpoints instead rely on the consent flow for granting subnets access to the storage service.

Примечание

При копировании больших двоичных объектов между учетными записями хранения клиент должен иметь сетевой доступ к обеим учетным записям.When copying blobs between storage accounts, your client must have network access to both accounts. Поэтому, если вы решили использовать частную ссылку только для одной учетной записи (источника или назначения), убедитесь, что у клиента есть сетевой доступ к другой учетной записи.So if you choose to use a private link for only one account (either the source or the destination), make sure that your client has network access to the other account. Дополнительные сведения о других способах настройки сетевого доступа см. в статье Настройка брандмауэров службы хранилища Azure и виртуальных сетей.To learn about other ways to configure network access, see Configure Azure Storage firewalls and virtual networks.

Создание частной конечной точкиCreating a private endpoint

Сведения о создании частной конечной точки с помощью портала Azure см. в разделе Подключение к учетной записи хранения из учетной записи хранения в портал Azure.To create a private endpoint by using the Azure Portal, see Connect privately to a storage account from the Storage Account experience in the Azure portal.

Чтобы создать частную конечную точку с помощью PowerShell или Azure CLI, см. одну из этих статей.To create a private endpoint by using PowerShell or the Azure CLI, see either of these articles. Оба они применяют веб-приложение Azure в качестве целевой службы, но действия по созданию частной ссылки одинаковы для учетной записи хранения Azure.Both of them feature an Azure web app as the target service, but the steps to create a private link are the same for an Azure Storage account.

При создании частной конечной точки необходимо указать учетную запись хранения и службу хранилища, к которой она подключается.When you create a private endpoint, you must specify the storage account and the storage service to which it connects.

Вам потребуется отдельная частная конечная точка для каждого ресурса хранилища, к которому необходимо получить доступ, а именно большие двоичные объекты, Data Lake Storage 2-го поколения, файлы, очереди, таблицыили статические веб-сайты.You need a separate private endpoint for each storage resource that you need to access, namely Blobs, Data Lake Storage Gen2, Files, Queues, Tables, or Static Websites. В частной конечной точке эти службы хранилища определяются как целевой вспомогательный ресурс связанной учетной записи хранения.On the private endpoint, these storage services are defined as the target sub-resource of the associated storage account.

Если вы создаете закрытую конечную точку для ресурса хранилища Data Lake Storage 2-го поколения, вы также должны создать его для ресурса хранилища BLOB-объектов.If you create a private endpoint for the Data Lake Storage Gen2 storage resource, then you should also create one for the Blob storage resource. Это связано с тем, что операции, нацеленные на конечную точку Data Lake Storage 2-го поколения, могут перенаправляться в конечную точку большого двоичного объекта.That's because operations that target the Data Lake Storage Gen2 endpoint might be redirected to the Blob endpoint. Создавая закрытую конечную точку для обоих ресурсов, можно гарантировать успешное завершение операций.By creating a private endpoint for both resources, you ensure that operations can complete successfully.

Совет

Создайте отдельную закрытую конечную точку для дополнительного экземпляра службы хранилища, чтобы повысить производительность чтения в учетных записях RA-GRS.Create a separate private endpoint for the secondary instance of the storage service for better read performance on RA-GRS accounts. Обязательно создайте учетную запись хранения общего назначения версии 2 (Standard или Premium).Make sure to create a general-purpose v2(Standard or Premium) storage account.

Для доступа на чтение к дополнительному региону с учетной записью хранения, настроенной для геоизбыточного хранилища, требуются отдельные частные конечные точки как для основного, так и для дополнительного экземпляра службы.For read access to the secondary region with a storage account configured for geo-redundant storage, you need separate private endpoints for both the primary and secondary instances of the service. Для отработки отказа не нужно создавать закрытую конечную точку для вторичного экземпляра.You don't need to create a private endpoint for the secondary instance for failover. Частная конечная точка будет автоматически подключаться к новому основному экземпляру после отработки отказа.The private endpoint will automatically connect to the new primary instance after failover. Дополнительные сведения о параметрах избыточности хранилища см. в статье избыточность хранилища Azure.For more information about storage redundancy options, see Azure Storage redundancy.

Подключение к частной конечной точкеConnecting to a private endpoint

Клиенты в виртуальной сети, использующие частную конечную точку, должны использовать одну и ту же строку подключения для учетной записи хранения, так как клиенты подключаются к общедоступной конечной точке.Clients on a VNet using the private endpoint should use the same connection string for the storage account, as clients connecting to the public endpoint. Мы используем разрешение DNS, чтобы автоматически маршрутизировать подключения из виртуальной сети к учетной записи хранения по частной ссылке.We rely upon DNS resolution to automatically route the connections from the VNet to the storage account over a private link.

Важно!

Используйте ту же строку подключения для подключения к учетной записи хранения с помощью частных конечных точек, как и в противном случае.Use the same connection string to connect to the storage account using private endpoints, as you'd use otherwise. Не подключайтесь к учетной записи хранения, используя ее privatelink URL-адрес поддомена.Please don't connect to the storage account using its privatelink subdomain URL.

Мы создадим закрытую зону DNS , подключенную к виртуальной сети, с необходимыми обновлениями для частных конечных точек по умолчанию.We create a private DNS zone attached to the VNet with the necessary updates for the private endpoints, by default. Однако если вы используете собственный DNS-сервер, может потребоваться внести дополнительные изменения в конфигурацию DNS.However, if you're using your own DNS server, you may need to make additional changes to your DNS configuration. В разделе об изменениях DNS ниже описаны обновления, необходимые для частных конечных точек.The section on DNS changes below describes the updates required for private endpoints.

Изменения DNS для частных конечных точекDNS changes for private endpoints

При создании частной конечной точки запись ресурса DNS CNAME для учетной записи хранения обновляется до псевдонима в поддомее с префиксом privatelink .When you create a private endpoint, the DNS CNAME resource record for the storage account is updated to an alias in a subdomain with the prefix privatelink. По умолчанию также создается Частная зона DNS, соответствующая privatelink поддомену, с записями ресурсов DNS a для частных конечных точек.By default, we also create a private DNS zone, corresponding to the privatelink subdomain, with the DNS A resource records for the private endpoints.

При разрешении URL-адреса конечной точки хранилища извне виртуальной сети с закрытой конечной точкой она разрешается в общедоступную конечную точку службы хранилища.When you resolve the storage endpoint URL from outside the VNet with the private endpoint, it resolves to the public endpoint of the storage service. При разрешении из виртуальной сети, в которой размещается частная конечная точка, URL-адрес конечной точки хранилища разрешается в IP-адрес частной конечной точки.When resolved from the VNet hosting the private endpoint, the storage endpoint URL resolves to the private endpoint's IP address.

В приведенном выше примере записи ресурсов DNS для учетной записи хранения "Сторажеаккаунта" при разрешении из-за пределов виртуальной сети, в которой размещается частная конечная точка, будут:For the illustrated example above, the DNS resource records for the storage account 'StorageAccountA', when resolved from outside the VNet hosting the private endpoint, will be:

ИмяName ТипType ЗначениеValue
StorageAccountA.blob.core.windows.net CNAME.CNAME StorageAccountA.privatelink.blob.core.windows.net
StorageAccountA.privatelink.blob.core.windows.net CNAME.CNAME <storage service public endpoint>
<storage service public endpoint> AA <storage service public IP address>

Как упоминалось ранее, вы можете запретить или контролировать доступ клиентов за пределами виртуальной сети через общедоступную конечную точку с помощью брандмауэра хранилища.As previously mentioned, you can deny or control access for clients outside the VNet through the public endpoint using the storage firewall.

Записи ресурсов DNS для Сторажеаккаунта, разрешенные клиентом в виртуальной сети, где размещается частная конечная точка, будут:The DNS resource records for StorageAccountA, when resolved by a client in the VNet hosting the private endpoint, will be:

ИмяName ТипType ЗначениеValue
StorageAccountA.blob.core.windows.net CNAME.CNAME StorageAccountA.privatelink.blob.core.windows.net
StorageAccountA.privatelink.blob.core.windows.net AA 10.1.1.510.1.1.5

Такой подход обеспечивает доступ к учетной записи хранения , используя ту же строку подключения для клиентов в виртуальной сети, где размещаются частные конечные точки, а также клиенты за пределами виртуальной сети.This approach enables access to the storage account using the same connection string for clients on the VNet hosting the private endpoints, as well as clients outside the VNet.

При использовании пользовательского DNS-сервера в сети клиенты должны иметь возможность разрешить полное доменное имя конечной точки учетной записи хранения в IP-адрес частной конечной точки.If you are using a custom DNS server on your network, clients must be able to resolve the FQDN for the storage account endpoint to the private endpoint IP address. Необходимо настроить DNS-сервер для делегирования поддомена частной связи в частную зону DNS для виртуальной сети или настроить записи A для "StorageAccountA.privatelink.BLOB.Core.Windows.NET" с IP-адресом частной конечной точки.You should configure your DNS server to delegate your private link subdomain to the private DNS zone for the VNet, or configure the A records for 'StorageAccountA.privatelink.blob.core.windows.net' with the private endpoint IP address.

Совет

При использовании пользовательского или локального DNS-сервера следует настроить DNS-сервер для разрешения имени учетной записи хранения в privatelink поддомене на IP-адрес частной конечной точки.When using a custom or on-premises DNS server, you should configure your DNS server to resolve the storage account name in the privatelink subdomain to the private endpoint IP address. Это можно сделать, делегируя privatelink поддомен частной зоне DNS виртуальной сети, или настроив зону DNS на DNS-сервере и добавив записи A DNS.You can do this by delegating the privatelink subdomain to the private DNS zone of the VNet, or configuring the DNS zone on your DNS server and adding the DNS A records.

Рекомендуемые имена зон DNS для частных конечных точек служб хранилища и связанных с ними вспомогательных ресурсов конечной точки:The recommended DNS zone names for private endpoints for storage services, and the associated endpoint target sub-resources, are:

Служба хранилищаStorage service Целевой подресурсTarget sub-resource Имя зоныZone name
Служба больших двоичных объектовBlob service большой двоичный объектblob privatelink.blob.core.windows.net
Data Lake Storage 2-го поколенияData Lake Storage Gen2 наборовdfs privatelink.dfs.core.windows.net
Служба файловFile service файлfile privatelink.file.core.windows.net
Служба очередейQueue service очередьqueue privatelink.queue.core.windows.net
Служба таблицTable service tabletable privatelink.table.core.windows.net
Статические веб-сайтыStatic Websites webweb privatelink.web.core.windows.net

Дополнительные сведения о настройке собственного DNS-сервера для поддержки частных конечных точек см. в следующих статьях:For more information on configuring your own DNS server to support private endpoints, refer to the following articles:

ЦеныPricing

Дополнительные сведения о ценах см. на странице цен на службу "Приватный канал" Azure.For pricing details, see Azure Private Link pricing.

Известные проблемыKnown Issues

Учитывайте следующие известные проблемы, связанные с частными конечными точками для службы хранилища Azure.Keep in mind the following known issues about private endpoints for Azure Storage.

Ограничения доступа к хранилищу для клиентов в виртуальных сетей с частными конечными точкамиStorage access constraints for clients in VNets with private endpoints

При доступе к другим учетным записям хранения, имеющим частные конечные точки, клиенты в виртуальных сетей с существующими закрытыми конечными точками имеют ограничения.Clients in VNets with existing private endpoints face constraints when accessing other storage accounts that have private endpoints. Например, предположим, что у виртуальной сети N1 есть частная конечная точка для учетной записи хранения a1 для хранилища BLOB-объектов.For example, suppose a VNet N1 has a private endpoint for a storage account A1 for Blob storage. Если у учетной записи хранения a2 есть частная конечная точка в виртуальной сети N2 для хранилища BLOB-объектов, клиенты в виртуальной сети N1 также должны иметь доступ к хранилищу BLOB-объектов в учетной записи a2 с помощью частной конечной точки.If storage account A2 has a private endpoint in a VNet N2 for Blob storage, then clients in VNet N1 must also access Blob storage in account A2 using a private endpoint. Если в учетной записи хранения a2 нет закрытых конечных точек для хранилища BLOB-объектов, клиенты в виртуальной сети N1 могут получить доступ к хранилищу больших двоичных объектов в этой учетной записи без закрытой конечной точки.If storage account A2 does not have any private endpoints for Blob storage, then clients in VNet N1 can access Blob storage in that account without a private endpoint.

Это ограничение является результатом изменений DNS, внесенных при создании частной конечной точки учетной записью a2.This constraint is a result of the DNS changes made when account A2 creates a private endpoint.

Правила групп безопасности сети для сетей с частными конечными точкамиNetwork Security Group rules for subnets with private endpoints

Сейчас нельзя настроить правила группы безопасности сети (NSG) и определяемые пользователем маршруты для частных конечных точек.Currently, you can't configure Network Security Group (NSG) rules and user-defined routes for private endpoints. Правила NSG, применяемые к подсети, в которой размещается частная конечная точка, не применяются к частной конечной точке.NSG rules applied to the subnet hosting the private endpoint are not applied to the private endpoint. Они применяются только к другим конечным точкам (например, к контроллерам сетевых интерфейсов).They are applied only to other endpoints (For example: network interface controllers). Для этой проблемы ограниченный обходной путь заключается в реализации правил доступа для частных конечных точек в исходных подсетях, хотя этот подход может потребовать более высоких затрат на управление.A limited workaround for this issue is to implement your access rules for private endpoints on the source subnets, though this approach may require a higher management overhead.

Копирование больших двоичных объектов между учетными записями храненияCopying blobs between storage accounts

Вы можете копировать большие двоичные объекты между учетными записями хранения, используя частные конечные точки, только если вы используете REST API Azure или средства, использующие REST API.You can copy blobs between storage accounts by using private endpoints only if you use the Azure REST API, or tools that use the REST API. К этим средствам относятся AzCopy, Обозреватель службы хранилища, Azure PowerShell, Azure CLI и пакеты SDK хранилища BLOB-объектов Azure.These tools include AzCopy, Storage Explorer, Azure PowerShell, Azure CLI, and the Azure Blob Storage SDKs.

Поддерживаются только частные конечные точки, предназначенные для ресурса хранилища BLOB-объектов.Only private endpoints that target the Blob storage resource are supported. Частные конечные точки, предназначенные для Data Lake Storage 2-го поколения или файлового ресурса, пока не поддерживаются.Private endpoints that target the Data Lake Storage Gen2 or the File resource are not yet supported. Кроме того, копирование между учетными записями хранения с помощью протокола NFS пока не поддерживается.Also, copying between storage accounts by using the Network File System (NFS) protocol is not yet supported.

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