こんにちは!イーゴリです。
環境によってAmazon CloudWatchLogs内に機密データが表示されることがありますので、Amazon CloudWatchLogs内で機密データをマスキングする機能を紹介します。
- データ保護機能の設定前の動作確認
- CloudWatch Logs の機密データ保護機能の設定
- 一時的にマスキングを解除する方法
- Amazon CloudWatch Logs内の機密データの検知方法
- 料金
今回は、[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など)。
保護が可能なデータタイプは下記の記事にありますので、ご参考ください。
- ②「Custom Data Identifier configuration」とは、自分のカスタムデータを入力し、そのデータをマスキングする方法です。
今回の記事では、カスタムデータを入力したいと思いますので、[Add custom data identifier]をクリックします。
[データ保護ロググループポリシー]でNameとRegexを入力し、[変更の保存]をクリックします。
今回は、下記の情報を入力します。
- Name:ssm-user
- Regex:hello-\w+(例:hello-123, hello-abc, hello-123abcなどの"hello-数字/文字"のパターンに当てはまる)
※カスタムデータに制約があるので、利用するときに下記の記事をご参照ください。
なお、必要に応じて、監査の検出結果を送信する 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 |
詳しくは下記のページをご参考ください。
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