Bastionとは?
Bastionとは、Azureが提供する仮想マシンへの接続をセキュアにする事ができるPaaSのサービスです。Bastionを利用する事で、仮想マシンを外部公開せずともRDP接続やSSH接続をする事が出来るようになります。
通常仮想マシンに接続する場合、RDP接続用、もしくはSSH接続用のポートを外部(パブリック)に公開する必要があります。
パブリックに公開すると、悪意のあるハッカーにアクセスされてしまう可能性があります。ハッカーにアクセスされ、総当たり攻撃などにより認証を突破されてしまうとOSにアクセスされ非常に危険です。
上記の様なリスクを回避する為にBastionは利用されます。Bastionを配置する事で、外部の仮想マシンを公開せず、Azure Portalよりセキュアにアクセスする事ができます。
以下がAzureが公開しているBastionの概要図となります。
ユーザーがAzure PortalよりBastionを経由して外部公開されていない(プライベートIPしか持たない)仮想マシンにアクセスしている事が分かります。
この様にBastionを利用する事で仮想マシンへの攻撃リスクを軽減させる事ができます。
ユースケース
前述の通り、仮想マシンの外部公開を避け、攻撃リスクを軽減させる際に利用します。
ハンズオン概要
“test-vm”という仮想サーバーを外部公開の設定をせずに作成します。つまり、Public IPを付与しない仮想マシンを作成するという事です。
仮想マシンを作成したらBastionを配置し、Bastionを経由して仮想マシンへのアクセスが出来るように設定します。
ハンズオンのフローは以下の様になります。
- ログイン
- 仮想ネットワークの作成
- 仮想マシンの作成
- Bastionの作成
手順
※当ページでは2023年2月現在の仮想ネットワークについて解説しています。クラウドサービスは頻繁にアップデートが施されるため、仕様が若干異なる可能性があります。
ログイン
まずは、Azure公式ページからAzureにログインしましょう。
Azureアカウントを保持している方はSign inを、保持していない方はFree accountよりアカウントを作成しましょう。
仮想ネットワークの作成
検索バーに”仮想ネットワーク”と入力し、”仮想ネットワーク”を選択します。
作成ボタンを押下し、以下の条件で”test-bastion”という仮想ネットワークを作成します。
基本タブは以下のように設定します。
IPアドレスタブは以下のように設定します。
注意が必要なポイントが2つあります。
- Bastion用のサブネットは”AzureBastionSubnet”という名前でなければいけません
- Bastion用のサブネットは/26以下のアドレス範囲でなければいけません
基本タブとIPアドレスタブの設定が完了したら、セキュリティタブ、タグタブの設定はスキップして仮想ネットワークを作成します。
※ 仮想ネットワークの作成方法詳細については、【Azure】仮想ネットワークとは?使い方徹底解説!を参照してください。
仮想マシンの作成
基本タブは以下のように設定します。
パブリックへの公開をしない仮想マシンを作成するので、パブリック受信ポートは”なし”を選択します。
ネットワークタブは以下のように設定します。
パブリックIP、パブリック受信ポートを”なし”に設定します。
その他のタブはデフォルトの設定のまま作成します。
※ 仮想マシン作成の詳細については、【Azure】Virtual Machines(VM)とは?使い方徹底解説!を参照下さい。
作成完了後、仮想マシンへのアクセスが不可能な事を確認します。
デプロイが完了したら”リソースに移動”を押下します。
仮想マシンの接続タブよりRDPファイルのダウンロードを押下し、.rdpファイルをダウンロードします。ダウンロードが完了したらファイルを開きます。
パブリック公開していないので以下の様なエラーが発生し、VMに接続できない事が確認できます。
Bastionの作成
では、仮想マシンへのアクセスを可能とする為にBastionを設定していきます。
Azure Portalのトップ画面へ遷移し、先程作成した仮想ネットワーク”test-bastion”を押下します。
Bastionタブの”手動で構成”を押下します。
基本タブは以下の様に設定します。
- サブスクリプション:任意のサブスクリプションを選択します。
- リソースグループ:任意のリソースグループを作成します。今回は”test-bastion”を選択します。
- 名前:任意の名前を付与します。今回は”test-bastion”と命名します。
- 地域:“Japan East”を選択します。
- レベル:SKUを選択します。Standardの場合、インスタンス数の変更、ファイルアップロードやスマートフォンからの接続、共有可能なリンク発行などの追加機能が利用可能です。詳細についてはAzure公式ドキュメントを参照下さい。
- インスタンス数:インスタンス数を設定します。同時にBastionへ接続するユーザーが多い場合、インスタンス数を増やします。今回はテスト目的なので、最低の2とします。※
1インスタンスで10のRDP接続と50のSSH接続が可能です。
- 仮想ネットワーク:Bastionを配置する仮想ネットワークを選択します。先程作成した”test-bastion”を選択します。
- サブネット:仮想ネットワークを選択すると、選択した仮想ネットワーク内の”AzureBastionSubnet”が自動的に選択されます。※”AzureBastionSubnet”というサブネットがない場合、Bastionを作成出来ません。
- パブリックIPアドレス:Bastionに付与するパブリックIPアドレスを作成する為に”新規作成”を押下します。
- パブリックIPアドレス名:任意の名前を付与します。今回は”test-bastion-ip”と命名します。
- パブリックIPアドレスのSKU:“Standard”が自動的に指定されます。
- 割り当て:“静的”が自動的に指定されます。
タグタブは設定せずに詳細タブに移動します。
詳細設定タブでは、Bastionに付与する機能などを設定します。
以下の様に指定し、Bastionで仮想ネットワークにアクセスして作業する際、コピー及び貼り付けが出来るように設定します。
デプロイが完了したら、Azure Portalのトップページに移動し、先程作成した”test-vm”という仮想マシンを押下します。
接続タブよりBastionを選択し、”Bastionを使用する”を押下します。
仮想マシンで設定したユーザー名とパスワードを入力し、”接続”を押下します。
新しいタブが開き、以下の様な画面が移ればBastionを用いた仮想マシンへの接続が成功です。
関連記事