查找谁上传了S3文件

时间:2015-04-13 04:16:55

标签: amazon-s3

快速一下 - 您如何识别哪个IAM用户将文件上传到S3存储桶?我可以看到像'last modified'这样的属性,但不能看到IAM用户。

对于我的用例,我无法添加随机元数据,因为该文件正由Cyber​​duck上传。

谢谢!

约翰

2 个答案:

答案 0 :(得分:0)

你看过S3服务器访问日志吗?我相信日志将包含上传者的规范用户ID,除非匿名。不太确定如何将其变成IAM访问密钥,但也许有办法。

或者您可以查看CloudTrail日志(假设您启用了CloudTrail)。他们应该向您显示用于执行上传的访问密钥。

或者我猜您可以设置不同的上传位置,每个授权的IAM用户一个,然后添加适当的策略,以便只有用户X可以上传到他的特定位置。

[已添加]您可能还需要指定一个存储桶策略,该策略要求上传者为存储桶拥有者提供对该对象的完全控制权。然后,您可以查询对象的ACL并确定所有者(将是原始上载者)。

答案 1 :(得分:0)

您可以尝试以编程方式或curl之类的方式点击Get Bucket REST APIContents > Owner > DisplayName密钥可能就是您要查找的内容。

示例回复:

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Name>bucket</Name>
    <Prefix/>
    <Marker/>
    <MaxKeys>1000</MaxKeys>
    <IsTruncated>false</IsTruncated>
    <Contents>
      <Key>my-image.jpg</Key>
      <LastModified>2009-10-12T17:50:30.000Z</LastModified>
      <ETag>&quot;fba9dede5f27731c9771645a39863328&quot;</ETag>
      <Size>434234</Size>
      <StorageClass>STANDARD</StorageClass>
      <Owner>                           
        <ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
        <DisplayName>mtd@amazon.com</DisplayName>
      </Owner>
    </Contents>
</ListBucketResult>