Azure Virtual Machines 上の SQL Server のセキュリティに関する考慮事項

適用対象: Azure VM 上の SQL Server

この記事では、Azure の仮想マシン (VM) の SQL Server インスタンスへのセキュリティで保護されたアクセスの確立に役立つ全体的なセキュリティ ガイドラインについて説明します。

Azure はいくつかの業界規制および標準に準拠しているため、ユーザーは仮想マシンで実行されている SQL Server を使用して、標準に準拠しているソリューションを構築できます。 Azure での法規制遵守に関する情報については、 Azure トラスト センターを参照してください。

まず、 SQL ServerAzure VM のセキュリティのベスト プラクティスを確認してからこの記事を確認して、Azure VM 上の SQL Server に特に当てはまるベストプラクティスを確認してください。

SQL Server VM のベスト プラクティスの詳細については、このシリーズの他の記事 (チェックリストVM サイズHDAR 構成ベースラインの収集) をご覧ください。

チェック リスト

このセクションにある次のチェックリストを確認して、この記事の後半で詳しく説明するセキュリティのベスト プラクティスの概要を確認してください。

SQL Sever の機能は、データ レベルでのセキュリティ方法を提供し、クラウドベースおよびハイブリッド ソリューションのインフラストラクチャ レベルで多層防御を実現する方法です。 さらに、Azure のセキュリティ対策により、機密データの暗号化、ウイルスやマルウェアからの仮想マシンの保護、ネットワーク トラフィックのセキュリティ保護、脅威の特定と検出、コンプライアンス要件の遵守、およびハイブリッド クラウドでのセキュリティ ニーズに対する単一の管理方法とレポート作成が可能になります。

  • Microsoft Defender for Cloud を使用して、データ環境のセキュリティ体制を改善するための評価と対策を実行してください。 Azure Advanced Threat Protection (ATP) などの機能は、ハイブリッド ワークロード全体で活用できるため、セキュリティ評価を向上させ、リスクに対応できます。 SQL Server VM を SQL IaaS Agent 拡張機能に登録すると、Azure portal の SQL 仮想マシン リソース内で Microsoft Defender for Cloud の評価が表示されます。
  • Microsoft Defender for SQL を活用して、データベースの潜在的な脆弱性を検出および軽減し、SQL Server インスタンスおよびデータベース レイヤーへの脅威を示す可能性のある異常なアクティビティを検出します。
  • 脆弱性評価Microsoft Defender for SQL の一部であり、SQL Server 環境に対する潜在的なリスクを検出して修復するのに役立ちます。 セキュリティの状態を表示することができ、セキュリティの問題を解決するための実行可能な手順が含まれます。
  • Azure 機密 VM を使用して、使用中のデータと保存データの保護を強化し、ホスト オペレーターのアクセスから保護します。 Azure 機密 VM を使用すると、確実に機密データをクラウドに保存し、厳格なコンプライアンス要件を満たすことができます。
  • SQL Server 2022 を使っている場合、SQL Server のインスタンスに接続するには、Azure Active Directory 認証を使うことを検討してください。
  • Azure Advisor は、リソースの構成と使用状況のテレメトリを分析し、Azure リソースの費用対効果、パフォーマンス、高可用性、およびセキュリティを向上させるのに役立つソリューションを推奨します。 仮想マシン、リソース グループ、またはサブスクリプション レベルで Azure Advisor を活用してベストプラクティスを特定し、Azure のデプロイを最適化します。
  • コンプライアンスとセキュリティのニーズで、エフェメラル (ローカルに接続された一時) ディスクの暗号化など、暗号化キーを使用してエンド ツー エンドでデータを暗号化する必要がある場合は、Azure Disk Encryption を使用します。
  • マネージド ディスクの暗号化は既定で、Azure Storage Service Encryption を使用して行われます。暗号化キーは、Microsoft が Azure で管理するキーです。
  • マネージド ディスク暗号化オプションの比較については、マネージド ディスク暗号化の比較表を確認してください。
  • 仮想マシンで管理ポートを閉じる必要があります - オープンなリモート管理ポートは、インターネットベースの攻撃による高いレベルのリスクに VM をさらしています。 これらの攻撃では、資格情報に対するブルート フォース攻撃を行ってマシンへの管理者アクセス権の取得を試みます。
  • Azure 仮想 マシンの Just-In-Time (JIT) アクセスを有効にする
  • リモート デスクトップ プロトコル (RDP) で Azure Bastion を使用します。
  • ポートをロックダウンし、元の IP アドレスに基づいてサーバーへのアクセスを許可/拒否を管理するサービスとしてのファイアウォール (Faas) である Azure Firewall を使用して必要なアプリケーショント ラフィックのみを許可します。
  • ネットワーク セキュリティ グループ (NSG) を使用して、Azure 仮想ネットワーク上の Azure リソースとの間のネットワーク トラフィックをフィルター処理する
  • アプリケーション セキュリティ グループを活用して、Web サーバーやデータベース サーバーなどの同様の機能を備えた同様のポート フィルタリング要件でサーバーをグループ化します。
  • Web サーバーとアプリケーション サーバーの場合、Azure 分散型サービス拒否 (DDoS) 保護を活用します。 DDoS 攻撃は、ネットワーク リソースを過剰に消費してアプリの速度を低下させたり、応答しなくなったりするように設計されています。 DDoS 攻撃では、ユーザー インターフェイスを標的にするのが一般的です。 Azure DDoS 保護は、サービスの可用性に影響を与える前に、不要なネットワーク トラフィックをサニタイズします
  • VM 拡張機能を活用すると、マルウェア対策、望ましい状態、脅威の検出、防止、および修復に対処でき、オペレーティング システム、マシン、およびネットワーク レベルでの脅威に対処します。
  • Azure Policy を活用して、環境に適用できるビジネス ルールを作成します。 Azure ポリシーは、これらのリソースのプロパティを JSON 形式で定義されたルールと比較することにより、Azure リソースを評価します。
  • Azure Blueprints によってクラウド アーキテクトや中央の情報技術グループは、組織の標準、パターン、要件を実装および順守した反復可能な一連の Azure リソースを定義できます。 Azure Blueprints は Azure のポリシーとは異なります。

