サブネットの委任を追加または削除する
- [アーティクル]
-
-
サブネット委任では、サービスのデプロイ時に一意の ID を利用してサブネットにサービス固有のリソースを作成するための明示的なアクセス許可がサービスに与えられます。 この記事では、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 との接続を作成することも必要です。
- この操作方法に関する記事では、Azure CLI のバージョン 2.31.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
仮想ネットワークの作成
このセクションでは、仮想ネットワークと、Azure サービスに委任するサブネットを作成します。
以下の手順ではリソース サブネットを持つ仮想ネットワークが作成されます。
ポータルで、[仮想ネットワーク] を検索して選択します。
[仮想ネットワーク] ページで、[+ 作成] を選択します。
[仮想ネットワークの作成] の [基本] タブで、次の情報を入力するか選択します。
設定 |
値 |
プロジェクトの詳細 |
|
サブスクリプション |
サブスクリプションを選択します。 |
Resource group |
[新規作成] を選択します。 [名前] に「test-rg」と入力します。 [OK] を選択します。 |
インスタンスの詳細 |
|
Name |
「vnet-1」と入力します。 |
リージョン |
[米国東部 2] を選択します。 |
[次へ] を選択して、[セキュリティ] タブに進みます。
[次へ] を選択して、[IP アドレス] タブに進みます。
[サブネット] のアドレス空間ボックスで、既定のサブネットを選択します。
[サブネットの編集] で次の情報を入力または選択します。
設定 |
Value |
サブネットの目的 |
既定値の [既定] のままにします。 |
名前 |
「subnet-1」と入力します。 |
残りの設定は既定のままにします。 [保存] を選択します。
[保存] を選択します。
画面の下部にある [確認と作成] を選択し、検証に合格したら [作成] を選択します。
リソース グループを作成する
New-AzResourceGroup
でリソースを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
次の例では、test-rg という名前のリソース グループを eastus2 の場所に作成します。
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Create virtual network
New-AzVirtualNetwork
を使って test-rg 内に、New-AzVirtualNetworkSubnetConfig
を使って作成した subnet-1 というサブネットを含む vnet-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 リソースのデプロイと管理に使用する論理コンテナーです。
次の例では、test-rg という名前のリソース グループを eastu2 の場所に作成します。
az group create \
--name test-rg \
--location eastus2
仮想ネットワークの作成
az network vnet create
を使用して、test-rg 内に subnet-1 というサブネットを持つ vnet-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
を使用して、Azure サービスへの委任を行うように subnet-1 という名前のサブネットを更新します。 この例では、委任の例として 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
コマンドからの出力は、null のブラケットです。
[]
作成したリソースを使い終えたら、リソース グループとそのすべてのリソースを削除できます。
Azure portal で、「リソース グループ」を検索して選択します。
[リソース グループ] ページで、test-rg リソース グループを選択します。
[test-rg] ページで、[リソース グループの削除] を選択します。
[削除を確認するために、リソース グループの名前を入力してください] に「test-rg」と入力して、[削除] を選びます。
次のステップ