S3 バケットに対するリクエストのうち HTTP リクエストについて調査する方法を教えてください

2023.02.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていること

下記の通信経路において、S3 バケットに対するリクエストのうち HTTP リクエストについて調査する方法を教えてください。

  • 自前 PC から S3 へ通信
  • EC2 から S3 へ通信

どう対応すればいいの?

S3 へのアクセスについて分析されたい場合、サーバーアクセスログを Amazon Athena により分析いただくことで該当内容の抽出は可能です。 バケットに対するリクエストを確認するためには、サーバーアクセスログを使用することが考えられます。
なお、サーバーアクセスログが有効化されていない場合 は有効化してください。

HTTP リクエストについて

サーバーアクセスログは ドキュメント 記載の通り、HTTPリクエスト時に"Cipher Suite"の項目が"-"と記録されます。

Cipher Suite
The Secure Sockets Layer (SSL) cipher that was negotiated for HTTPS request or a - for HTTP.

上記より HTTP リクエストが実行されていたかをご判断ください。

通信経路について

前提条件として中間プロキシなどがなければ、自分の PC からのアクセスであるか、EC2 インスタンスからのアクセスであるかの確認方法として、前途で紹介したドキュメント のサーバーアクセスログ"Remote IP"より EC2 インスタンス又は自分の PC の IP アドレスのどちらが記録されているかで判別可能です。

Remote IP
The apparent internet address of the requester. Intermediate proxies and firewalls might obscure the actual address of the machine making the request.

上記より、"Remote IP"をご確認いただき、判別可能であるかお調べください。

まとめ

以上をふまえ、"Remote IP"での判別が可能である場合、Athena のクエリ条件を"Cipher Suite"の項目が"-"かつ想定の"Remote IP"として設定いただき、 該当内容の抽出をしてください。

参考資料