Microsoft Defender for SQL

Microsoft Defender for SQL では、脆弱性評価、セキュリティ アラートなど、Microsoft Defender for Cloud のセキュリティ機能が有効になります。 詳細については、Microsoft Defender for SQL の有効化に関するページを参照してください。

Azure Defender for SQL を使用して、データベースの潜在的な脆弱性を検出および軽減し、SQL Server インスタンスおよびデータベース レイヤーへの脅威を示す可能性のある異常なアクティビティを検出します。 脆弱性評価は Microsoft Defender for SQL の機能で、SQL Server 環境に対する潜在的なリスクを検出して修復するのに役立ちます。 セキュリティの状態を表示することができ、セキュリティの問題を解決するための実行可能な手順が含まれます。 SQL Server VM を SQL Server IaaS Agent 拡張機能に登録すると、Azure ポータルの SQL 仮想マシン リソースに対する Microsoft Defender for SQL の推奨事項が表示されます。

ポータル管理

SQL Server VM を SQL IaaS 拡張機能 に登録した後、Azure Key Vault 統合の有効化や SQL 認証など、Azure portal の SQL 仮想マシン リソースを使用していくつかのセキュリティ設定を構成できます。

さらに、Microsoft Defender for SQL を有効にした後、脆弱性評価やセキュリティ アラートなどの Defender for Cloud の機能を Azure portal の SQL 仮想マシン リソースで直接表示できます。

詳細については、ポータルでの SQL Server VM の管理に関する記事を参照してください。

Microsoft Defender for Cloud

Microsoft Defender for Cloud は、データ環境のセキュリティ状態を向上させる機会を評価および提供するように設計された統合セキュリティ管理システムです。 Microsoft Defender for Cloud は、ハイブリッド クラウド内にあるすべての資産のセキュリティ正常性の統合ビューを提供します。

機密 VM

Azure 機密 VM は、ハードウェアによって適用される強力な境界を提供します。これにより、ホスト オペレーターのアクセスからゲスト OS を強力に保護することができます。 Azure VM 上でご利用の SQL Server に対して機密 VM サイズを選択すると、保護レイヤーが追加され、それにより、確実に機密データをクラウドに格納し、厳格なコンプライアンス要件を満たすことができます。

Azure 機密 VM では、SEV-SNP テクノロジを備えた AMD プロセッサを活用しています。このプロセッサでは自身で生成したキーを使用して VM のメモリを暗号化します。 これは、使用中のデータ (SQL Server プロセスのメモリ内で処理されるデータ) を、ホスト OS からの不正アクセスから保護するのに役立ちます。 また、仮想マシンのトラステッド プラットフォーム モジュール (TPM) チップにバインドされたキーを使用して機密 VM の OS ディスクを暗号化し、保存データの保護を強化することもできます。

デプロイの詳細な手順については、クイックスタート: 機密 VM への SQL Server のデプロイに関するページを参照してください。

