※パブリック プレビューのため、一般提供 (GA) のタイミングで手順や挙動が変更になる場合があります。
2021/11/09 (現地時間) に Azure Bastion のネイティブ クライアントによる接続サポートがパブリック プレビューになった旨のアナウンスがありました。
Azure Bastion 経由で Azure VM に RDP/SSH 接続する際、Azure ポータルから行う必要がありましたが、Azure CLI 経由でネイティブ クライアントによるリモート接続が可能となります。
Azure Bastion のネイティブ クライアント接続の方法については、以下のドキュメントに記載されていますが、パブリック プレビュー中のためか、記載通りの内容ではうまくいかなかったので、以下に纏めてみました。
Azure Bastion のネイティブ クライアント接続について
前提条件
Azure Bastion のネイティブ クライアント接続するための前提条件は以下となります。
- Azure Bastion の SKU は、「Standard」である必要があります。
- Azure Bastion 経由で接続する Azure VM の受信ポートはデフォルトである必要があります。
- Windows VM (RDP 接続) の場合は、「3389」のまま
- Linux VM (SSH 接続) の場合は、「22」のまま
- 接続元のプラットフォームは Windows OS 上にインストールされた Azure CLI (v2.23.0 以降) 経由となります。
- Windows OS 以外の OS (Linux など) にインストールされた Azure CLI や Azure Cloud Shell (Bash) は非サポート
- SSH 接続する場合
- Azure CLI に SSH 拡張機能がインストールされている必要があります。
az ssh - OpenSSH クライアント (C:\Windows\System32\OpenSSH\ssh.exe) がインストールされている必要があります。
Windows 用 OpenSSH の概要Windows 用 OpenSSH Client および Server を使用してリモート コンピューターをインストールしてリモート コンピューターに接続する方法について説明します。
- Azure CLI に SSH 拡張機能がインストールされている必要があります。
Azure Bastion 側の設定
Azure ポータル上で「ネイティブ クライアント サポート」の構成を有効にする必要がありますが、投稿時点 (2021/11/10) では Azure プレビュー ポータル (https://preview.portal.azure.com/) からのみ設定することが可能です。
新規作成する際に有効にする場合
以下の設定を実施、Azure Bastion を新規作成します。
既存の Azure Bastion を有効にする場合
管理ブレード内にある [設定] – [構成] から、以下の設定を実施します。
ネイティブ クライアント接続 Azure CLI コマンド
Azure AD 参加済みの Azure VM も接続可能ですが、ここではユーザー名とパスワードを用いた場合の Azure CLI コマンドを紹介します。
Windows VM に接続する場合
az network bastion rdp コマンドを用います。
- コマンド例
az network bastion rdp --name "<Azure Bastion 名>" --resource-group "<リソース グループ名>" --target-resource-id "接続先の Azure VM のリソース ID"
実行結果
コマンドを実行すると、リモート デスクトップに接続するときと同じようにユーザー名とパスワードを指定、入力して接続します。
接続時にはリモート デスクトップ接続の設定は行えませんが、Default.rdp の内容を見ているようなので、そちらを編集することで、全画面表示やコピーしたファイルを貼り付けることができるように設定することが可能です。
※Default.rdp は、初めてリモート デスクトップ接続する際に各ユーザーのドキュメント フォルダー内に作成されます。
Linux VM に接続する場合
az network bastion ssh コマンドを用います。
- コマンド例
az network bastion ssh --name "<Azure Bastion 名>" --resource-group "<リソース グループ 名>" --target-resource-id "<接続先の Azure VM のリソース ID>" --auth-type "password" --username "<ユーザー名>"
実行結果
コマンドを実行すると、指定したユーザー名のパスワードを聞かれるので、入力して接続します。
おまけ (コマンド実行時のエラー)
- Windows OS 以外のプラットフォーム上で Azure CLI コマンドを実行した場合
- SSH 接続を行う際に Azure CLI の SSH 拡張機能がインストールされていない場合
- SSH 接続を行う際に OpenSSH クライアント (ssh.exe) がインストールされていない場合
※ssh.exe は、「C:\Windows\System32\OpenSSH」に配置されている必要がある。
まとめ
現状色々と前提条件や制限はあるものの、ネイティブ クライアント接続サポートが利用可能になると、Azure ポータルを使わなくとも Azure Bastion 経由でリモート接続できるようになるので、GA が待ち遠しいですね。
要望があるとすれば、ドキュメントの記載内容でうまくいかなかったので GA 時にはちゃんとしてほしい。
// コマンドのほうが修正されそうですが (