新增或移除子網路委派
子網路委派提供明確的權限給服務以在部署服務時使用唯一識別碼在子網路中建立服務特定資源。 本文說明如何新增或移除 Azure 服務的委派子網路。
必要條件
具有有效訂用帳戶的 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 的連線。
- 此操作說明文章需要 2.31.0 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
建立虛擬網路
在本節中,您將建立虛擬網路和子網路,供委派給 Azure 服務。
下列程序會建立具有資源子網路的虛擬網路。
在入口網站中,搜尋並選取 [虛擬網路]。
在 [虛擬網路] 頁面上,選取 [+ 建立]。
在 [建立虛擬網路] 的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 |
值 |
專案詳細資料 |
|
訂用帳戶 |
選取您的訂用帳戶。 |
資源群組 |
選取 [新建] 在 [名稱] 中輸入 test-rg。 選取 [確定]。 |
[執行個體詳細資料] |
|
名稱 |
輸入 vnet-1。 |
區域 |
選取 [美國東部 2]。 |
選取 [下一步],繼續前往 [安全性] 索引標籤。
選取 [下一步],繼續前往 [IP 位址] 索引標籤。
在 [子網路] 的 [位址空間] 方塊中,選取 [預設] 子網路。
在 [編輯子網路] 中,輸入或選取下列資訊:
設定 |
值 |
子網路用途 |
保留預設值 [Default]。 |
名稱 |
輸入 subnet-1。 |
其餘設定請保留為預設值。 選取 [儲存]。
選取 [儲存]。
選取畫面底部的 [檢閱 + 建立],然後在驗證通過時,選取 [建立]。
建立資源群組
使用 New-AzResourceGroup
建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
下列範例會在 eastus2 位置建立名為 test-rg 的資源群組:
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
建立虛擬網路
使用 New-AzVirtualNetwork
,在 test-rg 中建立一個名為 vnet-1 的虛擬網路,並使用 New-AzVirtualNetworkSubnetConfig
在其中建立一個名為 subnet-1 的子網路。
虛擬網路的 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 資源的邏輯容器。
下列範例會在 eastu2 位置建立名為 test-rg 的資源群組:
az group create \
--name test-rg \
--location eastus2
建立虛擬網路
使用 az network vnet create
,在 test-rg 中建立一個名為 vnet-1 的虛擬網路,其中包含名為 subnet-1 的子網路。
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]。
在 [設定] 中選取 [子網路]。
選取 subnet-1。
輸入或選取下列資訊:
設定 |
值 |
子網路委派 |
|
為服務委派子網路 |
選取您要將子網路委派到哪個服務。 例如,Microsoft.Sql/managedInstances。 |
選取 [儲存]。
使用 Add-AzDelegation
來更新名為 subnet-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]。
在 [設定] 中選取 [子網路]。
選取 subnet-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,然後選取 [刪除]。
下一步