Azure仮想ネットワークピアリング実装してみた -Powershell編

はじめに

前回の記事では、仮想ネットワークピアリング概要、Azureポータルで実装方法について記載しました。

blog.jbs.co.jp

本記事ではPowershellを利用して仮想ネットワークピアリングの実装をしていきたいと思います。

※本記事は2023年2月時点での内容です。

前提条件

Powershelllを利用して仮想ネットワークピアリング実装の前提条件は以下になります。

前提条件 推奨値
Powershellのインストール PowerShell 7.0.6 LTS、PowerShell 7.1.3 以降
Azモジュールのインストール 最新バージョン
RBAC権限の追加 共同作成者、所有者など

 Powershellのインストール

  • Windowsの場合:
    既定でPowershellが入っている為、バージョンを確認し可能であれば最新バージョンにアップデートします。なお、現時点(2023/02)ではPowershell7.3.2が最新となっています。

    ・バージョン確認
    $PSVersionTable.PSVersion
    ・最新バージョンの確認
    winget search Microsoft.PowerShell
    ・最新バージョンにアップデート
    winget upgrade --id Microsoft.Powershell --source winget
    別の方法でインストールする場合はこちらを参照してください。

    learn.microsoft.com

  • Linuxの場合:
    Linuxディストリビューションによってインストール方法が異なる為、こちら参考にしてインストールしてください。

    learn.microsoft.com

Azモジュールのインストール

Azモジュールは下記コマンドでインストールします。

Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force

詳細はこちらを参照してください。

learn.microsoft.com

RBAC権限の追加

リソースグループの作成や仮想ネットワークの作成をする為には、利用するユーザーにRBAC権限が付与されている必要があります。

仮想ネットワークピアリングの実装

では、仮想ネットワークピアリングを実装してみたいと思います。

今回は下記の構成を元に作成していきます。

サインイン

PowerShell を使用してAzureリソースの作成などを行うために、Azure の資格情報を使用してサインインします。

Connect-AzAccount

リソースグループの作成

リソースグループを作成します。

#リソースグループパラメータ
$location = "japaneast"
$RGname01 = "peer-testRG01"

#リソースグループの作成
New-AzResourceGroup -Name $RGname01 -Location $location

#リソースグループの取得(代入)
$RG01 = Get-AzResourceGroup -Name $RGname01
パラメータ 今回の設定値 概要
$RGname01 peer-testRG01 リソースグループ名
$location japan east 作成する場所(リージョン

仮想ネットワークの作成

仮想ネットワークを作成します。

#仮想ネットワークパラメータ
$vnetName01 = "vnet001"
$snetName01 = "subnet01"
$vnetPrefix01 = "10.1.0.0/16"
$snetPrefix01 = "10.1.0.0/24"

#サブネットの定義
$Subnet01 = New-AzVirtualNetworkSubnetConfig `
    -Name $snetName01 `
    -AddressPrefix $snetPrefix01

#仮想ネットワーク作成
$vnet01 = New-AzVirtualNetwork `
    -ResourceGroupName $RGname01 `
    -Location $location `
    -Name $vnetName01 `
    -AddressPrefix $vnetPrefix01 `
    -Subnet $Subnet01
パラメータ 今回の設定値 概要
$vnetName01 vnet001 仮想ネットワーク名
$snetName01 japan east サブネット名
$vnetPrefix01 10.1.0.0/16 アドレス空間
$snetPrefix01 10.1.0.0/24 サブネットのアドレス範囲

同様に仮想ネットワーク2(vnet002)を作成します。

仮想ネットワークピアリングの実装

仮想ネットワークピアリングの設定を行います。

#仮想ネットワークの取得(代入)
$vnet01 = Get-AzVirtualNetwork -Name $vnetName01 -ResourceGroupName $RGname01
$vnet02 = Get-AzVirtualNetwork -Name $vnetName02 -ResourceGroupName $RGname01

#ピアリングパラメータ
$vnet001Tovnet002 = "peer-vnet001Tovnet002"
$vnet002Tovnet001 = "peer-vnet002Tovnet001"

#Vnet001からVnet002へのピアリング
Add-AzVirtualNetworkPeering `
-Name $vnet001Tovnet002 `
-VirtualNetwork $vnet01 `
-RemoteVirtualNetworkId $vnet02.Id `
-AllowForwardedTraffic

#Vnet002からVnet001へのピアリング
Add-AzVirtualNetworkPeering `
-Name $vnet002Tovnet001 `
-VirtualNetwork $vnet02 `
-RemoteVirtualNetworkId $vnet01.Id `
-AllowForwardedTraffic
項目 設定値 概要
リモート仮想ネットワークへのトラフィック 既定は許可
拒否したい場合:
-BlockVirtualNetworkAccess
接続先の仮想ネットワーク(vnet002)と通信を許可するか
リモート仮想ネットワークから転送されたトラフィック 既定は拒否
許可したい場合:
-AllowForwardedTraffic
接続先の仮想ネットワーク(vnet002)を経由した転送トラフィックを許可するか
仮想ネットワーク ゲートウェイまたはルート サーバー 既定は拒否
この仮想ネットワークにあるゲートウェイを使用する場合:
-AllowGatewayTransit
接続先のゲートウェイを利用する場合:
-UseRemoteGateways
この仮想ネットワークにある仮想ネットワークゲートウェイの使用を許可するか、接続先の仮想ネットワークゲートウェイを利用するか

まとめ

今回Powershellでの仮想ネットワークピアリングを試してみてAzureポータルで操作するより、早くデプロイできるので便利だと感じました。また、変数の値を変更するだけで自動で同様な環境が構築できるので作業ミスを減らすことができると思いました。

次回の記事ではBicepを利用して仮想ネットワークピアリングを実装してみたいと思います。

執筆担当者プロフィール
和田 剣斗

和田 剣斗(日本ビジネスシステムズ株式会社)

業務では主にAzureに携わっています。趣味はサウナや資産運用です。最近はテントサウナにはまっています。

担当記事一覧