Azure Database for PostgreSQL は、高可用性、自動バックアップ、スケーリング機能を備えたフルマネージド データベース サービスです。 PostgreSQL データベースのデプロイをセキュリティで保護することで、機密データを保護し、コンプライアンス要件を満たすことができます。
この記事では、Azure Database for PostgreSQLフレキシブル サーバー展開をセキュリティで保護する方法について説明します。
この記事のセキュリティに関する推奨事項では、ゼロ トラストの原則 ("明示的に確認する"、"最小限の特権アクセスを使用する"、"侵害を想定する") が実装されています。 包括的なゼロ トラスト ガイダンスについては、 ゼロ トラスト ガイダンス センターを参照してください。
ネットワークのセキュリティ
ネットワーク セキュリティ制御は、パブリック露出を減らし、柔軟なサーバー Azure Database for PostgreSQLセグメント化された仮想ネットワーク アーキテクチャに統合するのに役立ちます。
パブリック ネットワーク アクセスを無効にする: プライベート接続が使用可能な場合に PostgreSQL フレキシブル サーバーへのパブリック接続をブロックすることで、インターネットへの露出を防ぎます。 詳細については、「Azure Database for PostgreSQL の Private Link を使用したネットワーク構成」を参照してください。
プライベート エンドポイントを使用する: Azure Private Link経由で PostgreSQL フレキシブル サーバーに接続し、データベース トラフィックが仮想ネットワーク内のプライベート IP アドレスにとどまるようにします。 詳細については、「Private Link を使用した Azure Database for PostgreSQL のネットワーク」を参照してください。
仮想ネットワーク統合を使用する: クライアント アクセスと依存するAzure サービスへの送信接続に仮想ネットワーク レベルの分離が必要な場合は、プライベート アクセスを使用して PostgreSQL フレキシブル サーバーをデプロイします。 詳細については、「 Azure Database for PostgreSQL のプライベート アクセスを使用したネットワーク」を参照してください。
パブリック ファイアウォール アクセスを制限する: デプロイでパブリック アクセスが必要な場合は、必要なクライアント IP アドレスのみを許可し、広範なファイアウォール規則を回避します。 詳細については、Azure Database for PostgreSQLのファイアウォール規則を使用したパブリック アクセスに関するセクションを参照してください。
パブリック ネットワークの動作を確認する: 接続モデルを選択する前に、パブリック アクセス、ファイアウォール規則、および許可された IP アドレスが露出にどのように影響するかを理解します。 詳細については、「パブリック アクセスを使用したAzure Database for PostgreSQLのネットワークの概要」を参照してください。
アイデンティティとアクセス管理
ID とアクセス制御は、認証を一元化し、資格情報の公開を減らし、Azure管理と PostgreSQL データベース アクセス全体で最小限の特権を適用するのに役立ちます。
Microsoft Entra認証を使用する: PostgreSQL フレキシブル サーバーのMicrosoft Entra認証を使用して、ID 制御を一元化し、ローカル データベース パスワードへの依存を減らします。 詳細については、「Azure Database for PostgreSQLを使用した認証のMicrosoft Entra」を参照してください。
Microsoft Entra プリンシパルの管理: PostgreSQL フレキシブル サーバーの Microsoft Entra 管理者、ユーザー、グループを割り当てて確認し、データベース アクセスが最小権限の原則に従うようにします。 詳細については、「Azure Database for PostgreSQLでのMicrosoft Entraロールの管理」を参照してください。
アプリケーション アクセスにマネージド ID を使用する: アプリケーション コードまたは構成に資格情報を格納する代わりに、マネージド ID を使用して PostgreSQL フレキシブル サーバーに対してAzureホストされたアプリケーションを認証します。 詳細については、「Azure Database for PostgreSQLのマネージド ID」を参照してください。
PostgreSQL 管理者に条件付きアクセスを適用する: PostgreSQL フレキシブル サーバーと関連するAzure リソースを管理する ID に、多要素認証や準拠デバイスの要件などの条件付きアクセス ポリシーを適用します。 詳細については、「共通条件付きアクセスポリシー:Azure管理のためのMFAが必要」をご覧ください。
ローカル認証に SCRAM を使用する: ローカル PostgreSQL ユーザーが必要な場合は、SCRAM 認証と強力なパスワード プラクティスを使用して、パスワード侵害のリスクを軽減します。 詳細については、Azure Database for PostgreSQLの SCRAM 認証を参照してください。
ローカル データベース ロールの管理: PostgreSQL ロールとアクセス許可を使用して、各ユーザーが必要とするオブジェクトと操作へのデータベース レベルのアクセスを制限します。 詳細については、「Azure Database for PostgreSQL でユーザーを管理する」を参照してください。
Azureロールベースのアクセス制御 (RBAC) を実装する: PostgreSQL フレキシブル サーバー リソースを作成、構成、監視、または削除する必要がある ID にのみ、Azure RBAC ロールを割り当てます。 詳細については、ロールベースのアクセス制御Azure参照してください。
データ保護
Azure Database for PostgreSQLは、サービスマネージド キーを使用して、プライマリ サーバー、レプリカ、ポイントインタイム 復旧データ、および保存時のバックアップを暗号化します。 ワークロードで、より強力な暗号化ガバナンスまたはデータ使用保護が必要な場合は、お客様が構成可能な次の制御を使用します。
TLS 接続の確認:
sslmode=verify-fullを使用してサーバー証明書チェーンとホスト名を検証するように PostgreSQL クライアントを構成するか、verify-fullできない場合はsslmode=verify-caします。 詳細については、「Azure Database for PostgreSQLのトランスポート層セキュリティ」を参照してください。信頼されたルート証明書を維持する: ルート証明機関Azureクライアント信頼ストアに保持し、中間証明書または個々のサーバー証明書を信頼しないようにして、証明書のローテーションが接続を中断しないようにします。 詳細については、「Azure Database for PostgreSQLのトランスポート層セキュリティ」を参照してください。
サポートされている場合は TLS 1.3 が必要です。最新のセキュリティで保護されたプロトコル バージョンをサポートし、
ssl_max_protocol_versionを設定しないクライアントの場合は、ssl_min_protocol_versionサーバー パラメーターをTLSv1.3に設定します。 詳細については、「Azure Database for PostgreSQLのトランスポート層セキュリティ」を参照してください。暗号化ガバナンスにカスタマー マネージド キーを使用する: キーのライフサイクル制御または職務の分離が必要な場合は、Azure Key Vaultまたは Azure Managed HSM でカスタマー マネージド キーを構成します。 テナント間のカスタマー マネージド キーは、文書化された要件を満たすプレビュー シナリオにのみ使用します。 詳細については、「Azure Database for PostgreSQLでの保存データの暗号化」および「Azure Database for PostgreSQLでのデータ暗号化の構成」を参照してください。
自動キー ローテーションを構成する: カスタマー マネージド キーを使用する場合は、Azure Key Vaultまたはマネージド HSM をAzureでキーの自動ローテーションを有効にし、キーバージョンの自動更新を使用するように PostgreSQL フレキシブル サーバーを構成します。 詳細については、「 カスタマー マネージド キー暗号化の構成」を参照してください。
機密性の高いワークロードにコンフィデンシャル コンピューティングを使用する: 使用中のデータに対するハードウェア ベースの保護が必要な場合は、サポートされているリージョンでサポートされているコンフィデンシャル コンピューティング SKU に PostgreSQL フレキシブル サーバーをデプロイします。 詳細については、「Azure Database for PostgreSQLのAzureコンフィデンシャル コンピューティング」を参照してください。
機密性の高い PostgreSQL データにデータの匿名化を適用する: データベース レベルのデータ匿名化ツールが必要な場合は、
anon拡張機能を使用し、使用する前に必要な共有プリロード ライブラリを構成します。 詳細については、フレキシブル サーバーの名前別の拡張機能とモジュールの一覧Azure Database for PostgreSQL参照してください。
ログ記録と監視
ログ記録と監視の制御は、疑わしいアクティビティの検出、インシデントの調査、PostgreSQL 監査の証拠の運用とコンプライアンスのワークフローの利用を支援します。
診断ログ収集を有効にする: 診断設定と監査カテゴリ グループのAzure Policy割り当てを使用して、PostgreSQL フレキシブル サーバー監査ログをLog Analyticsに送信します。 詳細については、Azure Database for PostgreSQLの組み込みのAzure Policyを参照してください。
監査ログを有効にする:
pgaudit拡張機能を使用して PostgreSQL 監査ログを構成し、調査とコンプライアンスのレビューのためにデータベース アクティビティをキャプチャします。 詳細については、「Azure Database for PostgreSQLでの監査ログ記録」を参照してください。Microsoft Entra認証イベントの監査: PostgreSQL フレキシブル サーバーのMicrosoft Entra認証アクティビティを監視して、ID ベースのアクセスとサインイン パターンを調査します。 詳細については、「Azure Database for PostgreSQL での Microsoft Entra 認証の監査」を参照してください。
オープンソース リレーショナル データベースのMicrosoft Defenderを有効にする: Microsoft Defender for Cloudを使用して、異常な PostgreSQL アクセス パターン、ブルート フォース試行、疑わしいデータベース アクティビティ、PostgreSQL 固有の構成リスクを検出します。 詳細については、Azure Database for PostgreSQL フレキシブル サーバーの Microsoft Defender for Cloudを参照してください。
コンプライアンスとガバナンス
コンプライアンスとガバナンスの制御は、一貫性のある構成を適用し、PostgreSQL デプロイを規制要件にマップし、セキュリティの所有権を大規模に把握するのに役立ちます。
Azure Policyを使用して PostgreSQL セキュリティ構成を適用する: プライベート エンドポイント、パブリック アクセス制限、診断ログ、TLS、カスタマー マネージド キー、geo 冗長バックアップなどの PostgreSQL フレキシブル サーバー制御用の組み込みポリシーを割り当てます。 詳細については、Azure Database for PostgreSQLの組み込みのAzure Policyを参照してください。
PostgreSQL のコンプライアンス オファリングを確認する: 規制対象データを処理する前に、Azure Database for PostgreSQL フレキシブル サーバーを関連するコンプライアンス認定および保証報告書に対応付けて確認します。 詳細については、「Azure Database for PostgreSQLのコンプライアンス」を参照してください。
運用サーバーにリソース ロックを適用する: 運用 PostgreSQL フレキシブル サーバーと依存リソースの管理ロックを使用して、誤った削除や破壊的な構成変更を減らします。 詳細については、「ロックを使用してAzureリソースを保護する」を参照してください。
ガバナンス用の PostgreSQL リソースにタグを付ける: PostgreSQL フレキシブル サーバーと関連リソースに、ワークロード、環境、データ分類、所有者、コンプライアンス スコープなどのタグを適用し、ポリシー、インベントリ、およびコスト管理ワークフローで保護されたデータベースを識別できるようにします。 詳細については、「 タグを使用して Azure リソースを整理する」を参照してください。
バックアップと回復
バックアップと回復の制御は、ワークロードの回復目標を満たしながら、誤って削除、破損、またはリージョンの中断が発生した後に PostgreSQL データを復元するのに役立ちます。
自動バックアップリテンション期間を構成する: 特定の時点の復旧要件に基づいてバックアップ保有期間を 7 日から 35 日に設定し、保持期間がワークロード回復のニーズと一致することを検証します。 詳細については、「 Azure Database for PostgreSQL でのバックアップと復元」を参照してください。
リージョン復旧のために geo 冗長バックアップを有効にする: ディザスター リカバリー計画でAzureペアリージョンの復元機能が必要な場合は、サーバーを作成するときに geo 冗長バックアップを構成します。 詳細については、「Azure Database for PostgreSQL の geo ディザスター リカバリー」を参照してください。
重要なワークロードの高可用性を構成する: 高可用性構成を使用してスタンバイ レプリカをプロビジョニングし、ゾーンまたはインフラストラクチャの障害時のダウンタイムを短縮します。 詳細については、「Azure Database for PostgreSQLの高可用性を構成する」を参照してください。
復旧計画に読み取りレプリカを使用する: 読み取りレプリカを使用して読み取りトラフィックをオフロードし、昇格されたレプリカを必要とする復旧シナリオをサポートします。 詳細については、「Azure Database for PostgreSQL のレプリカの読み取り」を参照してください。
カスタマー マネージド キーを使用してバックアップ データを保護する: バックアップと復元のデータが組織のキー管理要件に従う必要がある場合は、カスタマー マネージド キー暗号化を使用します。 詳細については、「Azure Database for PostgreSQLでのバックアップと復元」および「Azure Database for PostgreSQLでのデータ暗号化の構成」を参照してください。
事業継続性の目標を策定する: バックアップ保持期間、高可用性、読み取り専用レプリカ、geo リストア オプションを、ワークロードの目標復旧時間と目標復旧時点に合わせます。 詳細については、「Azure Database for PostgreSQLのビジネス継続性」を参照してください。