ディスク暗号化に関する推奨事項は、機密 VM の場合と、その他の VM サイズの場合とでは異なります。 詳細については、ディスクの暗号化に関するページを参照してください。

Azure AD 認証 (プレビュー)

SQL Server 2022 以降では、次の Azure Active Directory (Azure AD) の ID 認証方法のいずれかを使って SQL Server に接続できます。

  • Azure AD のパスワード
  • Azure AD 統合
  • Azure AD Universal と Multi-Factor Authentication
  • Azure Active Directory のアクセス トークン

Azure VM 上で Azure AD と SQL Server を使うことは、現在プレビュー段階です。

Azure AD 認証を有効にするには、Azure portal で [SQL 仮想マシン リソース] に移動し、[設定] の下にある [セキュリティの構成] を選び、Azure AD 認証を有効にします。 SQL Server インスタンスへの接続に使う ID の種類を選び、プロンプトが表示されたら、インスタンスの認証に使う ID を選びます。

Azure VM 上で Azure AD 認証と SQL Server を使うには、次の前提条件があります。

  • SQL Server 2022 を使用する。
  • SQL VM を SQL Server Iaas Agent 拡張機能に登録する。
  • SQL Server への認証に選んだ ID が、Azure AD ディレクトリ閲覧者ロールのアクセス許可または次の 3 つの Microsoft Graph アプリケーションのアクセス許可 (アプリ ロール) を持っている (User.ReadALLGroupMember.Read.AllApplication.Read.All)。

次の制限事項を考慮します。

  • Azure AD 認証を有効にした後に、Azure portal を使って無効にする方法はありません。
  • 現在、Azure AD 認証を有効にするには、Azure portal を使う必要があります。
  • 現在、Azure AD 認証は、パブリック クラウドにデプロイされた SQL Server VM に対してのみ使用できます。

Azure Advisor

Azure Advisor は、ベスト プラクティスに従って Azure デプロイメントを最適化できるようにする、個人用に設定されたクラウド コンサルタントです。 Azure Advisor は、リソースの構成と使用状況のテレメトリを分析し、Azure リソースの費用対効果、パフォーマンス、高可用性、およびセキュリティを向上させるのに役立つソリューションを推奨します。 Azure Advisor は、仮想マシン、リソースグループ、またはサブスクリプション レベルで評価できます。

Azure Key Vault の統合

透過的なデータ暗号化 (TDE)、列レベルの暗号化 (CLE)、バックアップ暗号化 など、SQL Server 暗号化機能が複数存在します。 これらの形態の暗号化では、暗号化に利用する暗号鍵を管理し、保存する必要があります。 Azure Key Vault サービスは、セキュリティで保護され、かつ可用性の高い場所でこれらのキーのセキュリティと管理を向上させるように設計されています。 SQL Server コネクタ を使用すると、SQL Server で Azure Key Vault にあるキーを使用できます。

以下、具体例に沿って説明します。

  • Azure Key Vault は、アプリケーションのシークレットを一元化されたクラウドの場所に保存して、アクセス許可を安全に制御し、アクセス ログを分離します。
  • 独自のキーを Azure に持ち込む場合は、Azure Key Vault にシークレットと証明書を保存することをお勧めします。
  • Azure Disk Encryption では、Azure Key Vault を使用して、ディスク暗号化キーとシークレットを制御および管理します。

アクセス制御

Azure ギャラリー イメージを使用して SQL Server 仮想マシンを作成する場合は、[SQL Server 接続] オプションで、[ローカル (VM 内)]、[プライベート (仮想ネットワーク内)]、または [パブリック (インターネット)] を選択できます。

SQL Server 接続

セキュリティを最大限に強化するため、自分のシナリオで最も制限の厳しいオプションを選択します。 たとえば、同じ VM の SQL Server にアクセスするアプリケーションを実行している場合、最もセキュリティで保護された選択は [ローカル] です。 SQL Server へのアクセスを必要とする Azure アプリケーションを実行している場合、 [プライベート] では、指定された Azure 仮想ネットワーク内の SQL Server への通信のみがセキュリティで保護します。 SQL Server VM にアクセスする [パブリック (インターネット)] が必要な場合、危険を回避するために、このトピックの他のベスト プラクティスに従ってください。

ポータルで選択されたオプションは、VM のネットワーク セキュリティ グループ (NSG) の受信セキュリティ ルールを使用して、仮想マシンへのネットワーク トラフィックを許可または拒否します。 SQL Server ポート (既定値 1433) へのトラフィックを許可するには、受信 NSG ルールを変更または新規作成します。 また、このポートでの通信を許可する、特定の IP アドレスを指定することもできます。

