【Azure Bastion】ネイティブクライアントを利用したAzure Bastionへの接続(RDP)

# はじめに
Azureの仮想ネットワークに構築されたAzure VMに対してRDPやSSHにて接続を実施する場合、パブリックIPアドレスを持つ踏み台VMを構築し、踏み台を経由して接続を実施することが一般的かと思いますが、Azureでは踏み台機能のマネージドサービスとしてAzure Bationを利用することができます。
仮想ネットワーク上にAzure Bationをデプロイすることで、Azure Portal経由でAzure VMに対してRDPやSSH接続を実施することが可能になります。
今回はAzure Bastionのネイティブクライアント接続機能を利用して、Azure Portalからではなく、WindowsOSのリモートデスクトップ接続機能を利用してAzure VMにRDP接続する手順を検証します。

Azure Bastionの詳細は[こちら](https://learn.microsoft.com/ja-jp/azure/bastion/bastion-overview)を参照ください

※ 本ブログに記載した内容は個人の見解であり、所属する会社、組織とは全く関係ありません。

# 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/a0b3074d-5104-429e-88c6-d96ad03efd72.png)

# Azure Bastionの構築
### 前提
・Azure Bastionをデプロイするリソースグループが作成されていること。
・Azure Bastionをデプロイする仮想ネットワーク上にサブネット「AzureBastionSubnet」が作成されていること

:::note warn
AzureBastionSubnetのIP アドレス範囲の値は /26 以上のサブネットを使用します。
:::
・Azure Bastionをデプロイする仮想ネットワーク上でRDP接続先のAzure VMが構築されていること。本検証ではWindowsServer2022を構築しています。

### 手順

Azure Portalから、サービス「Bastion」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/26c392b8-5154-95d8-b5bc-4ada59623599.png)

「+ 作成」をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/24893d22-efc2-86c6-1f97-4eea77a70c01.png)

「基本」タブについて以下の通り設定します。


＜プロジェクトの詳細＞
**リソースグループ：** 事前に準備しているAzure Bastionをデプロイするリソースグループを選択します。

＜インスタンスの詳細＞
**名前：** 任意の名前を入力します。
**地域：** 本検証では東日本リージョンを利用します。
**レベル：** Standardを選択します。

:::note warn
ネイティブクライアント接続を利用するためにはStandardレベルを選択する必要があります。
:::

**インスタンス数：** 本検証では最小の2台とします。

＜仮想ネットワークの構成＞
**仮想ネットワーク：** 事前に準備しているAzure Bastionをデプロイする仮想ネットワークを選択します。
**サブネット：** 事前に作成した「AzureBastionSubnet」を選択します。

＜パブリックIPアドレス＞
**パブリックIPアドレス：** 「新規作成」を選択します。
**パブリックIPアドレス名：** 任意の名前を設定します。

:::note warn
事前に作成されているパブリックIPアドレスを利用しても問題ありませんが、SKUがStandardで、割り当てが「静的」の必要があるのでご注意ください。
:::

設定が完了したら「次：詳細設定 >」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/bd776c90-a8ac-e089-160e-f288fe64cf23.png)

「詳細設計」タブを以下の通り設定します。

＜Bastionの機能＞
「ネイティブクライアントサポート」を有効にします。

:::note info
本検証ではコピー/貼り付け機能についても有効にしますが、必要に応じてその他の機能についても有効にします。
:::

設定が完了したら「確認及び作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/540a7566-0e52-f229-542f-fd4cecd0ed1a.png)

設定内容に間違いがないことを確認し、「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/97e015c0-709c-fe7b-d00b-2d55ce5a2153.png)


# ネイティブクライアント接続検証
### 前提
・Azure CLIがインストールされていること。 (バージョン 2.32 以降)

:::note info
Azure CLIのインストール手順は[こちら](https://learn.microsoft.com/ja-jp/cli/azure/install-azure-cli)を参照ください
:::

### 手順

PowerShell を起動し、az loginにてEntra ID ユーザでサインインをします。
※ Azure Bastionへのアクセス権限を持っているユーザの必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/1d64df3c-782d-f384-17f9-a5499fae57a0.png)

以下コマンドを実行します
\<BastionName\>、\<ResourceGroupName\>は環境に合わせて適切な値を入れてください。
\<VMResourceId\>には接続先のAzure VMのリソースIDの値を入れてください。
```
#RDP 経由コマンド
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"
```
:::note warn
以下のように初回実行時には拡張機能のインストールの実施について確認がされます。「Y」を入力して拡張機能のインストールを許可します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/27811776-476d-f512-2db0-53f1d3b9ff61.png)
:::

以下警告が出た場合は「接続」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/ea9ce8e2-16c8-a720-916c-e182f3bd99ae.png)

ユーザ名とパスワードの入力が求められるのでVMにログインするユーザ情報を入力します。
※本検証ではローカルユーザを利用しております。
ユーザ情報を入力後、「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/412c6d60-6a51-51da-1240-f96d27320acc.png)

以下の通りアクセスができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/015807af-2710-ea48-c644-7091d78a0a2b.png)

本検証で作成したAzure Bastionでは「コピー/貼り付け」を許可しているため、ネイティブクライアント経由で資材の送付も実施可能です。

# おわりに
Azure Bastionのネイティブクライアント接続を利用してAzure VMにRDP接続を実施することができました。普段から使い慣れているネイティブクライアントを利用でき、資材もコピー&ペーストで送ることができるので便利かなと思います。SSHについても接続可能ですので、接続先のOSによって使い分けていただけたらと思います。

本検証の手順に関する詳細は[こちら](https://learn.microsoft.com/ja-jp/azure/bastion/connect-vm-native-client-windows)を参照ください。