APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Azure Bastion のセッション レコーディングで仮想マシンへのリモート アクセスを録画してみた

Azure Bastion という、Azure の仮想マシンにリモート アクセスするためのマネージドサービスがあります。 所謂、踏み台サーバです。

この Azure Bastion にセッション レコーディング (Session recording) という機能がプレビューとして登場していたので、今回は セッション レコーディングを使って Azure 仮想マシンへのリモート アクセスがどのように記録されるか試してみました。

learn.microsoft.com

セッション レコーディングとは

セッション レコーディングを有効にした Bastion ホスト経由で仮想マシン (RDP および SSH) に接続すると、仮想マシン接続後の操作を動画として記録できる機能です。 録画データはストレージアカウントの BLOB コンテナに格納され、Azure Portal の Bastion のページから録画データを再生できます。

セッション レコーディングを使うにはいくつかの前提条件と制約があります。

前提条件

  • Premium SKU で Bastion ホストを作成していること
  • Bastion ホストは仮想ネットワークにデプロイされていること
  • 接続する仮想マシンは Bastion ホストを含む仮想ネットワーク、または Bastion 仮想ネットワークに直接ピアリングされている仮想ネットワークにデプロイされていること

制約

  • セッション レコーディングは Premium SKU 限定の機能
  • ネイティブ クライアント経由でのセッション レコーディングはできない
  • 一度に 1 つのストレージ アカウント/コンテナのみサポート
  • Bastion ホストを経由するすべてのセッションを記録
    • 「特定ホストのレコーディングを除外」はできない

ということで、セッション レコーディングには Premium なる SKU で Bastion ホストを構築しなければならないのですが、現在 Premium SKU はプレビューの状態ということで、料金などの情報はまだ見当たりませんでした。 SKU ごとの機能の違いについては次のドキュメントを参照ください。

learn.microsoft.com

試してみる

それでは Azure Bastion のセッション レコーディングを使って、どのような動画が記録されるか、どのように動画を再生できるか試してみましょう。

環境構築

制約にあるとおり、セッション レコーディングには Premium SKU の Bastion ホストが必要です。 新規で Premium SKU の Bastion ホストを作成するか、既存 Bastion ホストを Premium SKU にアップグレードして Bastion ホストを用意しましょう。

セッション レコーディングを使うには Bastion ホスト以外にもストレージアカウントと、ストレージアカウントにアクセスするための Shared Access Signature (SAS) が必要です。 Azure Portal などから作っていくこともできますが、今回はセッション レコーディングに必要なリソースを作成する Terraform を用意しました

github.com

Azure Bastion の Premium SKU がプレビュー段階のため、Terraform で Standard SKU で作成したあとに手動で Bastion ホストを Premium SKU にアップグレードして SAS を設定しなければならないですが、手っ取り早くセッション レコーディングを試すのに使えるかと思います。

本投稿には Terraform を使わずに Azure Portal から Bastion ホストを用意する手順も記載しています。

Bastion ホストの新規作成