ネットワーク セキュリティ グループ ルール

ネットワーク トラフィックを制限する NSG ルールに加え、仮想マシンで Windows ファイアウォールを使用することもできます。

クラシック デプロイ モデルでエンドポイントを使用している場合、使用しない仮想マシンのエンドポイントは削除します。 エンドポイントで ACL を使用する手順については、「 エンドポイントの ACL の管理」を参照してください。 これは、Azure Resource Manager を使用する VM には必要ありません。

Azure 仮想マシンの SQL Server DB エンジンのインスタンスに対して暗号化接続を有効にすることを検討してください。 署名付き証明書で SQL Server インスタンスを構成します。 詳細については、「データベース エンジンへの暗号化接続の有効化」および「接続文字列の構文」をご覧ください。

ネットワーク接続または境界をセキュリティで保護する場合は、次の点を考慮してください。

  • Azure Firewall - ネットワーク リソースを保護するために、発信元 IP アドレスに基づいてサーバー アクセスを許可/拒否するステートフルで管理されたファイアウォールとしてのサービス (FaaS) です。
  • Azure 分散型サービス拒否 (DDoS) 保護 - DDoS 攻撃はネットワーク リソースを過剰に消費してアプリの速度を低下させたり、応答しなくなったりします。 Azure DDoS 保護は、サービスの可用性に影響を与える前に、不要なネットワーク トラフィックをサニタイズします。
  • ネットワーク セキュリティ グループ (NSGs) - Azure 仮想ネットワーク上の Azure リソースとの間のネットワーク トラフィックをフィルター処理します
  • アプリケーション セキュリティ グループ - 同様のポート フィルタリング要件を持つサーバーのグループ化を提供し、Web サーバーなどの同様の機能を持つサーバーをグループ化します。

ディスクの暗号化

このセクションでは、ディスク暗号化のガイダンスを提供しますが、推奨事項は、Azure VM に従来の SQL Server をデプロイするのか、Azure 機密 VM に SQL Server をデプロイするのかによって異なります。

従来の VM

Azure 機密 VM 以外の VM にデプロイされたマネージド ディスクでは、サーバー側の暗号化と Azure Disk Encryption を使用します。 サーバー側暗号化では、保存時の暗号化が提供され、組織のセキュリティおよびコンプライアンス要件を満たすようにデータが保護されます。 Azure Disk Encryption では、BitLocker または DM-Crypt テクノロジを使用し、Azure Key Vault と統合して OS とデータ ディスクの両方を暗号化します。

以下、具体例に沿って説明します。

  • Azure Disk Encryption - Windows 仮想マシンと Linux 仮想マシンの両方で Azure Disk Encryption を使用して仮想マシンのディスクを暗号化します。
    • コンプライアンスとセキュリティの要件で、エフェメラル (ローカルに接続された一時) ディスクの暗号化を含め、暗号化キーを使用してエンド ツー エンドでデータを暗号化する必要がある場合は、Azure Disk Encryption を使用します。
    • Azure Disk Encryption (ADE) は、Windows の業界標準である BitLocker 機能と Linux の DM-Crypt 機能を活用して、OS とデータ ディスクの暗号化を提供します。
  • マネージド ディスクの暗号化
    • マネージド ディスクの暗号化は既定で、Azure Storage Service Encryption を使用して行われます。暗号化キーは、Microsoft が Azure で管理するキーです。
    • Azure マネージド ディスク内のデータは、利用できる最も強力なブロック暗号の 1 つである 256 ビット AES 暗号化を使って透過的に暗号化され、FIPS 140-2 に準拠しています。
  • マネージド ディスク暗号化オプションの比較については、マネージド ディスク暗号化の比較表を確認してください。

Azure 機密 VM

Azure 機密 VM を使用する場合は、セキュリティ上の利点を最大限に活用するために、次の推奨事項を検討してください。

  • 機密 OS ディスク暗号化を構成します。これにより、OS ディスク暗号化キーが仮想マシンのトラステッド プラットフォーム モジュール (TPM) チップにバインドされ、保護されたディスク コンテンツにその VM のみがアクセスできるようになります。
  • ご利用のデータ ディスク (データベース ファイル、ログ ファイル、またはバックアップ ファイルを含む任意のディスク) を BitLocker で暗号化し、自動ロック解除を有効にします - 詳細については、manage-bde autounlock または EnableBitLockerAutoUnlock に関するページを参照してください。 自動ロック解除により、暗号化キーが OS ディスクに確実に格納されます。 これを、機密 OS ディスク暗号化と組み合わせることで、VM ディスクに格納された保存データを、承認されていないホスト アクセスから保護できます。

