タイトルの通りですが、SQL Server を Azure VM で動作させる場合のセキュリティ保護についてまとめておきたいと思い投稿を書きました。
自分が確認しておきたかった内容をまとめているものとなり、操作をしていて標準で気づくものは省いていますので、OS 標準の機能や、SQL Server IaaS Agent 拡張機能については記載していません。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
タイトルの通りですが、SQL Server を Azure VM で動作させる場合のセキュリティ保護についてまとめておきたいと思い投稿を書きました。
自分が確認しておきたかった内容をまとめているものとなり、操作をしていて標準で気づくものは省いていますので、OS 標準の機能や、SQL Server IaaS Agent 拡張機能については記載していません。
Visual Studio Code の拡張機能 (Extension) であれば、Visual Studio Code 向け の Marketplace からダウンロードすることができますが、Azure Data Studio (ADS) 向けの拡張機能については専用の Marketplace のサイトは内容に見受けられました。
ADS 向けの拡張機能は ADS 本体との関連性が強く、最新バージョンがリリースされると、いくつかの拡張機能は最新バージョン以降をターゲットとしたものに置き換わるケースがあります。
これにより、ADS の古いバージョンは GitHub のリポジトリ からダウンロード / インストールすることができますが、拡張機能については、インストールをした古いバージョン向けの拡張機能をインストールすることができないというようなことが発生します。
今回 Azure SQL Migration 拡張機能 (sql-migration) の検証をしていて、古いバージョンの ADS とその ADS に対応した拡張機能の組み合わせで検証をする必要があったので、その際にどのようにして古い拡張機能をインストールしたかをメモとして。
現時点のリリースノートには記載されていないのですが、SQL Server 2022 では、ラッチ (ページラッチ / バッファーラッチ) で待機が発生している場合の情報の出力内容が強化されています。
SQL Server では、ラッチは、
の二種類に大別されますが、今回は「バッファーラッチ」を例として情報を記載しています。
SQL Server のラッチについては、SQL Server でラッチの競合を診断および解決する で解説されていますので、ラッチについての詳細はこちらを確認してください。
ラッチについては SQL Server 以外の RDBMS でも実装されています。
SQL Server ではラッチというと非バッファラッチを差すケースが多いですが、RDBMS における一般的なラッチは、SQL Server ではバッファーラッチとなり、メモリ上のページの保護をするために使用されている同期プリミティブを刺すことになると思います。
SQL Server バッファー プール内のページのデータの書き込みまたは読み取りが行われるときは常に、ワーカー スレッドにおいて最初にそのページのバッファー ラッチを取得する必要があります。 バッファー プール内のページにアクセスするために使用できるバッファー ラッチには、排他的ラッチ (PAGELATCH_EX) や共有ラッチ (PAGELATCH_SH) など、さまざまな種類があります。
Windows Sysinternals で提供されている Process Monitor / Process Explorer は端末内で発生している各種事象を調査するのに強力なツールで Windows Server 運用者は活用する機会が多いのではないでしょうか。
これらのツールでは、シンボルの設定をすることができます。
適切なシンボルの設定をすると、各情報を確認した際にコールスタックの情報を確認することができるようになります。
左が初期状態、右が適切に設定した場合のスレッドの表示となるのですが、適切に設定をした場合は、各ファイルのオフセットがブレークダウンして解決されていますね。動作を確認する際にはこの情報がヒントとなることも多々あります。
先月のアナウンスとなりますが、Azure Data Studio (ADS) 向けに次のアナウンスがありました。
SQL Server ベースの環境に対しての移行ツールとしては、次の二つが提供されており、Oracle からの移行については SSMA が提供されていました。
DMA については、SQL Server ベースの環境間の移行を行うためのツールとして単体のツールが提供されていたのですが、今回、Azure Data Studio の拡張機能として DMA for Oracle の提供が開始されました。
先月のアナウンスとなりますが、Azure Data Studio (ADS) 向けに次のアナウンスがありました。
SQL Server ベースの環境に対しての移行ツールとしては、次の二つが提供されており、Oracle からの移行については SSMA が提供されていました。
DMA については、SQL Server ベースの環境間の移行を行うためのツールとして単体のツールが提供されていたのですが、今回、Azure Data Studio の拡張機能として DMA for Oracle の提供が開始されました。
SQL Server を Azure に移行する場合、Azure 移行後にどの程度の性能が必要になるかの検討が必要となります。SQL Server では、Azure への移行後の性能を算出する方法として SKU Recommendation の機能が提供されています。
以前から Database Migration Assitant (DMA) で SKU Recommendation の機能が提供されていたのですが、先月 Public preview: SKU recommendation in Azure SQL Migration extension – Azure Data Studio というアナウンスが行われました。
Preview 機能となりますが、DMA で実行することができていた SKU Recommendation を Azure Data Studio でも実行することができるようになりました。
SKU Recommendation の機能については、DMA で初期に実装されていた機能からも変更が行われていますので、この機会にまとめておきたいと思います。
追記
投稿を書いた数日後に Generally available: Azure SQL Migration extension for Azure Data Studio で ADS の拡張機能の GA のアナウンスがありました。
Hyper-V の Nested VM (入れ子になった仮想化) を使用して、Hyper-V のゲスト OS として、ESXi を構築するための方法について情報を遺しておきたいと思います。
ホスト OS として、Windows Server 2019 / Windows Server 2022 を使用して確認しましたが、ネットワークの不安定さがあり、検証で使うのも少し厳しそうな感じではありました。
Azure Arc Enabled Managed Instance を「間接モード」で実行している場合、Azure との連携はファイルベースで実施する必要があり、連携用のファイルをエクスポートして Azure にアップロードするという作業が必要となります。(直接接続モードの場合は自動的に収集とアップロードが実施されます)
アップロード対象の情報は「使用状況 (usage)」「メトリック (metrics)」「ログ (logs)」の 3 種類があり、それぞれのエクスポート用のサブコマンドでファイルを出力し、アップロードを実施します。
このエクスポートデータの中の「ログ」について、調査する機会があったのでその時の作業内容を残しておきたいと思います。
私は、2 段階認証のサインインには、Microsoft Authenticator を使用しています。
現在の Authenticator はバックアップをサポートしていますので、バックアップをリストアすることで登録された内容をリストアすることができますが、Azure AD の組織アカウントについては、QR コードを再スキャンして回復する作業が必要となります。
MS 系のアカウントでは、組織アカウントと Microsoft アカウントを使用しており、Microsoft アカウントについてはアプリ内で再認証できるのですが、組織アカウントについては現状 QR コードの再スキャンが必要となるので、毎回どうやってやるのか思い出しているんですよね…。
端末を入れ替えるたびに回復操作の方法を忘れてしまうので、メモを残しておきたいと思います。