カテゴリ: Rails 更新日: 2026/03/30

Railsログの個人情報を守る!filter_parametersとログマスキング完全入門

パラメータ/PIIのマスキング:filter_parameters・ログレッドアクション
パラメータ/PIIのマスキング:filter_parameters・ログレッドアクション

先生と生徒の会話形式で理解しよう

生徒

「Railsのログって、全部そのまま記録されるんですか?名前とかパスワードも見えちゃうんですか?」

先生

「設定しないと、そのまま残ることがあります。だから個人情報を隠す仕組みがとても大切なんです。」

生徒

「えっ、危なくないですか?初心者でも対策できますか?」

先生

「大丈夫です。Railsには最初から守るための仕組みが用意されています。」

1. Railsのログとは何か

1. Railsのログとは何か
1. Railsのログとは何か

Railsのログとは、アプリが動いた記録を文字として残したものです。たとえば、誰がどの画面を開いたか、どんなデータが送られたか、といった情報が書かれます。これは日記のようなもので、あとから問題が起きたときに原因を探す手がかりになります。Railsでは標準でログ機能があり、特別な設定をしなくても動きます。ただし、便利な反面、気をつけないと大事な情報まで記録されてしまいます。

Railsの仕組みを根本から理解し、現場で通用する 「設計のセオリー」を身につけたいならこの一冊。 MVC、テスト、Docker対応など、実践的な内容が凝縮されています。

パーフェクト Ruby on RailsをAmazonで見る

※ Amazon広告リンク

2. 個人情報とPIIの考え方

2. 個人情報とPIIの考え方
2. 個人情報とPIIの考え方

個人情報とは、人を特定できる情報のことです。名前、メールアドレス、電話番号、パスワードなどが含まれます。技術の世界では、これをPIIと呼ぶことがあります。難しく聞こえますが、「人にひもづく大事な情報」くらいの理解で十分です。これらがログにそのまま残ると、誰かに見られたときに大きな問題になります。そのため、ログには直接書かない、もしくは見えなくする工夫が必要です。

3. filter_parametersとは

3. filter_parametersとは
3. filter_parametersとは

filter_parametersは、Railsに最初から用意されている安全装置です。指定した項目の中身を「見えない文字」に置き換えてログに出します。たとえば、パスワードを星印で隠すようなイメージです。これにより、ログを見ても中身は分からず、安心して運用できます。初心者でも設定ファイルに書くだけで使えるのが特徴です。


# config/initializers/filter_parameter_logging.rb
Rails.application.config.filter_parameters += [:password]

4. 複数のパラメータをまとめて隠す

4. 複数のパラメータをまとめて隠す
4. 複数のパラメータをまとめて隠す

実際のアプリでは、隠したい情報は一つだけではありません。メールアドレスやクレジット番号なども対象になります。filter_parametersでは、配列を使ってまとめて指定できます。これは「この名前がついたデータは全部隠す」とRailsに伝える作業です。こうしておくことで、うっかりログに残る事故を防げます。


Rails.application.config.filter_parameters += [
  :password,
  :email,
  :credit_card_number
]

5. ログでどう表示されるか

5. ログでどう表示されるか
5. ログでどう表示されるか

設定をすると、ログの表示が変わります。実際の値は保存されず、代わりに「FILTERED」という文字が表示されます。これは「ここは隠されていますよ」という合図です。ログを見る人は動きだけを確認でき、個人情報までは見えません。この仕組みのおかげで、開発者も安心してログを確認できます。


Parameters: {"email"=>"FILTERED", "password"=>"FILTERED"}

6. lograge利用時のログマスキング

6. lograge利用時のログマスキング
6. lograge利用時のログマスキング

logrageは、Railsのログを読みやすく整理する仕組みです。たくさんの文章を一行にまとめることで、後から検索しやすくなります。logrageを使っていても、filter_parametersの設定は有効です。つまり、通常のログと同じように個人情報は自動で隠されます。特別な操作をしなくても、安全性が保たれる点が大きなメリットです。


config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new

7. カスタムログを書くときの注意

7. カスタムログを書くときの注意
7. カスタムログを書くときの注意

自分でログを出力することもあります。その場合、うっかり個人情報を直接書かないよう注意が必要です。ログはメモのつもりでも、あとから多くの人が見る可能性があります。安全な書き方としては、IDだけを書く、もしくは処理が成功したかどうかだけを書く方法があります。これは「必要な情報だけ残す」という考え方です。


Rails.logger.info("ユーザー登録処理が完了しました")

8. 初心者がまず意識すべきポイント

8. 初心者がまず意識すべきポイント
8. 初心者がまず意識すべきポイント

最初から完璧を目指す必要はありませんが、ログに個人情報を書かない意識はとても重要です。filter_parametersを設定するだけでも、大きな一歩になります。Railsは安全に作るための道具をたくさん用意しています。それを正しく使うことで、初心者でも安心できるアプリを作れます。ログは便利な反面、扱い方を間違えると危険になることを覚えておきましょう。

まとめ

まとめ
まとめ

Railsログと個人情報保護の重要性を振り返る

Railsにおけるログは、アプリケーションの動作を理解し、問題が起きたときに原因を特定するための非常に重要な情報源です。 どの画面が呼ばれ、どの処理が実行され、どのようなパラメータが送られてきたのかが時系列で記録されるため、 開発中だけでなく運用フェーズでも欠かせない存在です。 一方で、ログは便利であるがゆえに注意点も多く、特に個人情報や機密情報の扱いを誤ると大きなリスクになります。 名前やメールアドレス、パスワードといった情報がそのままログに残ってしまうと、 ログを閲覧できる人すべてがそれらを見られる状態になってしまいます。 これはセキュリティ事故につながる可能性があり、初心者であっても必ず意識しておくべきポイントです。

