検証環境でも Azure Bastion Developer を使ってセキュリティを高めよう
はじめに
仮想マシンにアクセスする際に、パブリック 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 デプロイ」構成についても記載されています
検証環境の構成図
作業の流れ
- Bastion のデプロイ
- 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
GitHub
Discussion
とても大好きdev basです!
VNet ピアリングしても異なるVNetのVMへの接続はできないんでしょうか?(なんか昔できたような気がしていて、気のせいかもしれません。)
Bastion dev は手軽なのが良いですよね!
docsで「ピアリングされた仮想ネットワーク内のターゲット VM に接続する: いいえ」になってるので出来ないのかなーという理解でした。時間ある時にでも実機で確認してますねー。
ああ~~!!!勘違いっぽいですね!すみません!
お手数おかけするのは申し訳ないです、ありがとうございました!!!
いえいえ!個人的に気になったので試してみましたがやはりダメっぽいですね。
VNetピアリングしているVMへ接続自体はできるので一瞬「おや?」と思ったのですが、単に自動でVNetピアリング先にBastion Dev がデプロイされて接続されているだけでした(笑
「Hub(Bastion Dev デプロイ) <-- Peering --> Spoke (Bastion Dev 未デプロイ)」の環境でSpokeVMにアクセスできるかを確認しましたが、結果以下のようになる感じです。
「Hub(Bastion Dev デプロイ) <-- Peering --> Spoke (Bastion Dev デプロイ)」
これは、誤解しちゃいますね。