Делегирование подсети прямо разрешает службе в процессе развертывания создавать в подсети необходимые для этой службы ресурсы с помощью уникального идентификатора. В статье объясняется, как добавить или удалить делегированную подсеть для службы в Azure.
Предварительные условия
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Если вы не создали подсеть, которую хотите делегировать службе Azure, вам необходимо следующее разрешение: Microsoft.Network/virtualNetworks/subnets/write
. Также нужные разрешения есть во встроенной роли Участник сети.
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Если вы не создали подсеть, которую хотите делегировать службе Azure, вам необходимо следующее разрешение: Microsoft.Network/virtualNetworks/subnets/write
. Также нужные разрешения есть во встроенной роли Участник сети.
Локальная установка Azure PowerShell или Azure Cloud Shell.
Войдите в Azure PowerShell и убедитесь, что выбрана подписка, с которой вы хотите использовать эту функцию. Дополнительные сведения см. в статье Вход с помощью Azure PowerShell.
Убедитесь, что используется модуль Az.Network
версии 4.3.0 или выше. Чтобы проверить установленный модуль, используйте команду Get-InstalledModule -Name "Az.Network"
. Если модуль требует обновления, используйте команду Update-Module -Name Az.Network
.
Чтобы установить и использовать PowerShell локально, для работы с этой статьей вам понадобится модуль Azure PowerShell 5.4.1 или более поздней версии. Выполните команду Get-Module -ListAvailable Az
, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount
, чтобы создать подключение к Azure.
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Если вы не создали подсеть, которую хотите делегировать службе Azure, вам необходимо следующее разрешение: Microsoft.Network/virtualNetworks/subnets/write
. Также нужные разрешения есть во встроенной роли Участник сети.
- Для работы с этим практическим руководством требуется Azure CLI версии 2.31.0 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание виртуальной сети
В этом разделе описано, как создать виртуальную сеть и подсеть, делегированную службе Azure.
Следующая процедура создает виртуальную сеть с подсетью ресурсов.
На портале найдите и выберите "Виртуальные сети".
На странице Виртуальные сети выберите команду + Создать.
На вкладке Основные сведения подменю Создать виртуальную сеть введите или выберите нижеприведенную информацию:
Настройка |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите Создать новое.
Введите test-rg в поле Имя.
Нажмите кнопку ОК. |
Сведения об экземпляре |
|
Имя. |
Введите vnet-1. |
Область/регион |
Выберите регион Восточная часть США 2. |
Нажмите кнопку "Далее ", чтобы перейти на вкладку "Безопасность ".
Нажмите Далее, чтобы перейти на вкладку IP-адреса.
В поле адресного пространства в подсетях выберите подсеть по умолчанию .
В разделе "Изменить подсеть" введите или выберите следующие сведения:
Настройка |
Значение |
Назначение подсети |
Оставьте значение «По умолчанию». |
Имя. |
Введите подсеть-1. |
Оставьте остальные параметры своими значениями по умолчанию. Выберите Сохранить.
Выберите Сохранить.
Выберите "Проверка и создание " в нижней части экрана и при прохождении проверки нажмите кнопку "Создать".
Создание группы ресурсов
Создайте группу ресурсов с New-AzResourceGroup
помощью . Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
В следующем примере создается группа ресурсов с именем test-rg в расположении eastus2 :
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Создание виртуальной сети
Создайте виртуальную сеть с именем vnet-1 с подсетью с именем subnet-1, используя New-AzVirtualNetworkSubnetConfig
test-rg с помощью New-AzVirtualNetwork
.
Диапазон IP-адресов для виртуальной сети: 10.0.0.0/16. Подсеть в виртуальной сети: 10.0.0.0/24.
$sub = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
}
$subnet = New-AzVirtualNetworkSubnetConfig @sub
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnet
}
New-AzVirtualNetwork @net
Создание группы ресурсов
Создайте группу ресурсов с az group create
помощью . Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
В следующем примере создается группа ресурсов с именем test-rg в расположении eastu2 :
az group create \
--name test-rg \
--location eastus2
Создание виртуальной сети
Создайте виртуальную сеть с именем vnet-1 с подсетью с именем subnet-1 в test-rg с помощью az network vnet create
.
az network vnet create \
--resource-group test-rg \
--location eastus2 \
--name vnet-1 \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefix 10.0.0.0/24
Делегирование подсети службе Azure
В этом разделе вы делегируете созданную ранее подсеть службе Azure.
Войдите на портал Azure.
В поле поиска в верхней части портала введите виртуальные сети. В результатах поиска выберите Виртуальные сети.
Выберите vnet-1.
В разделе Параметры выберите Подсети.
Выберите подсеть-1.
Введите или выберите следующие сведения.
Настройка |
Значение |
ДЕЛЕГИРОВАНИЕ ПОДСЕТИ |
|
Делегировать подсеть службе |
Выберите службу, в которую нужно делегировать подсеть. Например, Microsoft.Sql/managedInstances. |
Выберите Сохранить.
Используется Add-AzDelegation
для обновления подсети подсети подсети-1 с делегированием с именем myDelegation в службу Azure. В этом примере Microsoft.Sql/managedInstances используется для примера делегирования:
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
$sub = @{
Name = 'subnet-1'
VirtualNetwork = $vnet
}
$subnet = Get-AzVirtualNetworkSubnetConfig @sub
$del = @{
Name = 'myDelegation'
ServiceName = 'Microsoft.Sql/managedInstances'
Subnet = $subnet
}
$subnet = Add-AzDelegation @del
Set-AzVirtualNetwork -VirtualNetwork $vnet
Используется Get-AzDelegation
для проверки делегирования:
$sub = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$subnet = Get-AzVirtualNetwork @sub | Get-AzVirtualNetworkSubnetConfig -Name 'subnet-1'
$dg = @{
Name ='myDelegation'
Subnet = $subnet
}
Get-AzDelegation @dg
ProvisioningState : Succeeded
ServiceName : Microsoft.Sql/managedInstances
Actions : {Microsoft.Network/virtualNetworks/subnets/join/action}
Name : myDelegation
Etag : W/"9cba4b0e-2ceb-444b-b553-454f8da07d8a"
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/vnet-1/subnets/subnet-1/delegations/myDelegation
Используйте az network virtual network subnet update
для обновления подсети с именем subnet-1 с делегированием в службу Azure. В этом примере Microsoft.Sql/managedInstances используется для примера делегирования:
az network vnet subnet update \
--resource-group test-rg \
--name subnet-1 \
--vnet-name vnet-1 \
--delegations Microsoft.Sql/managedInstances
Чтобы проверить, было ли применено делегирование, используйте az network vnet subnet show
. Проверьте, что служба делегирована на подсеть в свойстве serviceName:
az network vnet subnet show \
--resource-group test-rg \
--name subnet-1 \
--vnet-name vnet-1 \
--query delegations
[
{
"actions": [
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action",
"Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action"
],
"etag": "W/\"30184721-8945-4e4f-9cc3-aa16b26589ac\"",
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/vnet-1/subnets/subnet-1/delegations/0",
"name": "0",
"provisioningState": "Succeeded",
"resourceGroup": "test-rg",
"serviceName": "Microsoft.Sql/managedInstances",
"type": "Microsoft.Network/virtualNetworks/subnets/delegations"
}
]
Удаление делегирования подсети из службы Azure
В этом разделе описано, как удалить делегирование подсети для службы Azure.
Войдите на портал Azure.
В поле поиска в верхней части портала введите виртуальные сети. В результатах поиска выберите Виртуальные сети.
Выберите vnet-1.
В разделе Параметры выберите Подсети.
Выберите подсеть-1.
Введите или выберите следующие сведения.
Настройка |
Значение |
ДЕЛЕГИРОВАНИЕ ПОДСЕТИ |
|
Делегировать подсеть службе |
Выберите Отсутствует. |
Выберите Сохранить.
Используйте Remove-AzDelegation
для удаления делегирования из подсети с именем subnet-1:
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
$sub = @{
Name = 'subnet-1'
VirtualNetwork = $vnet
}
$subnet = Get-AzVirtualNetworkSubnetConfig @sub
$del = @{
Name = 'myDelegation'
Subnet = $subnet
}
$subnet = Remove-AzDelegation @del
Set-AzVirtualNetwork -VirtualNetwork $vnet
Используйте Get-AzDelegation
, чтобы проверить, было ли делегирование удалено.
$sub = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$subnet = Get-AzVirtualNetwork @sub | Get-AzVirtualNetworkSubnetConfig -Name 'subnet-1'
$dg = @{
Name ='myDelegation'
Subnet = $subnet
}
Get-AzDelegation @dg
Get-AzDelegation: Sequence contains no matching element
Используйте az network vnet subnet update
для удаления делегирования из подсети с именем subnet-1:
az network vnet subnet update \
--resource-group test-rg \
--name subnet-1 \
--vnet-name vnet-1 \
--remove delegations
Чтобы убедиться, что делегирование было удалено, используйте az network vnet subnet show
. Убедитесь, что служба удалена из подсети, указанной в свойстве serviceName:
az network vnet subnet show \
--resource-group test-rg \
--name subnet-1 \
--vnet-name vnet-1 \
--query delegations
В выходных данных отображаются пустые скобки:
[]
Завершив использование созданных ресурсов, можно удалить группу ресурсов и все ее ресурсы.
Войдите на портал Azure; найдите в поиске и выберите Группы ресурсов.
На странице групп ресурсов выберите группу ресурсов test-rg.
На странице test-rg выберите "Удалить группу ресурсов".
Введите test-rg в поле Ввод имени группы ресурсов, чтобы подтвердить удаление, а затем нажмите кнопку "Удалить".
Следующие шаги