🏯

Azure Bastionの共有可能なリンクを使って楽に作業依頼する

2023/01/19に公開

Azure Bastion

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

Azure Bastion は、ブラウザーと Azure portal を使って、またはローカル コンピューターに既にインストールされているネイティブ SSH か RDP クライアントを介して仮想マシンに接続できるようにするサービスで、ユーザーがデプロイします。 Azure Bastion サービスは、お使いの仮想ネットワーク内でプロビジョニングする、フル プラットフォーム マネージド PaaS サービスです。 これにより、TLS 経由で Azure portal から直接、仮想マシンに安全かつシームレスに RDP/SSH 接続できます。 Azure Bastion 経由で接続する場合、仮想マシンにパブリック IP アドレス、エージェント、クライアント ソフトウェアはいずれも不要です。

Bastion は、プロビジョニングされる仮想ネットワーク内のすべての VM に対して安全な RDP および SSH 接続を提供します。 Azure Bastion を使用すると、RDP または SSH を使用した安全なアクセスを提供しながら、お使いの仮想マシンが RDP または SSH ポートを外部に公開しないように保護されます。

ということで、利用するとVMアクセスに対するNSGの管理などから解放されて非常に楽なわけです(コスト高めかつ停止できないのがネック)

共有可能なリンク

  • 2022年12月のアップデートでAzure Bastion経由のVMアクセスにリンクが発行できる機能が追加
  • Azure Portalへのアクセス権の付与、ゲスト招待等が不要
  • 発行したリンクにアクセスすれば、ゲストOS上の認証を通すだけでVMにアクセス可能

https://azure.microsoft.com/ja-jp/updates/azure-bastion-shareable-links/

利用方法(デプロイ手順)

VM作成

  • VMのパブリック受信ポートは無しでOK。これがBastionのメリットでもある。

Bastion作成・設定

  • VMのデプロイ先のVNETからBastionの設定を開きデフォルト設定でデプロイ(数分待つ)

  • Bastionのリソースから[構成]を開きBasic->StandardにSKUを変更

  • [共有可能なリンク]にチェックを入れる

  • [適用]をクリック

  • 画面が更新されて[共有可能リンク]が追加される

  • [共有可能リンク]を開いて[追加]から接続先VMを選択して[適用]

  • リンクが発行されるためそれを開くとVMにアクセス可能

プライベートウィンドウからリンクにアクセスしてみる

  • リンクを叩くとOS側の認証画面が出る

  • 認証をパスするとデスクトップ画面が表示される

  • つまり、AADへの招待やサブスクリプションへの権限付与などが全く不要

  • Bastion側でリンクを削除した状態だとエラーになる

同じVMに対するリンクを再発行してみる

  • 発行のたびにリンクのアドレスが変わるかどうかの確認
  • リンクを削除しないまま同じVMへのリンクを追加
    • 既存:https://bst-35199573-af0b-4c84-bacf-c3fa0484eebc.bastion.azure.com/api/shareable-url/65d58d71-bf49-4121-b84b-d000103c4299

    • 再発行後:https://bst-35199573-af0b-4c84-bacf-c3fa0484eebc.bastion.azure.com/api/shareable-url/65d58d71-bf49-4121-b84b-d000103c4299

    • 同一VMへのリンクを再追加してもリンクは変わらない模様

  • 一度既存リンクを削除して追加してみる
    • https://bst-35199573-af0b-4c84-bacf-c3fa0484eebc.bastion.azure.com/api/shareable-url/997e7214-942c-4d68-ac24-b041b41d919b
    • shareable-url以後のuuidが変わっている
  • リンクを確実に変更するにはリンクの削除+再追加が必要になる

おわり

リンクの発行はAADを介さないという点でかなり便利に感じました。ただ、SASリンクのように有効期限などが細かく設定できるともっと使い勝手が増すかなという印象です。そもそもの前提として1度の作業用に暫定的に払い出すためのリンクだと思うので、こまめに削除する必要がありそうですね。

GitHubで編集を提案
Microsoft (有志)

Discussion