Добавление виртуальной сети из другого арендатора в брандмауэр учётной записи хранения Azure — распространённый сценарий для проверки подключения, безопасного обмена файлами или совместной работы партнёров. Это гарантирует, что доступ к данным ограничен конкретными сетями, а учётная запись хранения не открыта для всех сетей.
В этом руководстве мы сосредоточимся на достижении этой цели с помощью PowerShell и Azure CLI на локальных компьютерах. Мы также дадим советы и рекомендации для межрегиональных и межарендных конфигураций.
Основной сценарий использования
Этот подход идеален для таких сценариев, как:
- Проверка подключения между приложениями в разных арендаторах или регионах.
- Предоставление партнёрам или соавторам безопасного доступа к файлам без открытия учётной записи хранения для всех сетей.
Предварительные требования
Прежде чем продолжить, убедитесь в следующем:
- У вас есть доступ к подписке Azure, содержащей учётную запись хранения.
- У вас есть административные права для виртуальной сети и подсети в другом арендаторе или регионе.
- Вы установили необходимые инструменты: Azure PowerShell или Azure CLI.
Подход с PowerShell
Шаг 1. Установите модуль Az
Следуйте пошаговым инструкциям на Microsoft Learn, чтобы установить Azure PowerShell в Windows.
Шаг 2. Настройте виртуальную сеть и брандмауэр учётной записи хранения
Выполните следующие команды в сеансе PowerShell:
# Import Az.Storage module
Import-Module -Name Az.Storage
# Authenticate and connect to your Azure account
Connect-AzAccount
# Select the subscription containing the storage account
Select-AzSubscription -SubscriptionId "xxxx-xxxx-xxxx-xxxx"
# List existing virtual network rules for the storage account
(Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount").VirtualNetworkRules
# Enable a service endpoint for Azure Storage on an existing virtual network and subnet
Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Set-AzVirtualNetworkSubnetConfig -Name "mysubnet" -AddressPrefix "10.0.0.0/24" -ServiceEndpoint "Microsoft.Storage.Global" | Set-AzVirtualNetwork
# Add a network rule for the virtual network and subnet
$subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"
Add-AzStorageAccountNetworkRule -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -VirtualNetworkResourceId $subnet.Id
Подход с Azure CLI
Шаг 1. Установите Azure CLI
Следуйте руководству по установке для вашей платформы: Установка Azure CLI.
Шаг 2. Настройте виртуальную сеть и брандмауэр учётной записи хранения
Выполните следующие команды в сеансе CLI:
# Authenticate and sign in to your Azure account
az login
# List existing virtual network rules for the storage account
az storage account network-rule list --resource-group "myresourcegroup" --account-name "mystorageaccount" --query virtualNetworkRules
# Enable a service endpoint for Azure Storage on an existing virtual network and subnet
az network vnet subnet update --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --service-endpoints "Microsoft.Storage.Global"
# Add a network rule for the virtual network and subnet
subnetid=$(az network vnet subnet show --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --query id --output tsv)
az storage account network-rule add --resource-group "myresourcegroup" --account-name "mystorageaccount" --subnet $subnetid
Особые соображения
Правила виртуальных сетей между арендаторами
Чтобы добавить сетевое правило для подсети в виртуальной сети, принадлежащей другому арендатор Microsoft Entra, необходимо использовать параметр VirtualNetworkResourceId с полным указанием. Формат следующий:
/subscriptions/<subscription-ID>/resourceGroups/<resourceGroup-Name>/providers/Microsoft.Network/virtualNetworks/<vNet-name>/subnets/<subnet-name>
Убедитесь, что у вас есть правильный идентификатор подписки и сведения о группе ресурсов для виртуальной сети в другом арендаторе.
Межрегиональные конечные точки служб
Локальные и межрегиональные конечные точки служб не могут сосуществовать в одной подсети. Если нужно заменить существующие конечные точки служб межрегиональными:
- Удалите существующие
Microsoft.Storageконечные точки. - Создайте их заново как межрегиональные конечные точки (
Microsoft.Storage.Global).
Дополнительные советы
- Проверка подключения
После добавления правила виртуальной сети проверьте подключение к учётной записи хранения с помощью таких инструментов, как Azure Storage Explorer или конфигураций, специфичных для приложения. - Ссылка на документацию
Подробные инструкции см. в разделе Настройка брандмауэров службы хранилища Azure и виртуальных сетей. - Вопросы стоимости
- Включение конечных точек служб может повлечь дополнительные расходы в зависимости от вашей модели ценообразования Azure.
- Межрегиональные конфигурации обычно влекут более высокие расходы на исходящий сетевой трафик.
Заключение
Добавление виртуальной сети из другого региона или арендатора в брандмауэр учётной записи хранения Azure — несложный процесс при использовании PowerShell или Azure CLI. Следуя шагам из этого руководства, вы сможете настроить безопасный доступ к учётной записи хранения, сохраняя строгие сетевые правила.