Azure Bastionとハマりポイント

まだプレビューなんですが、Azure Bastionを試してみた。

何がすごい?

わざわざAzure VMで踏み台サーバ(bastion)を作らなくてもよくなりました。Azure内に複数VMを建てている場合よく踏み台サーバを用意してこれだけSSH接続出来るようにしてたんですが、これが楽になりました。というか、自分で踏み台サーバを建てなくても良いって超便利。すごい。

試してみた

Azure Bastionはまだプレビューで、プレビュー用Azure Portalからでしか作成出来ません。

とりあえずリソースグループを作成し、CentOS7.5のVMを立ち上げてみました。もちろんSSHポート(22)は外部開放していません。

最初だけ、Bastionを使うために登録作業が必要です。Powershellで下記のコマンドを叩きます。Cloud shellを使うと楽です。

Register-AzProviderFeature -FeatureName AllowBastionHost -ProviderNamespace Microsoft.Network
Register-AzResourceProvider -ProviderNamespace Microsoft.Network

自分のサブスクリプション(Pay as you go)だとRegisteredになるまで結構時間がかかりました。Get-AzProviderFeatureで確認します。

Get-AzProviderFeature -ProviderNamespace Microsoft.Network

RegisteredになればOKです。

ハマりポイント

ポータル画面の”Create a resource”から”Bastion”が出てこないなーと思ったんですが、preview.azure.comからアクセスしてもダメっぽくて、専用のポータル画面からでないと入れなかった。

画面上の帯がオレンジ色になっていれば正解です。

Bastionホスト追加の事前作業

気を取り直して、Bastionホストを作って行くのですが、その前にいくつか事前作業する必要があります。

まず、Bastionで接続するVMが存在する仮想ネットワークに専用のアドレス空間とサブネットを追加します。

サブネット名は、「AzureBastionSubnet」にする必要があります。

Bastionホストの作成

いよいよ本題のBastionホストの作成に入ります。ポータルの左上「Create a resource」をクリックし、検索ボックスに「Bastion」を選択します。

そのまま必要事項を入れていきます。

こんな感じにデプロイ出来れば成功です。

実際に繋いでみる

事前に構築したVM(CentOS7.6)にBastion経由でアクセスしてみましょう。

構築したVMのブレードに進み、「Connect」をクリックします。

「BASTION」というタブが増えているので、ここから接続していきます。

VM立ち上げ時に設定したユーザー名と鍵(秘密鍵が必要です)を設定します。

ここではテキスト貼り付けで検証用の秘密鍵を送ったんですが、実際にはファイルアップロードのほうがセキュアかも?

「Connect」をクリックした時、ポップアップブロックされるので許可してあげます。(こちらはChromeの場合です)

別ウィンドウにてシェルが出てきたら成功です。

AWSのSSMセッションマネージャーっぽい感じ。

わざわざ踏み台サーバを建てなくてもSSHログイン出来ちゃうって最高。