はじめに
2019 年 11 月に Azure Bastion が正式に利用できるようになりました。
せっかくなので、Azure Bastion の設定手順などを紹介してみたいと思います。
この情報が、どなたかのお役に立つと幸いです!
Azure Bastion って、何に使うの?
仮想ネットワーク (VNet) に構築した仮想マシン (VM) に
“安全に” SSH やリモート デスクトップ接続するために使います。
Azure の仮想ネットワーク (VNet) に IaaS (VM) を構築するというのは、よくあることです。
構築後は、SSH やリモート デスクトップを使用して VM に接続し、作業をするわけですが…
VNet 内に構築した VM は、外部のネットワークと通信することは基本的にできません。
なので、下記の方法などを使用し、VNet および VM へ接続できるようにする必要があります。
- 踏み台 VM を用意し、踏み台 VM にパブリック IP アドレスを設定する。
- VNet とオンプレミスの環境を VPN Gateway で接続する。
- ExpressRoute を使用する。
とはいえ、パブリック IP アドレスを設定して SSH やリモート デスクトップに必要なポートを公開するのはドキドキしてしまいます。
VPN Gateway と ExpressRoute は、企業の場合、一般的な方法だと思いますが、おそらく個人ではあまり使用しないのではないでしょうか。
そこで、Azure Bastion の登場です。
Azure ポータルでポチポチするだけで、安全に VM に接続できる環境ができあがります!
Azure Bastion って、どうやって構築するの?
さっそく、Azure Bastion を構築していきたいと思います。
この記事では、下図の構成を構築します。
また、赤枠の部分を構築するものとし、それ以外の部分は構築済みという前提とします。
構築は下記の手順で行います。
- サブネットの構築
- Azure Bastion の構築
- Network Security Group (NSG) の設定
※ NSG の設定は、Azure Bastion の動作に必須ではありませんが、
より安全に使用するために行っています。
サブネットの構築
Azure Bastion には、専用のサブネットが必要です。
なので、まずはサブネットから作成します。
(Azure Bastion の作成画面で、ついでにサブネットを作成しても OK です。)
-
Azure ポータルのメニューから
すべてのサービス
を選択し、検索ボックスにvnet
と入力し、検索します。
すると、仮想ネットワーク
というサービスが見つかるので、これをクリックしてください。
-
VNet のメニューの
サブネット
をクリックし、表示されたサブネット一覧の上部にあるサブネット
をクリックしてください。
入力項目 | 入力値 | 備考 |
---|---|---|
名前 | `AzureBastionSubnet` | **Azure Bastion のサブネットは、 必ずこの名前にしないといけません!** |
アドレス範囲 | 【任意のアドレス範囲】 | `/27` または それより大きい範囲を指定してください。 (`/26` など) |
Azure Bastion の構築
「構築手順 (サブネット)」で構築したサブネットに、Azure Bastion を構築します。
-
Azure ポータルのメニューから
すべてのサービス
を選択し、検索ボックスにbastion
と入力し、検索します。
すると、複数の要塞
というサービスが見つかります。
これが Azure Bastion なので、クリックしてください。
-
下図のように入力し、Azure Bastion を作成してください。
(このときは、デプロイ開始から完了まで 5 分くらいでした。)
入力項目 | 入力値 | 備考 |
---|---|---|
プロジェクトの詳細 | ||
サブスクリプション | 【任意のサブスクリプション】 | |
リソース グループ | 【任意のリソース グループ】 | |
インスタンスの詳細 | ||
名前 | 【(Azure Bastion の) 任意のリソース名】 |
|
地域 | 【任意のリージョン】 | 利用可能なリージョン (2019/12 時点) • 米国西部 • 米国東部 • 西ヨーロッパ • 米国中南部 • オーストラリア東部 • **東日本** |
仮想ネットワークを構成します | ||
仮想ネットワーク | 【Azure Bastion の サブネットを作成した VNet】 |
|
サブネット | AzureBastionSubnet |
|
パブリック IP アドレス | ||
パブリック IP アドレス | 新規作成 | 既存のものを 流用してもいいと思います。 |
パブリック IP アドレス名 | 【任意のリソース名】 |
Network Security Group (NSG) の設定
より安全に Azure Bastion を使用するため、NSG を作成し、サブネットに設定します。
AzureBastion のサブネットの NSG
Azure Bastion のサブネット (AzureBastionSubnet) に NSG を設定します。
-
Azure ポータルのメニューから
すべてのサービス
を選択し、検索ボックスにnsg
と入力し、検索します。
すると、ネットワーク セキュリティ グループ
というが見つかるので、これをクリックしてください。
入力項目 | 入力値 |
---|---|
プロジェクトの詳細 | |
サブスクリプション | 【任意のサブスクリプション】 |
リソース グループ | 【任意のリソース グループ】 |
インスタンスの詳細 | |
名前 | 【任意のリソース名】 |
地域 | 【VNet と同じリージョン】 |
-
VNet のメニューの
受信セキュリティ規則
をクリックし、表示された受信セキュリティ規則一覧の上部にある追加
をクリックしてください。
-
受信セキュリティ規則が、下図のようになっていれば OK です。
- 1001 : Allow-HTTPS-InBound
- Internet からの接続を HTTPS (ポート : 443) のみ許可する設定です。
- 1002 : Allow-GatewayManager-InBound
- コントロール プレーン (GatewayManager) からの接続を HTTPS (ポート : 443) のみ許可する設定です。
- 4096 : Deny-All-InBound
- すべての接続を拒否する設定です。
- 1001 : Allow-HTTPS-InBound
-
VNet のメニューの
送信セキュリティ規則
をクリックし、表示された送信セキュリティ規則一覧の上部にある追加
をクリックしてください。
- 1001 : Allow-SSH-RDP-OutBound
- VNet 内への接続を SSH (ポート : 22) とリモート デスクトップ (ポート:3389) のみ許可する
設定です。
- VNet 内への接続を SSH (ポート : 22) とリモート デスクトップ (ポート:3389) のみ許可する
- 1002 : Allow-AzureCloud-OutBound
- Azure 内のパブリック エンドポイントへの接続を HTTPS (ポート : 443) のみ許可する設定です。
- 4096 : Deny-All-OutBound
- すべての接続を拒否する設定です。
VM のサブネットの NSG
VM のサブネット (IaaS-subnet) に NSG を設定します。
-
NSG の作成は、同じ手順なので省略します。
-
下図のように入力し、受信セキュリティ規則を 2 つ追加してください。
-
受信セキュリティ規則が、下図のようになっていれば OK です。
- 1001 : Allow-HTTPS-InBound
- Azure Bastion を構築したサブネットからの接続を SSH (ポート : 22) とリモート デスクトップ (ポート:3389) のみ許可する設定です。
- 4096 : Deny-All-InBound
- すべての接続を拒否する設定です。
- ⚠ Azure Bastion を試すのに必要なポートしか開けていないので、他に必要なポートがある場合は、適宜開けてください。
- 1001 : Allow-HTTPS-InBound
-
送信セキュリティ規則の設定は、今回は
面倒なので省略します。
ここまでの NSG 設定と同じように、必要最小限な範囲で許可するのがいいと思います。
Azure Bastion って、どうやって使うの?
Azure Bastion が構築できたので、使ってみたいと思います。
-
仮想マシンに接続する
が表示されたら、要塞
のタブを選択してください。
VM のログイン情報を入力し、接続
をクリックすると、Azure Bastion 経由で VM に接続されます。
⚠ ポップアップ ブロックに注意!
文字列のコピー&ペースト
-
Azure Bastion でログインすると、画面左側の中央あたりに
>>
のようなアイコンがあります。
これ (Clipboard) を使用して、文字列のコピー&ペーストが行えます。
-
画面上のコピーしたい文字列を選択状態にして、
>>
をクリックすると、選択した文字列が Clipboard に入っています。
-
ペーストしたい文字列を Clipboard に入力して
<<
をクリックして閉じてから、(Linux の場合) 画面上で右クリックすると、Clipboard に入力した文字列がペーストされます。
Azure Bastion って、どう安全なの?
『VM 自体でのユーザー制御機能』+『Azure のユーザー・権限制御機能』で、
より安全に SSH 、リモート デスクトップが利用できます!
Azure Bastion による接続は、Azure ポータルを経由する必要があります。
つまり、Azure Active Directory のユーザー管理機能が使用できます。(ユーザーのサインインのブロックなど…)
また、Azure の IAM などのアクセス管理機能も使用できるので、Azure Bastion を利用するだけのユーザーを用意し、そのユーザーにしか Azure Bastion を利用させないといったことも可能です。
Azure Bastion って、高いの?安いの?
『¥ 10.64 (ユニット/時間ごと)』なので、1 ヶ月で『¥ 7,767.20』になります。(2019/12 時点)
上記の金額が基本料金で、これにデータ転送量が追加されます。
Azure の安い VM と同じくらいの金額だと思うので、VM の OS アップデートなどの管理の手間がないことを考えれば、妥当ではないかと思います。
おわりに
外部のネットワークから VM を管理したいと思ったとき、踏み台 VM など、今までの手法の他に Azure Bastion という方法もあるということを、頭の片隅に置いておいていただけると幸いです!