プレビュー段階ということもあり、通常の Azure Portal からは Bastion ホスト作成画面で Premium SKU を選択できません。 代わりに Azure Portal プレビュー (https://preview.portal.azure.com/) にアクセスすることで、Bastion ホスト作成時に Premium SKU を選択できます。

また、現在 Azure CLI からは Premium SKU の Bastion ホストの作成、および Premium SKU へのアップグレードはできませんので、お試しする場合は上記の Azure Portal プレビューにアクセスから操作しましょう。

Bastion ホストを新規作成する場合は、従来の SKU と同じように専用のサブネットとパブリック IP アドレスを指定します。

Premium SKU の Bastion ホストを新規作成

[詳細設定] では、「セッションの記録(プレビュー)」にチェックを入れます。

セッションの記録(プレビュー)を選択

デプロイは10分ほどで完了します。

Bastion ホストのアップグレード

既に Bastion ホストがある場合は Premium SKU にアップグレードする方法もあります。

注意点としては、Bastion ホストの SKU はダウングレードが許可されていません。 そのため、セッション レコーディングの検証のために運用中の Bastion ホストを Premium SKU にアップグレードするのは避けましょう。

Bastion の SKU はダウングレードできない

アップグレードしても問題ない Bastion ホストの [構成] から [Premium] を選択し、[セッションの記録 (プレビュー)] にチェックを入れて適用します。

Bastion ホストを Premium SKU にアップグレード

こちらも10分ほどすると Bastion ホストの Premium SKU へのアップグレードが完了します。 アップグレード後に Bastion ホストの管理画面を更新すると、ブレードに [セッションの記録] というメニューが追加されています。 [セッションの記録] で録画データの確認ができるのですが、Bastion ホストは一旦置いておいて、ストレージアカウントの設定に移りましょう。

ストレージアカウント作成

セッション レコーディングで記録されるデータはストレージアカウントの BLOB コンテナに格納されます。 Bastion ホストから BLOB コンテナにデータを格納/参照するには Shared Access Signature (SAS) を利用するので、ストレージアカウントを作成して SAS を生成します。

ストレージアカウント/BLOB コンテナの作成、および SAS の生成方法は次のドキュメントを参照してください。

learn.microsoft.com

learn.microsoft.com

learn.microsoft.com

BLOB コンテナを作成したら Bastion ホストから動画を再生できるよう [リソースの共有 (CORS)] にレコードを設定します。 [許可されたオリジン] 列には Bastion ホストのホスト名に https:// を付与した文字列を設定します。 Bastion ホストで録画データを再生できない場合はこの[リソースの共有 (CORS)] の設定が正しくない場合がありますので、設定を見直してください(私は https:// を抜かしていたため再生できませんでした)。

リソースの共有 (CORS)

Bastion ホストのセッション レコーディング設定

ストレージアカウントの SAS URL を Bastion ホストの [セッションの記録] に登録します。 Terraform で環境構築した場合は terraform output bastion_blob_sas_url を実行すると SAS URL を取得できます。

SAS URL の追加または更新

SAS URL を入力

仮想マシンにリモート アクセス

それでは、セッション レコーディングの準備ができたので Bastion 経由で仮想マシンにリモート アクセスしてみましょう。

まずは Windows への RDP からです。 Azure Portal で対象の仮想マシンを選択し、ブレードメニューの [Bastion] で認証情報を入力して接続します。

Bastion で Windows VM にリモート アクセス

新しいタブで Windows の画面が表示されたらリモート アクセスは成功です。

ある程度仮想マシンで操作したらセッションを閉じます。 すると、BLOB コンテナにファイルが作成されています。 ちなみに録画データサイズは 2 分 37 秒で 2.6MB でした。

BLOB コンテナに録画データが格納

録画データは Bastion ホストから再生します。 [セッションの記録] に BLOB コンテナの録画データが一覧で表示されるので、再生したいセッションの [レコーディングの表示] を選択すると、ブラウザの別タブで動画が再生されます。

Bastion ホストから録画データを参照

Bastion ホストからセッション レコーディングの録画データを再生した動画はこちらです。

youtu.be

Linux への SSH の場合も同じように Bastion 経由でアクセスすると録画データが BLOB コンテナに格納されて、Bastion ホストから再生できるようになります。

youtu.be

まとめ

プレビューとして登場した Azure Bastion のセッション レコーディング使って仮想マシンへのリモート アクセス後の作業を録画してみました。

同様の機能は他社の製品でも出ていますが、Azure Bastion でもついに対応した(する予定)ということです。 Premium SKU 限定の機能ということでお値段も気になるところですので、今後のアップデート情報も楽しみですね。

Azure Bastion を使ってみたい方向けに Developer SKU も紹介していますので、ぜひご覧ください。

techblog.ap-com.co.jp


【PR】
私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。

www.ap-com.co.jp

一緒に働いていただける仲間も募集中です!
まだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。
我々の事業部のCultureDeckはコチラ。

www.ap-com.co.jp

本記事の投稿者: 埜下 太一
Azure をメインにインフラ系のご支援を担当しています。
個人ブログ