次の方法で共有


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

Azure VM でのSQL Serverへの適用

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

Azureは、仮想マシンで実行されているSQL Serverに準拠したソリューションを構築できるいくつかの業界の規制と標準に準拠しています。 Azureに対する規制コンプライアンスの詳細については、「Azure セキュリティ センターを参照してください。

まず、SQL ServerAzure VM のセキュリティのベスト プラクティスを確認してから、この記事でAzure VM のSQL Serverに特に適用されるベスト プラクティスを確認します。

SQL SERVER VM のベスト プラクティスの詳細については、 このシリーズの他の記事を参照してください:ChecklistVM サイズHADR 構成、および Collect ベースライン

チェック リスト

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

SQL Serverの機能は、インフラストラクチャ レベルのセキュリティ機能と組み合わせることができるデータベース レベルでデータをセキュリティで保護する方法を提供します。 これらの機能を組み合わせることで、クラウドベースおよびハイブリッド ソリューションのインフラストラクチャ レベルで多層防御が提供されます。 さらに、Azureセキュリティ対策を使用すると、機密データの暗号化、ウイルスやマルウェアからの仮想マシンの保護、ネットワーク トラフィックのセキュリティ保護、脅威の特定と検出、コンプライアンス要件の満たす、ハイブリッド クラウドのセキュリティニーズに対する管理とレポートの 1 つの方法を提供できます。

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

セキュリティのベスト プラクティスの詳細については、「SQL Serverセキュリティのベスト プラクティスおよびセキュリティ保護SQL Serverを参照してください。

マシン上の SQL のMicrosoft Defender

Microsoft Defender for Cloud は、データ環境のセキュリティ体制を改善する機会を評価して提供するように設計された統合セキュリティ管理システムです。 Microsoft Defenderでは、マシン上の SQL のMicrosoft Defender Azure VM でのSQL Serverの保護が提供されます。 Microsoft Defender for SQL を使用して、潜在的なデータベースの脆弱性を検出して軽減し、SQL Server インスタンスとデータベース レイヤーに対する脅威を示す可能性のある異常なアクティビティを検出します。

SQL のMicrosoft Defenderには、次の利点があります。

ポータル管理

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

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

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

機密仮想マシン (VM)

Azure機密性の高い VM は、ホスト オペレーター アクセスに対するゲスト OS の保護を強化する、ハードウェアによって強制される強力な境界を提供します。 Azure VM でSQL Serverの機密 VM サイズを選択すると、保護層が強化され、機密データをクラウドに自信を持って格納し、厳格なコンプライアンス要件を満たすことができます。

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

詳細なデプロイ手順については、「Quickstart: SQL Serverを機密 VM にデプロイするを参照してください。

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

Microsoft Entra認証

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

  • Password では、Microsoft Entra資格情報を使用した認証が提供されます
  • Universal (MFA 対応) により多要素認証を追加する
  • Integrated では、Active Directory Federation Services (ADFS) などのフェデレーション プロバイダーを使用してシングル サインオン (SSO) エクスペリエンスを有効にします
  • Service Principal では、Azure アプリケーションからの認証が有効になります
  • 管理 ID では、Microsoft Entra ID が割り当てられたアプリケーションからの認証が有効になります

開始するには、Microsoft Entra 認証の構成を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 Connectivity オプションを使用すると、Local (VM 内) Private (Virtual Network内)、、または Public (インターネット)

SQL Server の接続性を示すダイアグラムです。

セキュリティを最大限に強化するため、自分のシナリオで最も制限の厳しいオプションを選択します。 たとえば、同じ VM でSQL Serverにアクセスするアプリケーションを実行している場合、最も安全な選択肢は Local です。 SQL Serverへのアクセスを必要とするAzure アプリケーションを実行している場合、Private は、指定した Azure 仮想ネットワーク内でのみSQL Serverへの通信をセキュリティで保護します。 SQL Server VM への Public (インターネット) アクセスが必要な場合は、このトピックの他のベスト プラクティスに従って攻撃対象領域を減らしてください。

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

ネットワーク セキュリティ グループの規則を示す図。

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

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

Azure仮想マシン内のSQL Server Database Engineのインスタンスに対して暗号化された接続を有効にすることを検討してください。 署名された証明書SQL Server使用してインスタンスを構成します。 詳細については、「Enable Encrypted Connections to the Database Engine」および「Connection String Syntax」を参照してください。

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

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

ディスクの暗号化

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

従来の VM

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

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

Azure 機密仮想マシン

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

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

トラステッドローンチ

