🏯

検証環境でも Azure Bastion Developer を使ってセキュリティを高めよう

に公開4

はじめに

仮想マシンにアクセスする際に、パブリック IP を持つ踏み台サーバーを経由してアクセスするという形を取ることもあると思いますが、セキュリティ的に RDP や SSH のポートを解放するのはよろしくないです。本番環境ではセキュリティリスクを鑑みて Azure Bastion を利用しているが、検証環境ではなるべく費用を下げるため、ある程度のセキュリティリスクには目をつむるということもあるかと思います

しかし、Azure Bastion には基本使用料が「無料」の SKU(Developer) が存在しています

「無料」なので利用できる機能は限定的とはなってしまいますが、単純に「LinuxにSSHで接続したい」、「Windowsに RDP で接続したい」というだけの利用でしたら Developer SKU で事足ります(個人的にはファイルのアップロード/ダウンロードが出来ないのは痛いですが、Azure Storage を経由すれば、ファイル転送は可能です)

本記事では Developer SKU の構成手順について纏めています

Azure Bastion とは?

Azure Bastion は、仮想マシン(VM)に安全にリモート接続するためのAzureのサービスとなります。本サービスを利用することで VM にパブリック IP やクライアントソフトを使わず、Azure Portalから直接 RDP や SSH 接続できます

  • VM の RDP や SSH ポートを外部に公開する必要なし
  • 仮想ネットワーク内のすべてのVMに対して安全な接続を提供
  • TLS 通信でブラウザや既存の SSH/RDP クライアントから接続可能
  • フルマネージドな PaaS サービスなので運用も簡単

詳細は公式 Docs をご確認ください

SKU の種類は?

公式 Docs に表で纏まっています

表にもある通り、Developer については機能はかなり限定されているのでその点はご注意ください

Developer SKU の特徴

  • 同時接続は不可(常に1セッションのみ)
  • 接続手段は ブラウザベース(SSH/RDP) のみ
  • ネイティブクライアント(Remote Desktopアプリなど)を利用した、ファイルのアップロードやダウンロードができない
  • Bastion と同じ VNet にある VM だけに接続可能
  • 自動スケーリングなどの機能は無し
  • 自分専用のリソースではない(共有リソース)

Bastion のアーキテクチャについて

Developer SKU は他の SKU とアーキテクチャが異なります。構成について Developer SKU が他の SKU と大きく違う点は「Azure Basition 用の専用サブネット(AzureBastionSubnet)が不要」という点となります


詳細は公式 Docs をご確認ください。なお、上記では触れていませんが公式 Docs には「プライベート専用の Bastion デプロイ」構成についても記載されています

検証環境の構成図

作業の流れ

  1. Bastion のデプロイ
  2. VMへの接続(Linux, Windows)

1. Bastion のデプロイ

手順の詳細は以下の記事をご参照ください

1-1. Bastion リソースを作成する仮想ネットワークに移動し、リソースの作成を行います



1-2. リソースが作成されたことを確認します

2. VM への接続 (Linux, Windows)

2-1. VM への接続 (Linux)

接続する仮想マシンに移動し、接続を行います

仮想マシンへ接続されたことを確認します

2-2. VM への接続 (Windows)

接続する仮想マシンに移動し、接続を行います

仮想マシンへ接続されたことを確認します

なお、Developer SKU では同時接続は不可となるため Linux に接続した状態で Windows に接続すると Linux 側のセッションは Connection Error となって接続が切れます

また、反応が遅いなどがありましたら異なるブラウザを利用して再度アクセスしてみてください

まとめ

今回は Azure Bastion の Developer SKU の利用手順について纏めました。とても簡単に構成することが可能ですので、検証環境等での利用を検討いただければと思います

本記事の内容が Azure Bastion の利用を検討している方に少しでもお役にたてれば幸いです

Appendix

公式Docs
https://learn.microsoft.com/ja-jp/azure/bastion/bastion-overview

https://learn.microsoft.com/ja-jp/azure/bastion/tutorial-create-host-portal

https://learn.microsoft.com/ja-jp/azure/bastion/quickstart-developer

GitHub
https://github.com/takutsu001/bastion-dev-base-env

Microsoft (有志)

Discussion

yamapanyamapan

とても大好きdev basです!
VNet ピアリングしても異なるVNetのVMへの接続はできないんでしょうか?(なんか昔できたような気がしていて、気のせいかもしれません。)

takutsutakutsu

Bastion dev は手軽なのが良いですよね!
docsで「ピアリングされた仮想ネットワーク内のターゲット VM に接続する: いいえ」になってるので出来ないのかなーという理解でした。時間ある時にでも実機で確認してますねー。

yamapanyamapan

ああ~~!!!勘違いっぽいですね!すみません!
お手数おかけするのは申し訳ないです、ありがとうございました!!!

takutsutakutsu

いえいえ!個人的に気になったので試してみましたがやはりダメっぽいですね。
VNetピアリングしているVMへ接続自体はできるので一瞬「おや?」と思ったのですが、単に自動でVNetピアリング先にBastion Dev がデプロイされて接続されているだけでした(笑

「Hub(Bastion Dev デプロイ) <-- Peering --> Spoke (Bastion Dev 未デプロイ)」の環境でSpokeVMにアクセスできるかを確認しましたが、結果以下のようになる感じです。

「Hub(Bastion Dev デプロイ) <-- Peering --> Spoke (Bastion Dev デプロイ)」

これは、誤解しちゃいますね。