Amazon CloudWatch Logs内の機密データをマスキングする方法 (CloudWatch Logs の機密データ保護機能)

記事タイトルとURLをコピーする

こんにちは!イーゴリです。

環境によってAmazon CloudWatchLogs内に機密データが表示されることがありますので、Amazon CloudWatchLogs内で機密データをマスキングする機能を紹介します。

今回は、[ssm-user]というユーザーの「hello-数字/文字」のメッセージが表示される場合、その情報をAmazon CloudWatchLogs内でマスキングします。

データ保護機能の設定前の動作確認

SSM経由でEC2にログインします。

まずは対象のEC2で「logger "hello"」というコマンドをAmazon CloudWatch Logs の機密データ保護設定なしで実行します。

sh-4.2$ logger "hello"

その後、「XXX/var/log/messages」というロググループを確認します。Amazon CloudWatch Logsの「XXX/var/log/messages」に「hello」が表示されています。

機密データ保護設定なしの動作を確認できましたので、Amazon CloudWatch Logs 機密データ保護機能を設定します。

CloudWatch Logs の機密データ保護機能の設定

[CloudWatch] > 対象ロググループを選択 (今回はXXX/var/log/messages」) > [アクション] > [データ保護ロググループポリシーを作成] をクリックします。

[ロググループポリシー]の画面で、2つの設定方法があります。「Auditing and masking configuration」と「Custom Data Identifier configuration」があります。

  • ①「Auditing and masking configuration」とは、AWSが提供している機密データタイプ(マネージドデータ識別子)をマスキングする方法です(例:IP Address, PassportNumber, BankAccountNumberなど)。

保護が可能なデータタイプは下記の記事にありますので、ご参考ください。

docs.aws.amazon.com

  • ②「Custom Data Identifier configuration」とは、自分のカスタムデータを入力し、そのデータをマスキングする方法です。

今回の記事では、カスタムデータを入力したいと思いますので、[Add custom data identifier]をクリックします。

[データ保護ロググループポリシー]でNameとRegexを入力し、[変更の保存]をクリックします。

今回は、下記の情報を入力します。

  • Name:ssm-user
  • Regex:hello-\w+(例:hello-123, hello-abc, hello-123abcなどの"hello-数字/文字"のパターンに当てはまる)

※カスタムデータに制約があるので、利用するときに下記の記事をご参照ください。

docs.aws.amazon.com

なお、必要に応じて、監査の検出結果を送信する AWS のサービス(Amazon CloudWatch Logs / Kinesis Data Firehose / S3)を選択することができますが、今回はこのステップをスキップします。

SSM経由でEC2にログインし、下記のコマンドを実行します。

sh-4.2$ logger "hello"
sh-4.2$ logger "hello-123"
sh-4.2$ logger "hello-abc"
sh-4.2$ logger "hello-123abc"

もう一回「XXX/var/log/messages」というロググループを確認します。Amazon CloudWatch Logsの「XXX/var/log/messages」で「hello」や「hello-hello-数字/文字」がマスキングされるようになりました!

上記の設定は下記のタブからもポリシーを修正/作成/削除することができます。

[対象ロググループ] > [データ保護] > [アクション]をクリックします。

一時的にマスキングを解除する方法

データがマスキングされても、データが消えるわけではないので、必要な権限(IAMポリシー:logs:Unmask)があれば、マスキングされたデータを見られますので、その方法を紹介します。

対象のログイベントを表示します。

[表示]ボタンをクリックし、[保護されたデータのマスキングを一時的に解除]をクリックすると、マスキングされたデータが表示されます。

再びマスキングさせるには上記と同じ手順を行いますが、[保護されたデータのマスキングを一時的に解除]のかわりに[保護されたデータをマスキング]ボタンになりますので、そのボタンをクリックします。

Amazon CloudWatch Logs内の機密データの検知方法

上記の設定後、[CloudWatch]の[ロググループ]の画面で、データ保護の機能の隣にある[機密データの数]の欄に今までマスキングされたデータ数が表示されます。

機密データの数をリセットしたい場合、「Reset Alert」をクリックし、[確認]をクリックします。

[機密データの数]が0になりました。

料金

データ保護機能を使いますと、追加料金がかかるので、ご注意ください。 東京リージョンの場合、$0.12 / スキャンされたデータ (GB) となっています。

引用:

検出およびマスク (データ保護)
スキャンされたデータ 1 GB あたり 0.12USD

詳しくは下記のページをご参考ください。

aws.amazon.com

以上、御一読ありがとうございました。

本田 イーゴリ (記事一覧)

クロスインダストリー第2本部 インフラ技術課

・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, COA, CLF, ANS, AIF, MLS, MLA, DEA
・Azure AZ-900
・EC-Council CCSE

趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