CloudWatchLogsのサブスクリプションフィルターでkinesis firehoseへ流すとjsonのダブルクオートがバックスラッシュでエスケープされる
CloudWatch Logs サブスクリプションフィルタの使用 - Amazon CloudWatch Logs
仕様らしい。
cw-logs自体がjson invalidで出力したいから、 messagesという中に含まれるユーザー側が出力する値はstringとして扱うためにダブルクォーテーションをエスケープされてしまう。
firehoseのlambda変換スクリプト内部でどうにかするしかなさそうである。
不便だなー。