Azure HorizonDB は、組み込みの高可用性、自動バックアップ、スケーリング機能を提供するフル マネージド データベース サービスです。 PostgreSQL データベースのデプロイをセキュリティで保護することは、機密データの安全性を確保し、業界標準への準拠を維持するうえで重要です。
この記事では、Azure HorizonDB サーバーのデプロイをセキュリティで保護する方法について説明します。
アクセス制御
アクセス制御セクションでは、最小特権の原則に基づき、必要最小限のアクセス権を確保することに重点を置いています。 昇格されたアクセス権の制限と管理、多要素認証の適用、特権操作のログ記録と監査を通じて、機密性の高いリソースへの不正アクセス リスクを最小限に抑えることが重視されています。
アクセス制御セクションに関連するセキュリティ サービス、機能、およびベスト プラクティスの一例を以下に示します。
ロールベースのアクセス制御を使用する: Azure のロールベースのアクセス制御 (RBAC) を実装して、Azure HorizonDB リソースへのアクセスを管理します。 最小特権の原則に従ってロールを割り当て、ユーザーやアプリケーションに必要最小限のアクセス許可のみが付与されていることを確認してください。 詳細については、Azure ロールベースのアクセス制御 (RBAC)を参照してください。
Azure のセキュリティのベスト プラクティスに従う: HorizonDB は、ID とアクセス管理に関する Azure のセキュリティのベスト プラクティスに従います。
ローカル データベースのユーザー、ロール、およびアクセス許可を管理する: PostgreSQL の組み込みロール管理を使用して、データベース レベルでアクセスを制御します。 最小特権の原則を適用するために、特定のアクセス許可を持つカスタム ロールを作成します。 これらのロールを定期的に見直し、監査を行うことで、セキュリティ ポリシーへの準拠状況を確認します。 詳細については、「
Azure HorizonDB (プレビュー) 。
データ保護
データ保護セクションでは、保存時および転送時の機密データの安全性確保に重点を置いています。 これにより、データの暗号化、アクセス制御が行われ、機密情報が不正アクセスから保護されます。 データの整合性と機密性を保護するために、暗号化、安全な接続、データ マスキングの活用が重要視されています。
データ保護セクションに関連するセキュリティ サービス、機能、ベスト プラクティスの一例を以下に示します。
転送中のデータを暗号化する
TLS 接続を確認する: Azure HorizonDB は、アプリケーションとデータベース間で転送中のデータを暗号化します。 サーバー証明書を確認するようにアプリケーションを構成します。 詳細については、Azure HorizonDB (プレビュー) のトランスポート層セキュリティ (TLS) を参照してください。
クライアントに最新の TLS 証明書がインストールされていることを確認する: セキュリティで保護された接続をサポートするために、クライアント アプリケーションに最新の TLS 証明書がインストールされていることを確認します。 詳細については、Azure HorizonDB (プレビュー) のトランスポート層セキュリティ (TLS) を参照してください。
TLS 1.3 の使用が必要: すべての接続に対して TLS 1.3 を使用するよう、PostgreSQL サーバーの設定を行います。 詳細については、Azure HorizonDB (プレビュー) のトランスポート層セキュリティ (TLS) を参照してください。
静止時の暗号化
Data は常に SMK を使用して保存時に透過的に暗号化されます。Azure HorizonDB では、サービス マネージド キー (SMK) を使用して保存データが自動的に暗号化されます。 この暗号化により、追加の構成を行わなくても、データは確実に保護されます。 この機能は、Azure の基盤となるストレージ インフラストラクチャに依存しています。 プライマリ サーバー、レプリカ、ポイントインタイム リカバリー (PITR)、バックアップを対象としています。 詳細については、「Azure HorizonDB での保存データの暗号化 (プレビュー)」を参照してください。
クライアント側の暗号化を使用して超機密データを暗号化する: 超機密データの場合は、クライアント側の暗号化の実装を検討してください。 この方法では、データベースに送信する前にデータを暗号化することで、暗号化された情報のみが保存されるようになります。 この方法を採用することで、セキュリティ層が追加され、データベース自体および管理者は暗号化されていないデータにアクセスできなくなります。
データ マスキングと秘匿処理
データ マスキングを実装する: PostgreSQL Anonymizer 拡張機能を使用して、以下をサポートします。
匿名ダンプ: マスクされたデータを SQL ファイルにエクスポートします。
静的マスク: 規則に従って個人データを削除します。
動的マスク: マスクされたユーザーの個人データのみを非表示にします。
マスク ビュー: マスクされたユーザー専用のビューを作成します。
マスク データ ラッパー: 外部データにマスク ルールを適用します。
バックアップと回復
バックアップと回復のセクションでは、Azure サービス全体のデータと構成が、障害や災害時にも定期的にバックアップされ、保護され、回復可能であることを重視しています。 このセクションでは、バックアップの自動化、バックアップ データのセキュリティ保護、そして復旧時間目標 (RTO) および復旧ポイント目標 (RPO) を満たすための復旧プロセスのテストと検証が重視されています。 このセクションでは、バックアップ プロセスの監視と監査が、コンプライアンスの維持と復旧体制の整備において重要である点にも触れています。 概要については、「Azure HorizonDB (プレビュー)のビジネス継続性の概要」を参照してください。
バックアップと回復の監視に関するセクションで活用できるセキュリティ サービス、機能、ベスト プラクティスを以下に示します。
自動バックアップの構成: Azure HorizonDB は、データベース ファイルの毎日のバックアップを自動的に実行し、トランザクション ログを継続的にバックアップします。 バックアップは 7 日から最大 35 日間まで保持できます。 データベース サーバーは、バックアップの保持期間内の任意の時点に復元できます。 RTO は、復元するデータの容量とログ回復の所要時間に応じて変動します。 所要時間は数分から最大 12 時間まで変動します。 詳細については、Azure HorizonDB のバックアップ(プレビュー)を参照してください。
読み取りレプリカの構成: 読み取りレプリカを使用することで、プライマリ サーバーの読み取り負荷を軽減し、パフォーマンスと可用性を向上させることができます。 また、ディザスター リカバリー シナリオでは、プライマリ サーバーに障害が発生した際に、読み取りレプリカへ迅速に切り替えることで可用性を維持できます。
カスタマー マネージド キー暗号化を使用してバックアップ データを保護する: 保存時の暗号化を使用することで、バックアップ データの安全性を確保できます。