快速一下 - 您如何识别哪个IAM用户将文件上传到S3存储桶?我可以看到像'last modified'这样的属性,但不能看到IAM用户。
对于我的用例,我无法添加随机元数据,因为该文件正由Cyberduck上传。
谢谢!
约翰
答案 0 :(得分:0)
你看过S3服务器访问日志吗?我相信日志将包含上传者的规范用户ID,除非匿名。不太确定如何将其变成IAM访问密钥,但也许有办法。
或者您可以查看CloudTrail日志(假设您启用了CloudTrail)。他们应该向您显示用于执行上传的访问密钥。
或者我猜您可以设置不同的上传位置,每个授权的IAM用户一个,然后添加适当的策略,以便只有用户X可以上传到他的特定位置。
[已添加]您可能还需要指定一个存储桶策略,该策略要求上传者为存储桶拥有者提供对该对象的完全控制权。然后,您可以查询对象的ACL并确定所有者(将是原始上载者)。
答案 1 :(得分:0)
您可以尝试以编程方式或curl
之类的方式点击Get Bucket
REST API。 Contents > 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>"fba9dede5f27731c9771645a39863328"</ETag>
<Size>434234</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
<DisplayName>mtd@amazon.com</DisplayName>
</Owner>
</Contents>
</ListBucketResult>