アカウントの管理

攻撃者に簡単にアカウント名やパスワードを推測されたくありません。 次のヒントを使用すると役立ちます。

  • Administratorという名前ではない一意のローカル管理者アカウントを作成します。

  • すべてのアカウントに複雑で強力なパスワードを使用します。 強力なパスワードを作成する方法の詳細については、「強力なパスワードを作成する」を参照してください。

  • 既定で、Azure は SQL Server 仮想マシンのセットアップ中に Windows 認証を選択します。 そのため、 SA ログインは無効となり、パスワードはセットアップによって割り当てられます。 SA ログインは使用せず、有効にしないことをお勧めします。 SQL ログインが必要な場合は、次の方法のいずれかを使用します。

    • sysadmin メンバーシップを持つ SQL アカウントを一意の名前で作成します。 プロビジョニング中に SQL 認証を有効にすると、ポータルからこの操作を行うことができます。

      ヒント

      プロビジョニング中に SQL 認証を有効にしない場合は、認証モードを手動で [SQL Server 認証モードと Windows 認証モード] に変更する必要があります。 詳細については、「 サーバーの認証モードの変更」を参照してください。

    • SA ログインを使用する必要がある場合は、プロビジョニング後にログインを有効にし、新しい強力なパスワードを割り当てます。

注意

Azure 仮想マシン (VM) 上で実行されている SQL Server インスタンスへの接続は、Azure Active Directory または Azure Active Directory Domain Services を使用している場合はサポートされません。 Active Directory のドメイン アカウントを代わりに使用してください。

監査とレポート

Log Analytics を使用した監査では、イベントが文書化され、セキュリティで保護された Azure Blob Storage アカウントの監査ログに書き込まれます。 Log Analytics を使用すると、監査ログの詳細を解読できます。 監査により、データを別のストレージ アカウントに保存し、選択したすべてのイベントの監査証跡を作成することができます。 また、監査ログに対して Power BI を活用すると、データの迅速な分析と洞察を行うだけでなく、規制コンプライアンスのビューを提供することもできます。 VM レベルと Azure レベルでの監査の詳細については、「Azure のセキュリティ ログと監査」を参照してください。

仮想マシン レベルのアクセス

マシンの管理ポートを閉じる - オープンなリモート管理ポートは、インターネットベースの攻撃による高いレベルのリスクに VM をさらしています。 これらの攻撃では、資格情報に対するブルート フォース攻撃を行ってマシンへの管理者アクセス権の取得を試みます。

仮想マシン拡張機能

Azure Virtual Machine拡張機能は、信頼できる Microsoft またはサードパーティの拡張機能で、ウイルス対策、マルウェア、脅威保護などといった特定のニーズとリスクに対処する際に役立ちます。

  • ゲスト構成拡張機能
    • マシンのゲスト内設定について、セキュリティで保護された構成を確保するには、ゲスト構成拡張機能をインストールします。
    • ゲスト内設定には、オペレーティング システムの構成、アプリケーションの構成または存在、および環境設定が含まれます。
    • インストールが完了すると、"Windows Exploit Guard を有効にする必要がある" のようなゲスト内ポリシーを使用できるようになります。
  • ネットワーク トラフィック データ収集エージェント
    • Microsoft Defender for Cloud は、Microsoft Dependency Agent を使用して、Azure 仮想マシンからネットワーク トラフィック データを収集します。
    • このエージェントは、ネットワーク マップでのトラフィックの視覚化、ネットワーク強化の推奨事項、特定のネットワーク脅威など、高度なネットワーク保護機能を有効にします。
  • Microsoft およびサードパーティの拡張機能を評価して、マルウェア対策、望ましい状態、脅威の検出、防止、および修復に対処し、オペレーティング システム、マシン、およびネットワーク レベルでの脅威に対処します。

次のステップ

SQL ServerAzure VM のセキュリティのベスト プラクティスを確認してからこの記事を確認して、Azure VM 上の SQL Server に特に当てはまるベストプラクティスを確認してください。

Azure VM での SQL Server の実行に関するその他のトピックについては、「Azure Virtual Machines における SQL Server の概要」をご覧ください。 SQL Server の仮想マシンに関するご質問については、よくあるご質問に関するページをご覧ください。

詳細については、このベスト プラクティス シリーズにある他の記事を参照してください。