AWS re:Invent 2022が始まり、アップデートが増えてきました。
Amazon CloudWatch Logsで機密データを保護できるようになったようなので、検証してみました。
アップデート概要
Amazon CloudWatch LogsはAWSが提供しているログ監視サービスです。
システムやアプリケーション、 AWSサービスからのログを一元化して監視することができ、検索や検知に活用できます。
今回はそのCloudWatch Logsに対して、データ保護ポリシーを適用することで、ログ中の機密データを検知して自動的にマスクできるようになりました。
HIPPA、GDPR、PCI-DSSといった規制にも役立つ機能です。
以下がユーザガイドになります。
保護できるデータの種類は以下にまとまっており、本記事の執筆時点では日本語対応はしていないようです。
検証
機密データを検知させてみる
ロググループを作成します。
「アクション」から「Create data protection policy」を押下します。
プルダウンで保護対象を選択します。 「EmailAddress」と「Name」を選択してみました。
適当なログストリームを作成して、サンプルのメールアドレスを流してみます。
アスタリスクでマスクされていることを確認できました。
次に氏名を流してみましたが、日本語氏名はマスクされないようです。
※アンマスクしたもの(アンマスク方法は後述)
機密データとして検知すると、警告表示が出ます。
「Data protection」というタブが追加されており、検知数を確認できます。
アンマスクしてみる
「Display」から「Temporarily unmask protection data」を押下するとアンマスクできます。
ただし「logs:Unmask」権限が必要なので、権限が無いと以下のようにエラーになります。
「ReadOnlyAccess」でもアンマスクはできませんでした。
IAMユーザに以下「logs:Unmask」権限を付与しましょう。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:Unmask", "Resource": "*" } ] }
「logs:Unmask」権限を付与したIAMユーザで「Temporarily unmask protection data」を押下すると、以下のようにアンマスクされたログが確認できます。
検知ログの転送
検知ログはCloudWatch Logs、Kinesis Data Firehose、S3に送信することができます。
今回は、新たに作成したCloudWatch Logsのロググループに転送設定をしてみました。
以下のように新たにログを生成します。
検知は2件です。
※アンマスクしたものが以下です。
カウントが2件増え、合計4件になりました。
転送先のロググループのログストリームを確認してみると、検知した2件がどのカテゴリで検知したかを確認できます。
※黒塗りはAWSアカウントIDです。
機密データが紛れ込んだときに、気付けるようなアラートの実装も簡単にできそうです。
まとめ
セキュリティ監視の現場では、機密データはマスクして欲しいという要望は多いので、非常に良い機能だと思います。
日本語が未対応のため、今後のアップデートでさらに使いやすくなるのではないかと思います。