第 2 世代の仮想マシンをデプロイする場合は、高度で永続的な攻撃手法から保護する、トラステッド起動を有効にするオプションがあります。

信頼される起動を使用すると、以下が可能になります。

  • 検証済みのブート ローダー、OS カーネル、ドライバーを使用して、仮想マシンが安全にデプロイされます。
  • 仮想マシン内のキー、証明書、シークレットが安全に保護されます。
  • ブート チェーン全体の整合性に関する分析情報と確信を得ることができます。
  • ワークロードが検証可能で信頼できることを保証します。

現在、Azure VM でSQL Serverの信頼された起動を有効にした場合、次の機能はサポートされていません。

  • Azure Site Recovery
  • Ultra Disks
  • マネージド イメージ
  • 入れ子になった仮想化

アカウントの管理

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

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

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

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

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

      ヒント

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

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

Microsoft Entra Domain Services を使用したSQL Server VM への接続はサポートされていません。 代わりに、Active Directory ドメイン アカウントを使用してください。

監査とレポート

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

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

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

仮想マシン拡張機能

Azure仮想マシン拡張機能は、ウイルス対策、マルウェア、脅威保護などの特定のニーズやリスクに対処するのに役立つ、信頼できる Microsoft またはサード パーティの拡張機能です。

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

FIPS 準拠

Federal Information Processing Standards (FIPS) は、情報技術の製品やシステムに含まれる暗号化モジュールに関して最低限のセキュリティ要件を規定する米国政府の規格です。 FedRAMP や国防総省セキュリティ要件ガイドなど、米国政府の一部のコンプライアンス プログラムでは、FIPS 検証済み暗号化の使用が義務付けられています。

SQL Serverは、SQL Server 2016 以降またはSQL Server 2014Extended Security Updatesを利用して、FIPS に準拠することが可能です。

AZURE VM 上のSQL Serverに FIPS 準拠にするには、既定で FIPS が有効になっているWindows Server 2022上にある必要があります。 WINDOWS SERVER 2019は、セキュリティ技術実装ガイド (STIG) で指定されたポリシーを使用して FIPS が手動で有効になっている場合に、V-93511 を検出する FIPS に準拠することもできます。

SQL Serverは現在、Linux Azure VM では FIPS に準拠していません。

信頼されていないソースからバックアップを復元するセキュリティ リスク

このセクションでは、オンプレミス、Azure SQL Managed Instance、SQL Server on Azure Virtual Machines (VM) など、信頼されていないソースから任意のSQL Server環境へのバックアップの復元に関連するセキュリティ リスクについて説明します。

この重要性について

SQL バックアップ ファイル (.bak) を復元すると、バックアップが信頼されていないソースから発生した場合、潜在的なリスクが発生します。 SQL Server環境に複数のインスタンスがある場合、脅威の領域が増幅されるため、セキュリティ リスクはさらに悪化します。 信頼された境界内に残っているバックアップはセキュリティの問題を引き起こすことはありませんが、悪意のあるバックアップを復元すると、環境全体のセキュリティが損なわれる可能性があります。

悪意のある .bak ファイルは次のことができます。

  • SQL Server インスタンス全体を引き継ぐ。
  • 権限をエスカレートし、基になるホストまたは仮想マシンへの未承認のアクセス権を取得します。

この攻撃は、検証スクリプトまたはセキュリティ チェックを実行する前に発生し、非常に危険です。 信頼されていないバックアップの復元は、重要なサーバーまたは仮想マシンで信頼されていないアプリケーションを実行し、任意のコード実行を環境に導入することと同じです。

ベスト プラクティス

次のバックアップ セキュリティのベスト プラクティスに従って、SQL Server環境に対する脅威を軽減します。

  • バックアップの復元は危険度の高い操作として扱います。
  • 分離されたインスタンスを使用して、脅威のサービス領域を減らします。
  • 信頼できるバックアップのみを許可する: 不明なソースまたは外部ソースからバックアップを復元しないでください。
  • 信頼された境界内に残っているバックアップのみを許可します。信頼された境界内からバックアップが作成されていることを確認します。
  • 便宜上、セキュリティコントロールをバイパスしないでください。
  • サーバー レベルの監査を有効にして、バックアップイベントと復元イベントをキャプチャし、監査回避を軽減します。

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

Azure VM でのSQL Serverの実行に関連するその他のトピックについては、「SQL Server on Azure Virtual Machinesの概要を参照してください。 仮想マシンSQL Serverについて質問がある場合は、頻度の低い質問を参照してください。

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