AWSのITコストを削減 Simpline

選ばれ続けること

 

エンジニアブログ

ホーム - エンジニアブログ - [AWS]S3オブジェクト変更履歴通知を目指してみる その1

[AWS]S3オブジェクト変更履歴通知を目指してみる その1

2019.02.12

こんにちは。middleです。


とてもネタに困ったので、今回は"考え方"のお話を書きたいと思います。

壁には毎日激突しているのに、何故ネタ切れになるのでしょうか……。


 


★今回のお題


特定のS3バケットのオブジェクトに、変更操作(上書き)が行われた場合、検知したい


※新しいオブジェクトが置かれた時は、別に検知しなくてよし

↑ポイント


 


 


★背景


お客様のセキュリティーポリシーで、「監査用に保管しているデータに変更操作があった場合、検知したい」というものがあったので、その実現をしたいというところです。


※監査用データが新たに増えた場合は、検知不要

↑しつこいですが今回のポイント




ということで実現方法を考えてみました。

↓↓↓


 


★案その1


S3イベント通知を使う


バケット内で特定のイベントが発生した時に、S3からSNSトピックにイベントを発行して通知を受けることができる、というものです。

ちなみにSNSトピックのほかに、SQSキュー、Lambdaにもイベント発行可能です。


■参考:

Amazon S3 イベント通知の設定 - Amazon Simple Storage Service




 


★案その2


CloudTrailを使う


CloudTrailの証跡を

CloudWatchLogsに出力して→

CloudWatchLogsメトリクスフィルタでフィルタリングして→

CloudWatchアラームを作成する

というよくあるあれですね。


■参考:

Amazon CloudWatch Logs を使用して CloudTrail のログファイルをモニタリングする - AWS CloudTrail


 


 


★懸念点


新規オブジェクトが追加された時と、既存オブジェクトが変更された時とで、区別できるのか? というところが気になりました。

というのも案その1の「S3イベント通知」がサポートしているイベント一覧(↓)を見ていて、「どれが既存オブジェクトの変更なのだろう?」と不思議になったからです。


 



s3:ObjectCreated:*


s3:ObjectCreated:Put


s3:ObjectCreated:Post


s3:ObjectCreated:Copy


s3:ObjectCreated:CompleteMultipartUpload


s3:ObjectRemoved:*


s3:ObjectRemoved:Delete


s3:ObjectRemoved:DeleteMarkerCreated


s3:ObjectRestore:Post


s3:ObjectRestore:Completed


s3:ReducedRedundancyLostObject



公式サイトより引用)


 


新規オブジェクト追加は「s3:ObjectCreated」あたりだとして、既存オブジェクト変更はどれでしょうか?


来週に続く!


 

1 Star 0 いいねしてね!
Loading...