AWSのITコストを削減 Simpline

選ばれ続けること

 

エンジニアブログ

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

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

2019.02.19

こんにちは。middleです。


前回の続きです!


 


★今回のお題


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


※ポイント

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


 


★懸念点&解決方法


新規オブジェクトが追加された時と、既存オブジェクトが変更された時とで、区別できるのでしょうか??


秘技サポート問い合わせをしたところ、答えはNOでした。


 



S3のイベント通知および、CloudTrailのデータイベントでは、追加および変更を区別することができません。



※一部抜粋&改変してます。


 


要するに新規オブジェクトが追加された時と、既存オブジェクトが変更された時と、双方同一イベントということでございますね……。


じゃあ今回のやりたいことは不可能かというとそうではなく、以下をご提案をしていただきました!!


 



S3のイベントメッセージには「e Tag」および「sequencer」が含まれています。

この値を比較することで、追加および変更を区別できるかと思います。



※一部抜粋&改変してます。




■参考:

イベントメッセージの構造 - Amazon Simple Storage Service


 


 


★で、結局どうしたか


監査ログをS3バケットへ保存するサービス(※)以外、S3バケットへの書き込みを禁止しているので、検知の機能は実装しない」ことにしました。

※今回はCloudTrail、CloudWatchLogs、Config、ELBでした


つまり何が言いたいかと言いますと


人が意図的にオブジェクトを操作することはできない


イコール


オブジェクトの変更操作はそもそもできないので、検知する機能の実装は不要


ということでございます。


 


バケットポリシーやIAMポリシー等々でS3オブジェクトへの書き込みは禁止してるので、「気にしなくていいじゃん」とのご意見をいただき、このような結論となりました。


 


 


※ここから余談

前回の冒頭の"考え方"についてなのですが


私はちょっと面倒だなあ〜と思いつつ「e Tag」および「sequencer」の値を比較して通知する仕組みを実装しようと思っていたので、このご意見を聞いて「なるほどな〜」と思いました。

もちろん仕組み実装が不可欠なケースもあるかと存じますが、なくても構わない時に実装するのはある意味自己満足(?)なのかなと……。

自己満足は言い方が悪い気がしますが……。


取捨選択とか優先度だとか、いろいろ改めて考えるきっかけとなりました。


実はこの件があったのは昨年の6月なのですが、それからを振り返ってみて、仕事で"妥協"ができるようになったかな、と思いました。


 


ということで以上です。

お疲れ様でした :)

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