※パブリック プレビューのため、一般提供 (GA) のタイミングで手順や挙動が変更になる場合があります。
2022/02/07 (現地時間) に Azure Bastion のネイティブ クライアント接続を経由したファイル転送機能が追加された旨のアナウンスがありました。
※Azure Bastion のネイティブ クライアント接続自体、パブリック プレビュー中。
Azure Bastion (SSH) 経由でのファイル転送
検証したこととして、Bastion が設定された Linux VM (ユーザー名/パスワード認証) に対して、Azure CLI がインストールされたローカル マシン上からファイル転送を行ってみました。※Azure CLI を動作させるコンソールは、ここでは Windows PowerShell を用いています。
アップロード手順
- コンソールを起動します。
- 以下のコマンドを入力、実行、ログインします。
az login
ログイン後は、必要に応じてサブスクリプションを切り替えます。
- 以下のコマンドを実行し、Azure Bastion に対して SSH トンネルを張ります。
az network bastion tunnel --name "<Azure Bastion 名>" --resource-group "<リソース グループ名>" --target-resource-id "<VM リソース ID>" --resource-port "<ターゲット VM ポート>" --port "<ローカル マシン ポート>"
ここで、<ターゲット VM ポート>は SSH ポート (22)、<ローカル マシン ポート>は任意の未使用ポートを指定します。
Ctrl + C を押下するまでは、SSH トンネルが張られた状態になります。 - 新しいコンソールを起動します。
- 以下のコマンドを実行し、ローカル マシンにあるファイルをターゲット VM にコピーします。
scp -P <ローカル マシン ポート> <ローカル マシンのファイル パス> <ユーザー名>@127.0.0.1:<ターゲット VM のファイル パス>
コマンドが正常に完了後、ターゲット VM にきちんとコピーされていることを確認できます。
ダウンロード手順
※現時点では SSH 経由でのファイル ダウンロードはサポート外となっていますが、試してみたら問題なく行えましたので、記載しています。
- コンソールを起動します。
- 以下のコマンドを入力、実行、ログインします。
az login
ログイン後は、必要に応じてサブスクリプションを切り替えます。
- 以下のコマンドを実行し、Azure Bastion に対して SSH トンネルを張ります。
az network bastion tunnel --name "<Azure Bastion 名>" --resource-group "<リソース グループ名>" --target-resource-id "<VM リソース ID>" --resource-port "<ターゲット VM ポート>" --port "<ローカル マシン ポート>"
ここで、<ターゲット VM ポート>は SSH ポート (22)、<ローカル マシン ポート>は任意の未使用ポートを指定します。
- 以下のコマンドを実行し、ローカル マシンにあるファイルをターゲット VM にコピーします。
scp -P <ローカル マシン ポート> <ユーザー名>@127.0.0.1:<ターゲット VM のファイル パス> <ローカル マシンのファイル パス>
コマンドが正常に完了後、ターゲット VM にきちんとコピーされていることを確認できます。
まとめ
Azure Bastion のネイティブ クライアント接続を経由したファイル転送機能が提供されたことで、より利便性は高まったと言えるでしょう。
早いこと GA して欲しいのと、Windows OS 以外の OS でネイティブ クライアント対応して欲しい。