Cloud SQL PostgreSQLでlog_min_duration_statementを無効化する手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、gcloud CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Google Cloud SQL PostgreSQLインスタンスでlog_min_duration_statementパラメータが有効化されている問題について、機密情報漏洩の詳細なリスク分析と、gcloud CLI、Terraform、Cloud Consoleを使用した包括的な修復方法を解説します。2025年1月時点の最新のセキュリティベストプラクティスとコンプライアンス要件に対応しています。

ポリシーの説明
log_min_duration_statementパラメータは、PostgreSQLデータベースで指定された実行時間(ミリ秒単位)を超えるSQLステートメントをpostgresql.log
に記録する機能です。
Cloud SQLでは、これらのログはCloud Loggingに自動的に統合され、以下の情報が記録されます:
- 実行されたSQLステートメントの完全なテキスト
- パラメータ値を含むバインド変数の内容
- クエリの実行時間とパフォーマンス統計
- セッション情報とユーザー情報
本番環境でこのパラメータを有効化することは、機密情報漏洩の重大なセキュリティリスクを招くため、必ず-1(無効)に設定する必要があります。
修復方法
前提条件
- Cloud SQL Admin役割(
roles/cloudsql.admin
)または同等の権限 - 対象のCloud SQL PostgreSQLインスタンスへのアクセス権
- インスタンスの再起動は不要(オンラインで設定変更可能)
コンソールでの修復手順
Google Cloud コンソールを使用した修復方法:
- Google Cloud Consoleにアクセスし、ナビゲーションメニューから「SQL」を選択

- 対象のPostgreSQLインスタンスをクリック

- 左側メニューの「構成」タブを選択し、「構成の編集」ボタンをクリック

- 「フラグとパラメータ」セクションまでスクロール
- 「+ 項目を追加」をクリックし、以下のフラグを設定:
- フラグ:
log_min_duration_statement
値:1
- フラグ:
- 必要に応じて以下のフラグも追加(推奨):
log_statement
:none
(クエリテキストのログを無効化)log_connections
:on
(接続ログは有効化)log_checkpoints
:on
(チェックポイントログは有効化)
- 「保存」をクリックして変更を適用
Terraformでの修復手順
Infrastructure as Codeを使用した本番環境向けのセキュアな実装例です。
# Cloud SQL PostgreSQL インスタンスの設定
resource "google_sql_database_instance" "postgres_instance" {
>>>> Skip
settings {
# スロークエリログの無効化(セキュリティ必須)
database_flags {
name = "log_min_duration_statement"
value = "-1" # -1で無効化(機密情報保護)
}
}
}
まとめ
この記事では、Google Cloud SQL PostgreSQLインスタンスでlog_min_duration_statementパラメータを無効化する包括的な方法を解説しました。
重要なポイント:
- クエリログは機密情報漏洩の重大なリスク
- 本番環境では必ず-1(無効)に設定
- Cloud SQL Insightsやpg_stat_statementsは安全な代替手段
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。
参考情報
Google Cloud公式ドキュメント(2025年1月確認)
- Cloud SQL for PostgreSQL – データベースフラグ設定ガイド
- Cloud SQL Insights – クエリ分析とパフォーマンス監視
- Cloud Logging – ログの削除と保持ポリシー
- Security Command Center – Cloud SQLの脆弱性検出