この記事では、サービスとしてのプラットフォーム (PaaS) の Web アプリケーションとモバイル アプリケーションをセキュリティで保護するための Azure SQL Database と Azure Synapse Analytics のセキュリティのベスト プラクティスのコレクションについて説明します。 このベスト プラクティスは、Azure に関して Microsoft が蓄積してきたノウハウと、ユーザーの皆様の経験に基づいています。
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 認証と、Microsoft Entra ID でサポートされているその他の形式の認証を有効にすることで、パスワードの保存を排除します。
- 包含データベース ユーザーを使用して、データベース レベルで ID を認証します。
- SQL Database に接続するアプリケーションのトークンベースの認証をサポートします。
- Active Directory フェデレーション サービス (ADFS) またはドメイン同期なしのローカル Microsoft Entra ID のネイティブ ユーザー/パスワード認証とのドメイン フェデレーションをサポートします。
- Multi-Factor Authentication (MFA) を含む Active Directory ユニバーサル認証を使用する SQL Server Management Studio からの接続をサポートします。 MFA には、さまざまな簡単な検証オプションを使用した強力な認証が含まれています。 確認オプションは、電話、テキスト メッセージ、スマート カード (ピン付き)、モバイル アプリ通知です。 詳細については、「 SQL Database と Azure Synapse Analytics を使用したユニバーサル認証」を参照してください。
Microsoft Entra 認証の詳細については、以下を参照してください。
- SQL Database、Managed Instance、または Azure Synapse Analytics での認証に Microsoft Entra 認証を使用する
- Azure Synapse Analytics への認証
- Microsoft Entra 認証を使用した Azure SQL Database のトークンベースの認証サポート
注
Microsoft Entra ID が環境に適していることを確認するには、 Microsoft Entra の機能と制限事項に関するページを参照してください。
IP アドレスに基づいてアクセスを制限する
許容される IP アドレスの範囲を指定するファイアウォール規則を作成できます。 これらのルールは、サーバー レベルとデータベース レベルの両方を対象にすることができます。 セキュリティを強化し、データベースの移植性を高めるために、可能な限りデータベース レベルのファイアウォール規則を使用することをお勧めします。 サーバー レベルのファイアウォール規則は、管理者に最適です。また、同じアクセス要件を持つデータベースが多数あるものの、各データベースを個別に構成する時間を費やしたくない場合に最適です。
SQL Database の既定のソース IP アドレス制限では、他のサブスクリプションやテナントを含む任意の Azure アドレスからのアクセスが許可されます。 これは、IP アドレスがインスタンスにアクセスすることのみを許可するように制限できます。 SQL ファイアウォールと IP アドレスの制限がある場合でも、強力な認証が必要です。 この記事で前述した推奨事項を参照してください。
Azure SQL Firewall と IP の制限の詳細については、以下を参照してください。
- Azure SQL Database と Azure Synapse Analytics のアクセス制御
- Azure SQL Database と Azure Synapse Analytics のファイアウォール規則
保存データを暗号化する
Transparent Data Encryption (TDE) は既定で有効になっています。 TDE は、SQL Server、Azure SQL Database、Azure Synapse Analytics のデータ ファイルとログ ファイルを透過的に暗号化します。 TDE は、ファイルまたはそのバックアップへの直接アクセスの侵害から保護します。 これにより、既存のアプリケーションを変更せずに保存データを暗号化できます。 TDE は常に有効なままにする必要があります。ただし、これにより攻撃者が通常のアクセス パスを使用するのを阻止することはできません。 TDEは、さまざまな業界で確立された多くの法律、規制、ガイドラインを遵守する能力を提供します。
Azure SQL は、TDE の主要な関連する問題を管理します。 TDE と同様に、回復性とデータベースの移動時には、オンプレミスで特別な注意を払う必要があります。 より高度なシナリオでは、拡張キー管理を使用して Azure Key Vault でキーを明示的に管理できます。 EKM を使用した SQL Server での TDE の有効化を参照してください。 これにより、Azure Key Vaults BYOK 機能を使用して Bring Your Own Key (BYOK) を使用することもできます。
Azure SQL では、 Always Encrypted を使用した列の暗号化が提供されます。 これにより、承認されたアプリケーションのみが機密性の高い列にアクセスできます。 この種の暗号化を使用すると、暗号化された列の SQL クエリが等価ベースの値に制限されます。
アプリケーション レベルの暗号化は、選択的データにも使用する必要があります。 データ主権の問題は、正しい国/地域に保持されているキーを使用してデータを暗号化することによって軽減される場合があります。 これにより、強力なアルゴリズム (AES 256 など) が使用されていると仮定すると、キーなしでデータを復号化することは不可能であるため、偶発的なデータ転送でも問題が発生するのを防ぐことができます。
セキュリティで保護されたシステムの設計、機密資産の暗号化、データベース サーバー周辺のファイアウォールの構築など、データベースのセキュリティ保護に役立つ追加の予防措置を使用できます。
次のステップ
この記事では、PaaS Web アプリケーションとモバイル アプリケーションをセキュリティで保護するための SQL Database と Azure Synapse Analytics のセキュリティのベスト プラクティスのコレクションについて説明しました。 PaaS デプロイのセキュリティ保護の詳細については、次のリンク先をご覧ください。