実践編!今さら聞けない~Azureハブ&スポーク構成~

 

前回の記事では、ハブ&スポーク構成の基本的概念、メリット・デメリットをご紹介しました。

今回は、ハブ&スポーク構成を実際に構築してみたいと思います。let’s try編です。

 

まずは簡単にどのような構成にするかおさらいしたいと思います。先日の記事から、設計図にアップデートが入りました。

前回との違いは、Azure Bastion(Hub)からVirtual Machine(Spoke)へのアクセスをセキュアにするため、ネットワークセキュリティグループをそれぞれのサブネットに対して設定しています。

完成図は下記になります。

 

1. 仮想ネットワークの作成

それでは、ハブの仮想ネットワークの作成から実施していきます。

Azure Portalにログインします。

 

1-1. 仮想ネットワーク ハブ

上からの検索枠から、「仮想ネットワーク」と検索します。

 

そこから、「作成」を選択します。

 

基本の項目は、以下の通り設定しました。

サブスクリプション : ご自身の

リソースグループ : rg-hub-spoke-devenv (新規作成)

仮想ネットワーク名 : Vnet_hubspoke_env

地域 : (Asia Pacific) Japan East

 

次にセキュリティですが、ここでAzure BastionとAzure Firewallの設定をすることができます。

「Azure Bastionを有効にする」「Azure Firewallを有効にする」にチェックを入れます。

 

#Azure Bastion

Azure Bastion ホスト名:Vnet_hubspoke_env-Bastion

Azure BationのパブリックIPアドレス:Vnet_hubspoke_env-Bastion-publicIpAddress

 

#Azure Firewall

Azure Firewall名 : Vnet_hubspoke_env-Firewall

サブネット名:AzureFirewallSubnet

レベル : Standard

ポリシー : なし

Azure FirewallのパブリックIPアドレス : Vnet_hubspoke_env-Firewall-publicIpAddress

 

 

次にIPアドレスです。

サブネットを作成できる箇所ですが、確認ポイントとしては、AzureBastion、Azure Firewallそれぞれのサブネットができているかです。

出来ていなければ、「サブネットの追加」から作成します。

 

それでは、「確認および作成」を押下して、「作成」します。

 

デプロイが完了しました。

 

1-2. 仮想ネットワーク スポーク

同じ手順でVM用の仮想ネットワークを作成します。

画像の通り設定します。

#基本

#セキュリティ

#サブネット

今回はVM用のサブネットが必要なため、「サブネットの追加」から、「vm-subnet」を作成しています。

デプロイが完了しました。

 

1-3. ネットワークピアリング

仮想ネットワークの作成が完了し、ハブとスポーク用の環境準備が完了しました。

 

それぞれ別々の仮想ネットワークになるため、それぞれの環境に通信することができません。

ネットワークピアリングの設定をすることで、相互通信ができるようにします。

 

ハブとして作成した「Vnet-hubspoke-env」を選択し、左にあるメニューから「ピアリング」を選択します。

 

ピアリングの概要画面までいきますので、上部の「作成」を押下します。

 

ピアリングの追加画面です。

通信の許可等は必要に応じて変更が必要ですが、今回はデフォルトのままで問題ないため

そのまま進めていきます。

「この仮想ネットワーク」の項目が、「Vnet-hubspoke-env」→ 「Vnet-spoke-env」への設定です。

 

「リモート仮想ネットワーク」が反対に、「Vnet-spoke-env」→「Vnet-hubspoke-env」への設定です。

 

最後に、ピアリング先の仮想ネットワーク(「Vnet-spoke-env」)を選択します。

 

これで設定は完了で、接続済状態になればピアリングされたことになります。

 

反対に、「Vnet-spoke-env」のピアリング設定を見てみると、

ピアリングされていることがを確認できます。

 

2. 仮想マシンの作成

次に、スポークに構築するVMを作成します。

※今回はそこまで詳細には記載しません。

先ほど作成したVM用のサブネットに紐づける必要があるため、そこだけは注意しました。

 

下記が作成したVMの情報をまとめています。

 

3. ネットワークセキュリティグループの作成

Azure BastionからVMへの接続をセキュアにするため、2つのネットワークセキュリティグループ(NSG)を作成します。

それぞれ、Azure Bastion、vm用サブネットに対して紐づけます。

NSGの設定ですが、今回は先人の知恵をお借りします。

