次の方法で共有


Azureでの PaaS データベースのセキュリティ保護に関するベスト プラクティス

この記事では、Azure SQL DatabaseAzure Synapse Analytics サービスとしてのプラットフォーム (PaaS) の Web アプリケーションとモバイル アプリケーションをセキュリティで保護するためのセキュリティのベスト プラクティスについて説明します。 これらのベスト プラクティスは、Azureの経験と、自分のような顧客のエクスペリエンスから派生しています。

Azure SQL DatabaseおよびAzure Synapse Analytics は、インターネット ベースのアプリケーションにリレーショナル データベース サービスを提供します。 PaaS デプロイで Azure SQL Database および Azure Synapse Analytics を使用するときに、アプリケーションとデータを保護するのに役立つサービスを見てみましょう。

  • Microsoft Entra 認証 (SQL Server認証の代わりに)
  • Azure SQL ファイアウォール
  • Transparent Data Encryption (TDE)

一元化された ID リポジトリを使用する

Azure SQL Databaseは、次の 2 種類の認証のいずれかを使用するように構成できます。

  • SQL 認証 では、ユーザー名とパスワードが使用されます。 データベースのサーバーを作成するときに、ユーザー名とパスワードを使用して "サーバー管理者" ログインを指定しました。 これらの資格情報を使用すると、そのサーバー上の任意のデータベースに対してデータベース所有者として認証できます。

  • Microsoft Entra 認証は、Microsoft Entra IDによって管理される ID を使用し、マネージド ドメインと統合ドメインでサポートされます。 Microsoft Entra 認証を使用するには、"Microsoft Entra admin" という名前の別のサーバー管理者を作成する必要があります。この管理者は、Microsoft Entra のユーザーとグループを管理できます。 この管理者は、通常のサーバー管理者が実行できるすべての操作も実行できます。

Microsoft Entra 認証 は、Microsoft Entra IDの ID を使用して Azure SQL Database および Azure Synapse Analytics に接続するメカニズムです。 Microsoft Entra IDでは、SQL Server認証の代替手段が提供されるため、データベース サーバー間でのユーザー ID の急増を阻止できます。 Microsoft Entra 認証を使用すると、データベース ユーザーとその他の Microsoft サービスの ID を 1 か所で一元的に管理できます。 ID の一元管理では、1 か所でデータベース ユーザーを管理できるようになるため、アクセス許可の管理が容易になります。

SQL 認証の代わりにMicrosoft Entra IDを使用する利点

  • 1 か所でのパスワードのローテーションを許可します。
  • 外部の Microsoft Entra グループを使用してデータベースのアクセス許可を管理します。
  • 統合されたWindows authenticationや、Microsoft Entra IDでサポートされているその他の形式の認証を有効にすることで、パスワードを格納する必要がなくなります。
  • 包含データベース ユーザーを使用して、データベース レベルで ID を認証します。
  • SQL Database に接続するアプリケーションのトークンベースの認証をサポートします。
  • ドメイン同期を使用しないローカル Microsoft Entra IDに対して、Active Directory Federation Services (ADFS) またはネイティブ ユーザー/パスワード認証によるドメイン フェデレーションをサポートします。
  • Multi-Factor Authentication (MFA) を含むActive Directoryユニバーサル認証を使用するSQL Server Management Studioからの接続をサポートします。 MFA には、さまざまな簡単な検証オプションを使用した強力な認証が含まれています。 確認オプションは、電話、テキスト メッセージ、スマート カード (ピン付き)、モバイル アプリ通知です。 詳細については、「 SQL Database と Azure Synapse Analytics を使用したUniversal 認証を参照してください。

Microsoft Entra 認証の詳細については、以下を参照してください。

Microsoft Entra IDが環境に適していることを確認するには、Microsoft Entra の機能と制限事項を参照してください。

IP アドレスに基づいてaccessを制限する

許容される IP アドレスの範囲を指定するファイアウォール規則を作成できます。 これらのルールは、サーバー レベルとデータベース レベルの両方を対象にすることができます。 セキュリティを強化し、データベースの移植性を高めるために、可能な限りデータベース レベルのファイアウォール規則を使用することをお勧めします。 サーバー レベルのファイアウォール規則は、管理者に最適です。また、同じaccess要件を持つデータベースが多数あるものの、各データベースを個別に構成する時間を費やしたくない場合に最適です。

SQL Database の既定のソース IP アドレス制限では、他のサブスクリプションやテナントを含め、任意のAzure アドレスからaccessできます。 IP アドレスのみがインスタンスにアクセスできるように制限できます。 SQL ファイアウォールと IP アドレスの制限がある場合でも、強力な認証が必要です。 この記事で前述した推奨事項を参照してください。

Azure SQLファイアウォールと IP の制限の詳細については、以下を参照してください。

データを保存時に暗号化する

Transparent Data Encryption (TDE) は既定で有効になっています。 TDE は、SQL Server、Azure SQL Database、Azure Synapse Analytics のデータ ファイルとログ ファイルを透過的に暗号化します。 TDE は、ファイルまたはそのバックアップへの直接accessの侵害から保護します。 これにより、既存のアプリケーションを変更せずに保存データを暗号化できます。 TDE は常に有効なままにする必要があります。ただし、通常のaccess パスを使用して攻撃者を阻止することはできません。 TDEは、さまざまな業界で確立された多くの法律、規制、ガイドラインを遵守する能力を提供します。

Azure SQLは、TDE の主要な関連する問題を管理します。 TDE と同様に、回復性とデータベースの移動時には、オンプレミスで特別な注意を払う必要があります。 より高度なシナリオでは、拡張キー管理を使用してAzure Key Vaultでキーを明示的に管理できます。 SQL ServerでのEKMを使用したTDEの有効化を参照してください。 これにより、Azure Key Vault の機能を利用して、Bring Your Own Key (BYOK) を実現することができます。

Azure SQLでは、Always Encrypted を介した列の暗号化が提供されます。 これにより、承認されたアプリケーションのみが機密性の高い列にaccessできます。 この種の暗号化を使用すると、暗号化された列の SQL クエリが等価ベースの値に制限されます。

アプリケーション レベルの暗号化は、選択的データにも使用する必要があります。 データ主権の問題は、正しい国/地域に保持されているキーを使用してデータを暗号化することによって軽減される場合があります。 これにより、強力なアルゴリズム (AES 256 など) が使用されていると仮定すると、キーなしでデータを復号化することは不可能であるため、偶発的なデータ転送でも問題が発生するのを防ぐことができます。

セキュリティで保護されたシステムの設計、機密資産の暗号化、データベース サーバー周辺のファイアウォールの構築など、データベースのセキュリティ保護に役立つ追加の予防措置を使用できます。

次のステップ

この記事では、PaaS Web アプリケーションとモバイル アプリケーションをセキュリティで保護するための SQL Database と Azure Synapse Analytics のセキュリティのベスト プラクティスのコレクションについて説明しました。 PaaS デプロイのセキュリティ保護の詳細については、次のリンク先をご覧ください。