作为新客户入职流程的一部分,我需要创建一个S3存储桶,创建一个新用户,并授予该用户获取、列出和放入该存储桶的权限。我想自动化这个过程,这意味着我需要创建一个"资源调配"策略,只授予服务执行这些操作所需的权限。
在我的Provisioning Policy中使用String Conditions来要求Users和Buckets的名称以某个前缀开头似乎非常简单。然而,PutUserPolicy似乎只是将一个文本blob作为其参数。我更愿意将我的配置策略限制为只能创建授予我在此处需要的特定权限的策略;理想情况下,只能授予名称与模式匹配的用户获取、列出和放入名称与模式相匹配的存储桶的能力。(如果此策略以某种方式被劫持,我宁愿限制他们创建用户的能力,并授予其所有权限。)
有什么方法可以获得这种级别的细粒度控制吗?
否。IAM没有详细说明。不能说"只允许用户使用这些权限创建策略"。
您需要以这样一种方式设计您的系统,即该策略不会被劫持。创建一个模板策略,确保新用户不能向输入中注入任何内容。
此外,另一方面,使用一个bucket并在该bucket中为每个用户提供一个文件夹会被认为是更好的做法。您仍然可以控制存储桶中某个密钥的权限。查看博客了解更多信息。