我正在尝试使用一个IAM用户来有条件地访问多个S3存储桶。条件应该类似于,对于getObject,我可以在请求中发送其他参数或令牌,以验证我对该存储桶的访问。
我尝试对带有条件的s3使用基于标签的授权
"Condition": {
"StringEquals": {
"aws:ExistingObjectTag/token": "value"
}
}
该值可以是动态的,以便我可以基于来自单个IAM用户的标签访问对象吗?
答案 0 :(得分:1)
您似乎希望能够向IAM用户授予对特定对象的访问权限。
您显示的方法(可能来自Object Tagging - Amazon Simple Storage Service)是一种授予对具有特定“标记键/值”组合的对象的访问的方法。因此,如果对象具有该标签,则他们可以访问它。
您提出的“提供令牌请求以验证我对该存储桶的访问权限”的建议对安全性不利,因为任何人只要知道令牌就可以访问它。有点像使用难以猜测的文件名,这不是一种很好的安全方式。
与您想要的内容最接近的是一个预签名URL ,这是一个有时间限制的URL,可以临时访问私有对象。通常,用户与应用程序交互。当用户请求访问对象时,应用程序可以生成预签名的URL。例如,您可能正在使用包含公共图片和私人图片的照片共享服务。如果您希望查看一张私人照片,则该应用程序可以生成一个URL,该URL在有限的时间(例如5分钟)内提供访问权限。过期后,链接将不再起作用。
请参阅:Share an Object with Others - Amazon Simple Storage Service