※参考URL:Bastion のサブネットに 適用する NSG の設定例 | Japan Azure IaaS Core Support Blog (jpaztech.github.io)

 

仮想ネットワークと同様、Azure Portalの検索画面から、

「nsg」と選択し、「ネットワークセキュリティグループ」を選ぶと、概要画面まで遷移します。

 

 

3-1. NSG – Azure Bastion

では、AzureBastion用のサブネットに紐づけるNSGから….

とはいえ、NSGそのものの作成は数十秒で完了します。名前を決めるだけです。

 

3-1-1. 受信セキュリティ規則

ここからが本番です。受信セキュリティ規則の設定画面まで移動します。

受信セキュリティ規則とは、名の通り、受信した通信をどのようしてフィルタリングするかなどを決めることができるものです。

 

URL手順に従い、今回設定する受信規則は4つです。

 

①Gateway Managerからの通信許可

②Azure LoadBalancerからの通信許可

③ピアリングしたネットワーク間の通信許可

※Azureサービスからの通信は、Service Tagを使うと、サービスで判断してくれるため、事細かくIPアドレスで制限する必要がなくなることから、ネットワーク制御において、とても有効的な設定手段です。

④クライアントからの通信許可(社内と置き換えていただいても大丈夫です)

⑤上位以外の通信拒否

 

設定が完了しました。

3-1-2. 送信セキュリティ規則

次に、送信セキュリティ規則を設定します。

 

今回設定する送信規則は5つです。

①仮想ネットワークに向けたrdp、ssh(TCP ポート 3389,22)の送信許可(rpd、ssh、両ポートを開けておく必要があります)

②AzureCloudへのHTTPS(TCP ポート 443)送信許可

③Internet への HTTP (TCP ポート 80) の送信許可 ※Bastionのセッション情報管理のため

④ピアリングしている仮想ネットワークへの送信許可

⑤上位以外の送信拒否

 

 

 

ここまで設定が完了したら、次に、受信・送信セキュリティ規則と同じメニュー一覧にある

サブネットを選択します。ここで、紐づけたいサブネットを選びます。

 

「関連付け」でサブネットを選ぶ。

 

3-2. NSG – Virtual Machine

同じ手順でVM用のNSGを作成します。

 

3-2-1. 受信セキュリティ規則

それでは、受信セキュリティ規則を設定します。

 

VM側で設定する受信セキュリティ規則は2つです。

①Azure Bastion(※Bastion用に作成したサブネットIP)からの受信許可

②上記以外の受信拒否

 

 

送信セキュリティは今回はデフォルトのままとします。

基本的には、必要最小限の送信規則にすることをおすすめします。

 

同じように、こちらのNSGをVM用に作成したサブネットに紐づけて完了です。

4. 実践編

それでは、アクセスしてみましょう。

仮想ネットワークから、「Vnet_hubspoke_env」を選択し、左サイドメニューにある「Bastion」を選びます。

 

概要画面にある「接続先・・・」のプルダウンから、作成したVMを選択します。

ユーザ名、パスワードは、VMの管理者用アカウントを利用します。作成時に設定したものです。

そして、「接続」です。

※ここで合わせて、キーボード設定を日本語にしておくのもOKです。

 

無事、Bastion経由で、VMまでアクセスすることができました。

 

さて、直接RDP接続しようとする場合にどうなるのか見てみましょう。

Windowsキー > リモートデスクトップ接続と検索します。

IPアドレスを指定して、同じように、ユーザ名、パスワードはVM管理者アカウントを使用します。

 

結果、エラーとなりました。

VMに紐づいている受信セキュリティ規則を確認すると、RDP通信はすべて任意で許可しているので、

想定通りの動きをしていることが確認できました。

 

5. まとめ

実践編ということで、実際にAzure上に構築してみました。

今回作成した構成はあくまでも一例に過ぎません。

Bastionを利用しない場合もあれば、Bastion利用する場合でも、クライアントからのIPで制御ではなく、Azure Firewallで一括で管理する方法もあるかと思います。

Azure環境構築時に、まずはこちらのハブ&スポーク構成をインフラ環境デザインのスタート地点として、自社の環境にあった環境構築の少しでも助けになれば嬉しいです。

この記事を書いた人

森 信之介
テクニカルマーケターとして、ブログ執筆、セミナー講師を行っております!