Cloud SQL PostgreSQLのエラーログ設定について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、gcloud CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Cloud SQLのPostgreSQLインスタンスでlog_min_error_statementパラメータが推奨値で設定されていない問題について、リスクと対策を解説します。

ポリシーの説明
Cloud SQLのPostgreSQLインスタンスにおける「log_min_error_statement」パラメータは、エラーが発生したSQL文をログに記録するための最小エラーレベルを制御します。このパラメータを適切に設定することで、データベースのエラー状況を把握し、問題の早期発見と解決が可能になります。推奨される設定値は「ERROR」であり、これによりERROR、FATAL、PANICレベルのエラーに関連するSQL文がログに記録されます。
修復方法
コンソールでの修復手順
Google Cloud コンソールを使用して、log_min_error_statementパラメータを適切な値に設定します。
- Google Cloud Consoleにログイン
- Cloud SQLインスタンスページに移動します
- 対象のPostgreSQLインスタンスを選択
- 設定を変更したいPostgreSQLインスタンスをクリックします
- インスタンスの編集画面を開く
- インスタンス詳細ページで「編集」ボタンをクリックします
- フラグセクションまでスクロール
- 設定画面を下にスクロールし、「フラグ」セクションを見つけます
- 「データベースフラグ」の「項目を追加」をクリックします
- log_min_error_statementフラグを設定
- フラグのドロップダウンから「log_min_error_statement」を選択します
- 値として「ERROR」を選択します(推奨値)
- 注意: 「LOG」や「WARNING」を選択すると、ログ量が増大し、パフォーマンスに影響を与える可能性があります
- 関連するログ設定も確認
- セキュリティ監視を強化するため、以下のフラグも適切に設定することを推奨します:
log_statement
: 「ddl」に設定(スキーマ変更を追跡)log_connections
: 「on」に設定(接続試行を記録)log_disconnections
: 「on」に設定(切断を記録)
- セキュリティ監視を強化するため、以下のフラグも適切に設定することを推奨します:
- 変更を保存
- ページ下部の「保存」ボタンをクリックして変更を適用します
- 注意: この変更はインスタンスの再起動を必要としませんが、新規接続から有効になります
- 設定の確認
- フラグセクションで設定が正しく適用されていることを確認します
Terraformでの修復手順
Cloud SQL PostgreSQLインスタンスのlog_min_error_statementパラメータを適切に設定するTerraformコードと、主要な修正ポイントを説明します。
# Cloud SQL PostgreSQLインスタンスの設定
resource "google_sql_database_instance" "postgresql_secure" {
>>>> Skip
settings {
# エラーログレベルの設定(必須)
database_flags {
name = "log_min_error_statement"
value = "ERROR" # 重要: ERROR以上のレベルを記録
}
}
}
最後に
この記事では、Cloud SQLのPostgreSQLインスタンスでlog_min_error_statementパラメータが推奨値で設定されていない問題について、リスクと対策を解説しました。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。