Azure Bastion Standard SKUの共有リンクは、作成時にExpirationへ有効期限の日時を設定することで、その日時以降は対象のAzure VMまたはVirtual Machine Scale Setsへの接続に使えなくできます。期限を迎えると、共有リンク一覧のResource statusが「Link expired」に変わります。
予定より早く保守作業が終了した場合や、誤ってリンクを共有した場合は、Expirationを待たずに対象リンクをDeleteで削除します。
ただし、公式資料で確認できるのは「期限後、そのリンクを接続に使用できなくなる」という動作です。期限到達時点ですでに接続中のRDP・SSHセッションが強制切断されるとは明記されていません。有効期限は、既存セッションの切断機能ではなく、期限後の接続を防ぐための機能として扱う必要があります。([Microsoft Learn][1])
Azure Bastion共有リンクに有効期限を設定する仕組み
Azure BastionのShareable Link機能を使うと、利用者はAzure portalへサインインせず、管理者から渡されたURLをブラウザで開いて対象リソースへ接続できます。
共有リンクが対応する主な接続先は、次のとおりです。
- Azure Virtual Machines
- Azure Virtual Machine Scale Sets
ただし、共有リンク自体にVMの認証情報は含まれません。利用者はリンクを開いたあと、対象リソースに設定されているユーザー名とパスワード、または秘密鍵などを入力して認証します。
つまり、共有リンクの有効期限を設定しても、VMのユーザーアカウントやパスワードが自動的に失効するわけではありません。共有リンクと対象リソースの認証情報は、別々に管理されます。([Microsoft Learn][1])
設定前に確認すること
Azure BastionをStandard SKUにする
Shareable Link機能を利用するには、Azure BastionがStandard SKUである必要があります。Basic SKUでは利用できません。
Azure portalで対象のBastionリソースを開き、次の設定を確認します。
- 左側のメニューから「Configuration」を開く
- Tierで「Standard」を選択する
- 機能一覧で「Shareable Link」を有効にする
- 「Apply」を選択する
設定を変更すると、Bastionホストの更新処理が行われます。Microsoft Learnでは、更新には約10分かかると案内されています。([Microsoft Learn][1])
共有リンクを作成・削除できる権限を確認する
Azure Bastionに対するRead権限だけでは、共有リンクの表示や利用はできても、作成や削除はできません。
共有リンクを管理する担当者には、Bastionホストの「Access control(IAM)」で、必要な操作権限が付与されているか確認します。
| 操作 | Azureのアクション |
|---|---|
| 共有リンクを作成する | Microsoft.Network/bastionHosts/createShareableLinks/action |
| 共有リンクを表示する | Microsoft.Network/bastionHosts/getShareableLinks/action |
| リソースを指定して共有リンクを削除する | Microsoft.Network/bastionHosts/deleteShareableLinks/action |
| トークンを指定して共有リンクを削除する | Microsoft.Network/bastionHosts/deleteShareableLinksByToken/action |
特にgetShareableLinks/actionがない場合、利用者は共有リンクを表示できません。作成だけでなく、確認や削除まで担当させる場合は、それぞれの操作に必要な権限を確認してください。([Microsoft Learn][1])
Azure Bastion共有リンクに有効期限を設定する手順
Shareable linksの作成画面を開く
Azure portalで、共有リンクを作成するBastionリソースを開きます。
左側のメニューから「Shareable links」を選択し、「Add」を選択します。
接続先のリソースを選択する
「Create shareable link」画面で、次の項目を選択します。
- Subscription
- Resource group
- Resource
複数のリソースを選択した場合は、選択したリソースごとに個別の共有リンクが作成されます。
一時保守の対象が1台だけであれば、誤って別のVMへ接続できるリンクを作成しないよう、対象リソースを絞って選択します。([Microsoft Learn][1])
Expirationに失効日時を設定する
「Expiration」で、共有リンクを使えなくする日付と時刻を指定します。
たとえば、外部事業者による保守作業が9月25日の18時から20時まで予定されている場合は、組織の運用ルールに従い、作業終了予定時刻に合わせてExpirationを設定します。
設定後、「Apply」を選択すると共有リンクが作成されます。
重要なのは、URLを発行してから後で削除する運用に頼るのではなく、作成時点で終了日時まで設定しておくことです。担当者が削除を忘れた場合でも、設定した日時を過ぎれば、そのリンクは接続に使えなくなります。([Microsoft Learn][1])
作成後にExpiration列を確認する
共有リンクを作成したら、「Shareable links」の一覧に戻り、次の項目を確認します。
| 確認項目 | 確認内容 |
|---|---|
| Resource | 対象のVMまたはVM Scale Setsが正しいか |
| Shareable link | 発行されたリンクが表示されているか |
| Expiration | 意図した日付と時刻になっているか |
| Resource status | 利用可能な状態になっているか |
Expirationは設定したつもりで終わらせず、一覧に表示された日時まで確認してください。特に複数のリソースへリンクを作成した場合は、各リンクの対象リソースとExpirationを個別に確認します。
期限後は「Link expired」になっているか確認する
設定したExpirationを過ぎると、その共有リンクは対象リソースへの接続に使えなくなります。
共有リンク一覧では、対象リンクのResource statusが「Link expired」に変わります。期限切れのリンクは、Resource statusのフィルターを使って抽出できます。([Microsoft Learn][1])
保守終了後は、少なくとも次の2点を確認します。
- Expirationに設定した日時を過ぎている
- Resource statusが「Link expired」になっている
期限切れになっても、共有リンクが一覧から自動的に消えるとは限りません。「一覧に残っているからまだ利用できる」と判断せず、ExpirationとResource statusで状態を確認します。
期限前に接続を止める場合はDeleteを使う
Expirationは、あらかじめ決めた日時に共有リンクを失効させる機能です。
一方、次のような場合は、設定日時を待たずに共有リンクを削除します。
- 保守作業が予定より早く終了した
- 作業担当者が変更された
- 誤った相手にリンクを送信した
- 対象リソースを間違えてリンクを作成した
- 一時的な接続を直ちに終了したい
削除する場合は、Bastionリソースの「Shareable links」を開き、対象リンクを選択して「Delete」を実行します。([Microsoft Learn][1])
予定失効と期限前の取り消しは、次のように使い分けます。
| 状況 | 使用する操作 |
|---|---|
| 保守終了日時が決まっている | Expirationを設定する |
| 設定した日時より前に使えなくしたい | Deleteで削除する |
| 期限を過ぎたリンクを確認したい | Resource statusで「Link expired」を確認する |
| 期限切れリンクだけを探したい | 状態フィルターで抽出する |
有効期限は接続中セッションの強制切断とは限らない
Azure Bastion共有リンクのExpirationについて、公式資料で明記されているのは、設定した日時を過ぎると「リンクを使用して対象リソースへ接続できなくなる」という点です。
一方で、期限到達前にすでに確立されているRDP・SSHセッションが、Expirationの時刻に即座に切断されるとは記載されていません。([Microsoft Learn][1])
そのため、次のような説明は避けるべきです。
Expirationを20時に設定すれば、20時になった瞬間に保守担当者のRDP接続が強制終了する
公式資料から確認できる範囲では、次のように説明するのが正確です。
Expirationを20時に設定すると、20時以降、その共有リンクを新たな接続に使用できなくなる
接続中セッションの終了まで厳密に管理する必要がある場合は、共有リンクの有効期限だけで要件を満たせると判断せず、セッション終了の確認方法を含めて別途運用を設計する必要があります。
Azure Bastion共有リンクを利用できない構成
Shareable Link機能は、すべてのAzure Bastion接続構成に対応しているわけではありません。
| 構成 | 共有リンクの対応状況 |
|---|---|
| Bastionと同じ仮想ネットワーク内のAzure VM | 対応 |
| 直接ピアリングされた仮想ネットワーク内のAzure VM | 対応 |
| テナントをまたぐピアリング先 | 非対応 |
| Virtual WAN経由 | 非対応 |
| オンプレミスのVM | 非対応 |
| Azure以外のVMまたはVM Scale Sets | 非対応 |
外部事業者向けの一時保守リンクを作成する前に、対象リソースがShareable Linkの対応範囲に含まれているか確認してください。([Microsoft Learn][1])
一時保守での運用手順
一時的な保守作業でAzure Bastion共有リンクを使用する場合は、次の順序で管理すると、作成忘れや削除忘れを防ぎやすくなります。
- 対象のBastionがStandard SKUであることを確認する
- ConfigurationでShareable Linkを有効にする
- 作成担当者に必要なIAM権限があることを確認する
- 対象のVMまたはVM Scale Setsを選択する
- Expirationに保守終了日時を設定する
- Applyで共有リンクを作成する
- 一覧のResourceとExpirationを確認する
- 利用者へ共有リンクを案内する
- 対象リソースの認証情報を別途案内する
- 保守終了後、Resource statusを確認する
- 予定より早く終了した場合はDeleteで削除する
Azure Bastion共有リンクを指定日時で接続できなくするには、リンク作成時のExpiration設定を使用します。期限後はResource statusが「Link expired」になっていることを確認し、期限前に取り消す必要がある場合はDeleteを使用してください。
そして、Expirationは接続中セッションの強制切断を保証するものではありません。「共有リンクからの接続を期限後に受け付けない機能」として位置付け、必要に応じて既存セッションの終了確認も運用に組み込みましょう。
[1]: https://learn.microsoft.com/en-us/azure/bastion/shareable-link “Create a shareable link for Azure Bastion | Microsoft Learn”

コメント