我可以自动为新存储桶生成AWS S3策略字符串吗?

时间:2012-10-25 05:17:06

标签: amazon-s3

我想在测试中创建一个S3存储桶,使其成为一个网站,并使其中的所有对象可见。 AWS Policy Generator将获取存储桶名称,并且需要对象名称。我可以将其全球化为bucket/*吗?此外,生成的策略JSON包含ID。由于我可能不知道存储桶名称,这是否意味着我必须为所有可能的存储桶预生成策略?或者这个ID只是一个唯一的引用,也可以与JSON一起生成?

1 个答案:

答案 0 :(得分:0)

Objec名称通配符

  

我可以将它作为桶/ *吗?

是的 - 虽然Specifying Amazon S3 Resources in Bucket Policies中的相关文档仅指出资源名称的格式为bucketname / keyname,其中bucketname是存储桶的名称,keyname是对象的全名< / em>并且未提及通配符(*)选项,Example Cases for Amazon S3 Bucket Policies中使用了通配符,并在Special Information for Amazon S3 Policies中确认了通配符:

  

Resource的值必须以存储桶名称或者前缀为前缀   存储桶名称及其下的路径(存储桶/ )。如果只有桶名称   指定的,没有尾随/ ,策略适用于存储桶。

政策ID

  
      
  • 由于我可能不知道水桶名称,这是否意味着我必须这样做   所有可能的桶的预生成策略?或者这个ID只是一个   唯一引用,也可以与JSON一起生成?
  •   

虽然 Id Sid 都是<{3}}中的可选标识符,但您确实需要指定唯一ID特别是在Amazon S3策略中,请再次参阅Access Policy Language

  
      
  • 每个政策必须具有唯一的政策ID(Id)
  •   
  • 策略中的每个语句都必须具有唯一的语句ID(sid)
  •   

但是,您可以自己生成该唯一ID以及JSON - 通常建议使用UUID作为值,或者将UUID作为ID的一部分合并以确保唯一性