S3 バケットに何が、誰が、どこにアクセスできるかをログに記録するにはどうすればよいですか?

S3 バケットに何が、誰が、どこにアクセスできるかをログに記録するにはどうすればよいですか?

最近、いくつかの IE 接続が私のバケットにアクセスしていることを知らせるメールを受け取りました。

eu-central-1|media.myapp | REST.GET.OBJECT|TLSv1|9|[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NE
eu-central-1|media.myapp | REST.GET.OBJECT|TLSv1|54|[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C;

しかし、問題の原因を診断するために、これらのデバイスと IP が何を使用しているかを知りたいです (レガシー インフラストラクチャにはドキュメントがありません)。どの IP と MAC でどの IAM アカウントとデバイスがバケットからアイテムを受信したかのアクセス ログを保持する方法はありますか?

答え1

質問を正しく理解しているかどうかわかりませんが、特定のユーザーまたは IP だけに S3 バケットへのアクセスを許可する方法を尋ねている場合 (パブリック インターネットからのアクセスについて話しているものと想定しています)、たとえば、バケットにアクセスしたいパブリック IP アドレスだけを許可するために使用したバケット ポリシーのブロックを以下に示します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<bucket name>/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "<first IP/32",
                        "<second IP>/32",
                        "<third IP>/32",
                        "<fourth IP>/32"
                    ]
                }
            }
        }
    ]
}

少なくとも、それがあなたを正しい方向に導くことができれば幸いです。

答え2

Amazon S3 ユーザーガイドでは、リクエストのログ記録について説明しています。

サーバー アクセス ログは、バケットに対して行われたリクエストの詳細な記録を提供します。サーバー アクセス ログは、多くのアプリケーションに役立ちます。たとえば、アクセス ログ情報は、セキュリティやアクセス監査に役立ちます。

詳しくは、AmazonS3 のユーザーガイドを参照してください。

MAC アドレスはインターネット経由で送信されることはないため、MAC アドレスを知ることはできませんが、デバイスの IP アドレス (デバイスが NAT ルーターの背後にある場合はパブリック NAT アドレス) は取得されます。NAT ルーターの背後にある LAN 上の特定のデバイスを識別するには、デバイスやルーターにアクセスする必要があります。

ログには、オブジェクトにアクセスするために使用された IAM 認証情報(存在する場合)も記録されます。

これらのログに記載されている情報以外に、AWS 側からデバイスについてさらに知ることができる情報はありません。

おそらく、あなたが言及している電子メールは、これらのデバイスが TLSv1 を使用しており、AWS がまもなくサポートを中止するという事実に関連していると思われます。

進化するトランスポート層セキュリティ (TLS) のテクノロジーと規制基準に対応するため、すべての AWS サービス API エンドポイントの TLS 設定を TLS 1.2 以上に更新します。この更新により、2023 年 6 月 28 日までに、すべての AWS リージョンのすべての AWS API で TLS バージョン 1.0 および 1.1 を使用できなくなります。

https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/

APIの変更が有効になる前に、適切な方法で古いバージョンのTLSをブロックすることができます。拒否ポリシー。これは、トラブル レポートからデバイスを識別するのに役立つ可能性があります。今のところ、ポリシーを定期的に追加および削除することで、API の変更が AWS によってプッシュされたときに発生するような永続的な停止を引き起こすことなく、デバイスを識別できる可能性があります。拒否されたリクエストは S3 によって引き続きログに記録されますが、HTTP 403 応答と のエラーが発生しますAccessDenied

関連情報