仮想ネットワーク ピアリングを作成する - Resource Manager、異なるサブスクリプション、および Azure Active Directory テナント
-
[アーティクル]
-
-
このチュートリアルでは、Resource Manager で作成された仮想ネットワーク間に仮想ネットワーク ピアリングを作成する方法について説明します。 異なる Azure Active Directory (Azure AD) テナントに属している可能性のあるさまざまなサブスクリプションに仮想ネットワークが存在します。 2 つの仮想ネットワークをピアリングすると、別々の仮想ネットワークに存在するリソースが、あたかも同じ仮想ネットワーク内に存在するかのような帯域幅と待ち時間で相互に通信を行うことができます。 詳しくは、「仮想ネットワーク ピアリング」をご覧ください。
仮想ネットワークのサブスクリプションが同じか異なるかに応じて、仮想ネットワーク ピアリングを作成する手順は異なります。 クラシック デプロイ モデルで作成されたネットワークのピアリング手順は異なります。 デプロイ モデルの詳細については、「Azure デプロイ モデル」を参照してください。
他のシナリオで仮想ネットワークを作成する方法については、次の表で目的のシナリオを選択してください。
クラシック デプロイ モデルでデプロイされた 2 つの仮想ネットワークの間に、仮想ネットワーク ピアリングを作成することはできません。 どちらもクラシック デプロイ モデルで作成された仮想ネットワークを接続する必要がある場合は、Azure VPN Gateway を使ってそれらの仮想ネットワークを接続できます。
このチュートリアルでは同じリージョンで複数の仮想ネットワークをピアリングします。 異なるサポート対象リージョン間での仮想ネットワーク ピアリングも可能です。 仮想ネットワークのピアリングの前に、ピアリングの要件と制約をよく理解しておくことをお勧めします。
前提条件
2 つのアクティブなサブスクリプションを持つ 1 つ以上の Azure アカウント。 無料でアカウントを作成できます。
1 つの Azure アカウント (両方のサブスクリプションにアクセス許可を持つもの)、または各サブスクリプションにある 1 つのアカウント (仮想ネットワーク ピアリングを作成できる適切なアクセス許可を持つもの)。 アクセス許可の一覧については、仮想ネットワークのピアリングのアクセス許可に関するページをご覧ください。
この操作方法に関する記事では、Azure CLI のバージョン 2.31.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
ローカルにインストールされた 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 Active Directory テナント内の仮想ネットワークをピアリングする方法について説明します。
両方のサブスクリプションにアクセス許可を持つ同じアカウントを使うか、各サブスクリプションで個別のアカウントを使ってピアリングを設定できます。 両方のサブスクリプションにアクセス許可を持つアカウントは、ポータルからサインアウトしてサインインし、アクセス許可を割り当てることなく、すべての手順を完了できます。
この記事の手順では、次のリソースとアカウントの例を使います。
ユーザー アカウント |
Resource group |
サブスクリプション |
仮想ネットワーク |
UserA |
myResourceGroupA |
SubscriptionA |
myVNetA |
UserB |
myResourceGroupB |
SubscriptionB |
myVNetB |
仮想ネットワークを作成する - myVNetA
Note
1 つのアカウントを使って手順を完了する場合は、ポータルからログアウトし、別のユーザーに仮想ネットワークへのアクセス許可を割り当てる手順をスキップできます。
Azure portal に UserA としてサインインします。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[+ 作成] を選択します。
[仮想ネットワークの作成] の [基本] タブで、次の情報を入力するか選びます。
設定 |
値 |
プロジェクトの詳細 |
|
サブスクリプション |
[SubscriptionA] を選びます。 |
リソース グループ |
[新規作成] を選択します。 [名前] に「myResourceGroupA」と入力します。 を選択します。 |
インスタンスの詳細 |
|
Name |
「myVNetA」と入力します |
リージョン |
リージョンを選択します。 |
次へ:[次へ: IP アドレス] を選択します。
[IPv4 アドレス空間] に「10.1.0.0/16」と入力します。
[+ サブネットの追加] を選択します。
次の情報を入力または選択します。
設定 |
値 |
サブネット名 |
「mySubnet」と入力します。 |
サブネットのアドレス範囲 |
「10.1.0.0/24」と入力します。 |
[追加] を選択します。
[Review + create](レビュー + 作成) を選択します。
[作成] を選択します
SubscriptionA にサインインします
Connect-AzAccount を使って SubscriptionA にサインインします。
Connect-AzAccount
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、Set-AzContext を使ってサブスクリプション コンテキストを SubscriptionA に変更します。
Set-AzContext -Subscription SubscriptionA
リソース グループを作成する - myResourceGroupA
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
New-AzResourceGroup を使用して、次のようにリソース グループを作成します。
$rsg = @{
Name = 'myResourceGroupA'
Location = 'westus3'
}
New-AzResourceGroup @rsg
仮想ネットワークの作成
New-AzVirtualNetwork を使用して仮想ネットワークを作成します。 この例では、米国西部 3 の場所内に myVNetA という名前の既定の仮想ネットワークを作成します。
$vnet = @{
Name = 'myVNetA'
ResourceGroupName = 'myResourceGroupA'
Location = 'westus3'
AddressPrefix = '10.1.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
サブネットの追加
Azure では、仮想ネットワーク内のサブネットにリソースがデプロイされるため、サブネットを作成する必要があります。 Add-AzVirtualNetworkSubnetConfig を使用して、default というサブネット構成を作成します。
$subnet = @{
Name = 'default'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
サブネットを仮想ネットワークに関連付ける
Set-AzVirtualNetwork を使用して、仮想ネットワークにサブネット構成を書き込むことができます。 このコマンドで、サブネットが作成されます。
$virtualNetwork | Set-AzVirtualNetwork
SubscriptionA にサインインします
az login を使って SubscriptionA にサインインします。
az login
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、az account set を使ってサブスクリプション コンテキストを SubscriptionA に変更します。
az account set --subscription "SubscriptionA"
リソース グループを作成する - myResourceGroupA
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
az group create を使用して、次のようにリソース グループを作成します。
az group create \
--name myResourceGroupA \
--location westus3
仮想ネットワークの作成
az network vnet create を使って仮想ネットワークとサブネットを作成します。 この例では、米国西部 3 の場所内に myVNetA という名前の既定の仮想ネットワークを作成します。
az network vnet create \
--resource-group myResourceGroupA\
--location westus3 \
--name myVNetA \
--address-prefixes 10.1.0.0/16 \
--subnet-name default \
--subnet-prefixes 10.1.0.0/24
UserB にアクセス許可を割り当てる
ピアリングする他のサブスクリプションのユーザー アカウントを、以前に作成したネットワークに追加する必要があります。 両方のサブスクリプションに 1 つのアカウントを使っている場合は、このセクションをスキップできます。
UserA としてポータルにサインインしたままにします。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[myVNetA] を選びます。
[アクセス制御 (IAM)] を選択します。
[+ 追加] ->[ロールの割り当ての追加] を選びます。
[ロール] タブの [ロールの割り当ての追加] で、[ネットワーク共同作成者] を選びます。
[次へ] を選択します。
[メンバー] タブで、[+ メンバーの選択] を選びます。
検索ボックスの [メンバーの選択] に「UserB」と入力します。
[選択] を選択します。
[レビューと割り当て] を選択します。
[レビューと割り当て] を選択します。
Get-AzVirtualNetwork を使って myVNetA のリソース ID を取得します。 New-AzRoleAssignment を使って SubscriptionB の UserB を myVNetA に割り当てます。
Get-AzADUser を使って UserB のオブジェクト ID を取得します。
UserB は、この例ではユーザー アカウントに使われています。 この値を、myVNetA にアクセス許可を割り当てる SubscriptionB のユーザーの表示名に置き換えます。 両方のサブスクリプションに同じアカウントを使っている場合は、この手順をスキップできます。
$id = @{
Name = 'myVNetA'
ResourceGroupName = 'myResourceGroupA'
}
$vnet = Get-AzVirtualNetwork @id
$obj = Get-AzADUser -DisplayName 'UserB'
$role = @{
ObjectId = $obj.id
RoleDefinitionName = 'Network Contributor'
Scope = $vnet.id
}
New-AzRoleAssignment @role
az network vnet show を使って myVNetA のリソース ID を取得します。 az role assignment create を使って SubscriptionB の UserB を myVNetA に割り当てます。
az ad user list を使って UserB のオブジェクト ID を取得します。
UserB は、この例ではユーザー アカウントに使われています。 この値を、myVNetA にアクセス許可を割り当てる SubscriptionB のユーザーの表示名に置き換えます。 両方のサブスクリプションに同じアカウントを使っている場合は、この手順をスキップできます。
az ad user list --display-name UserB
[
{
"businessPhones": [],
"displayName": "UserB",
"givenName": null,
"id": "16d51293-ec4b-43b1-b54b-3422c108321a",
"jobTitle": null,
"mail": "userB@fabrikam.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": null,
"userPrincipalName": "userb_fabrikam.com#EXT#@contoso.onmicrosoft.com"
}
]
フィールド id の UserB のオブジェクト ID をメモします。この例では 16d51293-ec4b-43b1-b54b-3422c108321a です。
vnetid=$(az network vnet show \
--name myVNetA \
--resource-group myResourceGroupA \
--query id \
--output tsv)
az role assignment create \
--assignee 16d51293-ec4b-43b1-b54b-3422c108321a \
--role "Network Contributor" \
--scope $vnetid
--assignee
の例の guid を UserB の実際のオブジェクト ID に置き換えます。
myVNetA のリソース ID を取得する
UserA としてポータルにサインインしたままにします。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[myVNetA] を選びます。
[設定] で [プロパティ] を選択します。
[リソース ID] フィールドの情報をコピーし、後の手順のために保存しておきます。 リソース ID は次の例のようになります。/subscriptions/<Subscription Id>/resourceGroups/myResourceGroupA/providers/Microsoft.Network/virtualNetworks/myVnetA
UserA としてポータルからサインアウトします。
myVNetA のリソース ID は、myVNetB から myVNetA へのピアリング接続を設定するために必要です。 Get-AzVirtualNetwork を使って myVNetA のリソース ID を取得します。
$id = @{
Name = 'myVNetA'
ResourceGroupName = 'myResourceGroupA'
}
$vnetA = Get-AzVirtualNetwork @id
$vnetA.id
myVNetA のリソース ID は、myVNetB から myVNetA へのピアリング接続を設定するために必要です。 az network vnet show を使って myVNetA のリソース ID を取得します。
vnetidA=$(az network vnet show \
--name myVNetA \
--resource-group myResourceGroupA \
--query id \
--output tsv)
echo $vnetidA
仮想ネットワークを作成する - myVNetB
このセクションでは、UserB としてサインインし、myVNetA へのピアリング接続用の仮想ネットワークを作成します。
UserB としてポータルにサインインします。 両方のサブスクリプションに 1 つのアカウントを使っている場合は、ポータルで SubscriptionB に変更します。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[+ 作成] を選択します。
[仮想ネットワークの作成] の [基本] タブで、次の情報を入力するか選びます。
設定 |
値 |
プロジェクトの詳細 |
|
サブスクリプション |
[SubscriptionB] を選びます。 |
リソース グループ |
[新規作成] を選択します。 [名前] に「myResourceGroupB」と入力します。 を選択します。 |
インスタンスの詳細 |
|
Name |
「myVNetB」と入力します |
リージョン |
リージョンを選択します。 |
次へ:[次へ: IP アドレス] を選択します。
[IPv4 アドレス空間] に「10.2.0.0/16」と入力します。
[+ サブネットの追加] を選択します。
次の情報を入力または選択します。
設定 |
値 |
サブネット名 |
「mySubnet」と入力します。 |
サブネットのアドレス範囲 |
「10.2.0.0/24」と入力します。 |
[追加] を選択します。
[Review + create](レビュー + 作成) を選択します。
[作成] を選択します
SubscriptionB にサインインする
Connect-AzAccount を使って SubscriptionB にサインインします。
Connect-AzAccount
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、Set-AzContext を使ってサブスクリプション コンテキストを SubscriptionB に変更します。
Set-AzContext -Subscription SubscriptionB
リソース グループを作成する - myResourceGroupB
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
New-AzResourceGroup を使用して、次のようにリソース グループを作成します。
$rsg = @{
Name = 'myResourceGroupB'
Location = 'westus3'
}
New-AzResourceGroup @rsg
仮想ネットワークの作成
New-AzVirtualNetwork を使用して仮想ネットワークを作成します。 この例では、米国西部 3 の場所内に myVNetB という名前の既定の仮想ネットワークを作成します。
$vnet = @{
Name = 'myVNetB'
ResourceGroupName = 'myResourceGroupB'
Location = 'westus3'
AddressPrefix = '10.2.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
サブネットの追加
Azure では、仮想ネットワーク内のサブネットにリソースがデプロイされるため、サブネットを作成する必要があります。 Add-AzVirtualNetworkSubnetConfig を使用して、default というサブネット構成を作成します。
$subnet = @{
Name = 'default'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.2.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
サブネットを仮想ネットワークに関連付ける
Set-AzVirtualNetwork を使用して、仮想ネットワークにサブネット構成を書き込むことができます。 このコマンドで、サブネットが作成されます。
$virtualNetwork | Set-AzVirtualNetwork
SubscriptionB にサインインする
az login を使って SubscriptionA にサインインします。
az login
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、az account set を使ってサブスクリプション コンテキストを SubscriptionB に変更します。
az account set --subscription "SubscriptionB"
リソース グループを作成する - myResourceGroupB
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
az group create を使用して、次のようにリソース グループを作成します。
az group create \
--name myResourceGroupB \
--location westus3
仮想ネットワークの作成
az network vnet create を使って仮想ネットワークとサブネットを作成します。 この例では、米国西部 3 の場所内に myVNetB という名前の既定の仮想ネットワークを作成します。
az network vnet create \
--resource-group myResourceGroupB\
--location westus3 \
--name myVNetB \
--address-prefixes 10.2.0.0/16 \
--subnet-name default \
--subnet-prefixes 10.2.0.0/24
UserA にアクセス許可を割り当てる
ピアリングする他のサブスクリプションのユーザー アカウントを、以前に作成したネットワークに追加する必要があります。 両方のサブスクリプションに 1 つのアカウントを使っている場合は、このセクションをスキップできます。
UserB としてポータルにサインインしたままにします。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[myVNetB] を選びます。
[アクセス制御 (IAM)] を選択します。
[+ 追加] ->[ロールの割り当ての追加] を選びます。
[ロール] タブの [ロールの割り当ての追加] で、[ネットワーク共同作成者] を選びます。
[次へ] を選択します。
[メンバー] タブで、[+ メンバーの選択] を選びます。
検索ボックスの [メンバーの選択] に「UserA」と入力します。
[選択] を選択します。
[レビューと割り当て] を選択します。
[レビューと割り当て] を選択します。
Get-AzVirtualNetwork を使って myVNetA のリソース ID を取得します。 New-AzRoleAssignment を使って SubscriptionA の UserA を myVNetB に割り当てます。
Get-AzADUser を使って UserA のオブジェクト ID を取得します。
UserA は、この例ではユーザー アカウントに使われています。 この値を、myVNetB にアクセス許可を割り当てる SubscriptionA のユーザーの表示名に置き換えます。 両方のサブスクリプションに同じアカウントを使っている場合は、この手順をスキップできます。
$id = @{
Name = 'myVNetB'
ResourceGroupName = 'myResourceGroupB'
}
$vnet = Get-AzVirtualNetwork @id
$obj = Get-AzADUser -DisplayName 'UserA'
$role = @{
ObjectId = $obj.id
RoleDefinitionName = 'Network Contributor'
Scope = $vnet.id
}
New-AzRoleAssignment @role
az network vnet show を使って myVNetB のリソース ID を取得します。 az role assignment create を使って SubscriptionA の UserA を myVNetB に割り当てます。
az ad user list を使って UserA のオブジェクト ID を取得します。
UserA は、この例ではユーザー アカウントに使われています。 この値を、myVNetB にアクセス許可を割り当てる SubscriptionA のユーザーの表示名に置き換えます。 両方のサブスクリプションに同じアカウントを使っている場合は、この手順をスキップできます。
az ad user list --display-name UserA
[
{
"businessPhones": [],
"displayName": "UserA",
"givenName": null,
"id": "ee0645cc-e439-4ffc-b956-79577e473969",
"jobTitle": null,
"mail": "userA@contoso.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": null,
"userPrincipalName": "usera_contoso.com#EXT#@fabrikam.onmicrosoft.com"
}
]
フィールド id の UserA のオブジェクト ID をメモします。この例では ee0645cc-e439-4ffc-b956-79577e473969 です。
vnetid=$(az network vnet show \
--name myVNetB \
--resource-group myResourceGroupB \
--query id \
--output tsv)
az role assignment create \
--assignee ee0645cc-e439-4ffc-b956-79577e473969 \
--role "Network Contributor" \
--scope $vnetid
myVNetB のリソース ID を取得する
myVNetB のリソース ID は、myVNetA から myVNetB へのピアリング接続を設定するために必要です。 次の手順を使って myVNetB のリソース ID を取得します。
UserB としてポータルにサインインしたままにします。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[myVNetB] を選びます。
[設定] で [プロパティ] を選択します。
[リソース ID] フィールドの情報をコピーし、後の手順のために保存しておきます。 リソース ID は次の例のようになります。/subscriptions/<Subscription Id>/resourceGroups/myResourceGroupB/providers/Microsoft.Network/virtualNetworks/myVnetB
UserB としてポータルからサインアウトします。
myVNetB のリソース ID は、myVNetA から myVNetB へのピアリング接続を設定するために必要です。 Get-AzVirtualNetwork を使って myVNetB のリソース ID を取得します。
$id = @{
Name = 'myVNetB'
ResourceGroupName = 'myResourceGroupB'
}
$vnetB = Get-AzVirtualNetwork @id
$vnetB.id
myVNetB のリソース ID は、myVNetA から myVNetB へのピアリング接続を設定するために必要です。 az network vnet show を使って myVNetB のリソース ID を取得します。
vnetidB=$(az network vnet show \
--name myVNetB \
--resource-group myResourceGroupB \
--query id \
--output tsv)
echo $vnetidB
ピアリング接続を作成する - myVNetA から myVNetB へ
ピアリング接続を設定するには、前の手順で得た myVNetB のリソース ID が必要です。
Azure portal に UserA としてサインインします。 両方のサブスクリプションに 1 つのアカウントを使っている場合は、ポータルで SubscriptionA に変更します。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[myVNetA] を選びます。
[ピアリング] を選びます。
[+ 追加] を選択します。
[ピアリングの追加] で、次の情報を入力するか選びます。
設定 |
値 |
この仮想ネットワーク |
|
[Peering link name](ピアリング リンク名) |
「myVNetAToMyVNetB」と入力します。 |
[Traffic to remote virtual network](リモート仮想ネットワークへのトラフィック) |
既定値の [許可 (既定値)] のままにします。 |
[Traffic forwarded from remote virtual network](リモート仮想ネットワークから転送されるトラフィック) |
既定値の [許可 (既定値)] のままにします。 |
仮想ネットワーク ゲートウェイまたは Route Server |
既定値の [なし (既定値)] のままにします。 |
リモート仮想ネットワーク |
|
[Peering link name](ピアリング リンク名) |
空白のままにします。 |
仮想ネットワークのデプロイ モデル |
[リソース マネージャー] を選択します。 |
[リソース ID を知っている] のボックスを選びます。 |
|
Resource ID |
myVNetB のリソース ID を入力するか貼り付けます。 |
プルダウン ボックスで、myVNetB と UserB に対応する [ディレクトリ] を選びます。
[認証] を選びます。
[追加] を選択します。
UserA としてポータルからサインアウトします。
SubscriptionA にサインインします
Connect-AzAccount を使って SubscriptionA にサインインします。
Connect-AzAccount
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、Set-AzContext を使ってサブスクリプション コンテキストを SubscriptionA に変更します。
Set-AzContext -Subscription SubscriptionA
SubscriptionB にサインインする
ピアリングを設定できるように SubscriptionB の認証を受けます。
Connect-AzAccount を使って SubscriptionB にサインインします。
Connect-AzAccount
SubscriptionA に変更する (省略可能)
SubscriptionA での操作を続けるために、必要に応じて SubscriptionA に切り替えることがあります。
コンテキストを SubscriptionA に変更します。
Set-AzContext -Subscription SubscriptionA
ピアリング接続を作成する
Add-AzVirtualNetworkPeering を使って myVNetA と myVNetB 間のピアリング接続を作成します。
$netA = @{
Name = 'myVNetA'
ResourceGroupName = 'myResourceGroupA'
}
$vnetA = Get-AzVirtualNetwork @netA
$peer = @{
Name = 'myVNetAToMyVNetB'
VirtualNetwork = $vnetA
RemoteVirtualNetworkId = '/subscriptions/<SubscriptionB-Id>/resourceGroups/myResourceGroupB/providers/Microsoft.Network/virtualNetworks/myVnetB'
}
Add-AzVirtualNetworkPeering @peer
Get-AzVirtualNetworkPeering を使って、myVNetA から myVNetB までのピアリング接続の状態を取得します。
$status = @{
ResourceGroupName = 'myResourceGroupA'
VirtualNetworkName = 'myVNetA'
}
Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
PS /home/azureuser> Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
VirtualNetworkName PeeringState
------------------ ------------
myVNetA Initiated
SubscriptionA にサインインします
az login を使って SubscriptionA にサインインします。
az login
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、az account set を使ってサブスクリプション コンテキストを SubscriptionA に変更します。
az account set --subscription "SubscriptionA"
SubscriptionB にサインインする
ピアリングを設定できるように SubscriptionB の認証を受けます。
az login を使って SubscriptionB にサインインします。
az login
SubscriptionA に変更する (省略可能)
SubscriptionA での操作を続けるために、必要に応じて SubscriptionA に切り替えることがあります。
コンテキストを SubscriptionA に変更します。
az account set --subscription "SubscriptionA"
ピアリング接続を作成する
az network vnet peering create を使って、myVNetA と myVNetB 間にピアリング接続を作成します。
az network vnet peering create \
--name myVNetAToMyVNetB \
--resource-group myResourceGroupA \
--vnet-name myVNetA \
--remote-vnet /subscriptions/<SubscriptionB-Id>/resourceGroups/myResourceGroupB/providers/Microsoft.Network/VirtualNetworks/myVNetB \
--allow-vnet-access
az network vnet peering list を使って、myVNetA から myVNetB までのピアリング接続の状態を取得します。
az network vnet peering list \
--resource-group myResourceGroupA \
--vnet-name myVNetA \
--output table
ピアリング接続は、[ピアリング] で "開始済み" の状態と表示されます。 ピアを完成させるには、対応する接続を myVNetB に設定する必要があります。
ピアリング接続を作成する - myVNetB から myVNetA へ
ピアリング接続を設定するには、前の手順で得た myVNetA のリソース ID が必要です。
UserB として Azure portal にサインインします。 両方のサブスクリプションに 1 つのアカウントを使っている場合は、ポータルで SubscriptionB に変更します。
ポータルの上部にある検索ボックスに「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[myVNetB] を選びます。
[ピアリング] を選びます。
[+ 追加] を選択します。
[ピアリングの追加] で、次の情報を入力するか選びます。
設定 |
値 |
この仮想ネットワーク |
|
[Peering link name](ピアリング リンク名) |
「myVNetBToMyVNetA」と入力します。 |
[Traffic to remote virtual network](リモート仮想ネットワークへのトラフィック) |
既定値の [許可 (既定値)] のままにします。 |
[Traffic forwarded from remote virtual network](リモート仮想ネットワークから転送されるトラフィック) |
既定値の [許可 (既定値)] のままにします。 |
仮想ネットワーク ゲートウェイまたは Route Server |
既定値の [なし (既定値)] のままにします。 |
リモート仮想ネットワーク |
|
[Peering link name](ピアリング リンク名) |
空白のままにします。 |
仮想ネットワークのデプロイ モデル |
[リソース マネージャー] を選択します。 |
[リソース ID を知っている] のボックスを選びます。 |
|
Resource ID |
myVNetA のリソース ID を入力するか貼り付けます。 |
プルダウン ボックスで、myVNetA と UserA に対応する [ディレクトリ] を選びます。
[認証] を選びます。
[追加] を選択します。
SubscriptionB にサインインする
Connect-AzAccount を使って SubscriptionB にサインインします。
Connect-AzAccount
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、Set-AzContext を使ってサブスクリプション コンテキストを SubscriptionB に変更します。
Set-AzContext -Subscription SubscriptionB
SubscriptionA にサインインします
ピアリングを設定できるように SubscriptionA の認証を受けます。
Connect-AzAccount を使って SubscriptionA にサインインします。
Connect-AzAccount
SubscriptionB に変更する (省略可能)
SubscriptionB での操作を続けるために、必要に応じて SubscriptionB に切り替えることがあります。
コンテキストを SubscriptionB に変更します。
Set-AzContext -Subscription SubscriptionB
ピアリング接続を作成する
Add-AzVirtualNetworkPeering を使って myVNetB と myVNetA 間のピアリング接続を作成します。
$netB = @{
Name = 'myVNetB'
ResourceGroupName = 'myResourceGroupB'
}
$vnetB = Get-AzVirtualNetwork @netB
$peer = @{
Name = 'myVNetBToMyVNetA'
VirtualNetwork = $vnetB
RemoteVirtualNetworkId = '/subscriptions/<SubscriptionA-Id>/resourceGroups/myResourceGroupA/providers/Microsoft.Network/virtualNetworks/myVNetA'
}
Add-AzVirtualNetworkPeering @peer
Get-AzVirtualNetworkPeering を使って、myVNetB から myVNetA までのピアリング接続の状態を取得します。
$status = @{
ResourceGroupName = 'myResourceGroupB'
VirtualNetworkName = 'myVNetB'
}
Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
PS /home/azureuser> Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
VirtualNetworkName PeeringState
------------------ ------------
myVNetB Connected
SubscriptionB にサインインする
az login を使って SubscriptionB にサインインします。
az login
両方のサブスクリプションに 1 つのアカウントを使っている場合は、そのアカウントにサインインし、az account set を使ってサブスクリプション コンテキストを SubscriptionB に変更します。
az account set --subscription "SubscriptionB"
SubscriptionA にサインインします
ピアリングを設定できるように SubscriptionA の認証を受けます。
az login を使って SubscriptionA にサインインします。
az login
SubscriptionB に変更する (省略可能)
SubscriptionB での操作を続けるために、必要に応じて SubscriptionB に切り替えることがあります。
コンテキストを SubscriptionB に変更します。
az account set --subscription "SubscriptionB"
ピアリング接続を作成する
az network vnet peering create を使って、myVNetB と myVNetA 間にピアリング接続を作成します。
az network vnet peering create \
--name myVNetBToMyVNetA \
--resource-group myResourceGroupB \
--vnet-name myVNetB \
--remote-vnet /subscriptions/<SubscriptionA-Id>/resourceGroups/myResourceGroupA/providers/Microsoft.Network/VirtualNetworks/myVNetA \
--allow-vnet-access
az network vnet peering list を使って、myVNetB から myVNetA までのピアリング接続の状態を取得します。
az network vnet peering list \
--resource-group myResourceGroupB \
--vnet-name myVNetB \
--output table
ピアリングにおける両方の仮想ネットワークの [ピアリング状態] 列に "接続済み" と表示されれば、ピアリングは正常に確立されています。 2 つの仮想ネットワークに作成した Azure リソースが、その IP アドレスを使用して相互に通信できるようになりました。 仮想ネットワークに Azure の既定の名前解決を使用する場合、そのネットワーク内のリソースは、通信相手の仮想ネットワークに対して名前を解決することができません。 ピアリングされた仮想ネットワークの間で名前を解決する必要がある場合は、独自の DNS サーバーを作成するか、Azure DNS を使う必要があります。
独自の DNS を使った名前解決の詳細については、「独自の DNS サーバーを使用する名前解決」を参照してください。
Azure DNS の詳細については、「Azure DNS とは」を参照してください。
次のステップ