filter_parametersで実現する安全なログ設計

Railsには、こうした問題を防ぐための仕組みとしてfilter_parametersが標準で用意されています。 filter_parametersを設定すると、指定したパラメータの値が自動的にマスキングされ、 ログには実際の値ではなく決められた文字列が表示されます。 これにより、ログの流れや処理内容は確認できる一方で、 個人情報の中身までは見えない安全な状態を保つことができます。 特別なライブラリを導入しなくても、設定ファイルに数行書くだけで利用できる点は、 Railsが初心者にも優しいフレームワークである理由の一つです。


# 個人情報をログから守る基本設定
Rails.application.config.filter_parameters += [:password, :email]

ログマスキングの挙動を正しく理解する

filter_parametersを設定すると、ログ上では該当する項目がFILTEREDと表示されます。 この表示は「情報が存在しない」のではなく、「意図的に隠している」ことを示しています。 そのため、処理が正しく動いているかどうかの確認には十分な情報が残ります。 ログに何も出ない状態よりも、マスキングされた形で残る方が、 後からトラブルシューティングを行う際にも役立ちます。 ログはすべてを残すのではなく、必要な情報だけを安全に残すという考え方が重要です。

lograge利用時でも意識すべきポイント

logrageを使うことで、Railsのログは一行に整理され、検索や分析がしやすくなります。 しかし、ログ形式が変わっても個人情報保護の考え方は変わりません。 filter_parametersの設定はlograge利用時でも有効であり、 通常のログと同じようにマスキングが行われます。 つまり、ログを見やすくする工夫と、ログを安全にする工夫は両立できるということです。 読みやすさと安全性の両方を意識したログ設計を心がけることが、 実務でRailsを使う上で大切になります。


config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new

カスタムログを書くときの心構え

Railsでは自分でログを出力する場面も多くあります。 その際に重要なのは、ログに何を書くかを意識的に選ぶことです。 処理が成功したかどうか、どの機能が呼ばれたかといった情報だけでも、 多くの場合は十分な手がかりになります。 個人情報を直接文字列として書かないようにすることで、 filter_parametersに頼らなくても安全なログを残せます。 ログは開発者のためのものですが、同時に守るべき情報を含む可能性があることを忘れてはいけません。


Rails.logger.info("ログイン処理が正常に完了しました")

初心者が身につけたいログとセキュリティの意識

初心者のうちは、アプリが動くことに意識が向きがちですが、 ログやセキュリティも同じくらい重要な要素です。 filter_parametersを設定するという小さな一歩が、 安全なアプリケーションを作る大きな土台になります。 Railsが用意してくれている仕組みを理解し、 正しく使うことで、個人情報を守りながら安心して開発を進めることができます。 ログは便利な道具であると同時に、責任を持って扱うべき情報であることを、 ぜひこの機会に覚えておきましょう。

先生と生徒の振り返り会話

生徒

「ログってデバッグ用の記録くらいにしか思っていませんでしたが、 個人情報が入ると危険なんですね」

先生

「そうですね。便利だからこそ、何が書かれているかを意識することが大切です」

生徒

「filter_parametersを設定するだけで、 パスワードやメールアドレスを隠せるのは安心しました」

先生

「Railsは安全に作るための仕組みが最初からそろっています。 あとはそれを知って使うだけです」

生徒

「これからはログを書くときも、 本当に必要な情報だけを書くように気をつけます」

先生

「その意識がとても大切です。 ログとセキュリティを意識できれば、一歩成長したRails開発者ですね」

カテゴリの一覧へ
新着記事
New1
Rails
Railsのアクセシビリティ基本を完全ガイド!初心者でもわかるARIA属性・ラベル・コントラストのベストプラクティス
New2
Ruby
Ruby配列の連結と分割を完全ガイド!+・concat・|・&・partition・each_sliceを初心者向けに解説
New3
Rails
Railsログの個人情報を守る!filter_parametersとログマスキング完全入門
New4
Rails
Railsの設定ファイルを読み解こう!application.rb・environments・initializersの読み順を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyの真偽値とnilを徹底解説!初心者が知っておくべき判定ルールと安全な書き方
No.2
Java&Spring記事人気No2
Rails
RailsでXSSを防ぐ完全ガイド|ERB自動エスケープ・sanitize・Content Security Policy設定
No.3
Java&Spring記事人気No3
データベース
SQLのWHERE句とは?初心者でもわかる条件指定の基本を徹底解説
No.4
Java&Spring記事人気No4
Rails
Railsコレクションキャッシュ完全入門|render collectionとcacheで一覧表示を高速化する方法
No.5
Java&Spring記事人気No5
Ruby
Rubyのwhile文とuntil文を徹底解説!繰り返し処理の基本から可読性を高めるコツまで
No.6
Java&Spring記事人気No6
データベース
SQLのJOIN(結合)を完全攻略!INNER JOINとLEFT JOINの違いを初心者向けに徹底解説
No.7
Java&Spring記事人気No7
データベース
データベース設計の要「主キー(プライマリキー)」とは?役割と正しい設計方法を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsのCSRF対策を完全解説!authenticity_token・SameSite・APIモードまで初心者向けに理解