Amazon web services 是否可以创建仅允许创建有限IAM权限的IAM策略?
作为新客户入职流程的一部分,我需要创建一个S3 bucket,创建一个新用户,并授予该用户获取、列出和放入该bucket的权限。我想自动化这个过程,这意味着我需要创建一个“资源调配”策略,只授予服务执行这些操作所需的权限 在我的资源调配策略中,要求用户名和bucket以某个前缀开头似乎非常简单。然而,这似乎只是把一个文本块作为它的论据。我希望将我的资源调配策略限制为只能创建授予此处所需特定权限的策略;理想情况下,只能授予名称与模式匹配的用户获取、列出和放入名称与模式匹配的bucket的能力。(如果这个策略被劫持了,我宁愿限制他们创建用户的能力并授予所有特权。)Amazon web services 是否可以创建仅允许创建有限IAM权限的IAM策略?,amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,作为新客户入职流程的一部分,我需要创建一个S3 bucket,创建一个新用户,并授予该用户获取、列出和放入该bucket的权限。我想自动化这个过程,这意味着我需要创建一个“资源调配”策略,只授予服务执行这些操作所需的权限 在我的资源调配策略中,要求用户名和bucket以某个前缀开头似乎非常简单。然而,这似乎只是把一个文本块作为它的论据。我希望将我的资源调配策略限制为只能创建授予此处所需特定权限的策略;理想情况下,只能授予名称与模式匹配的用户获取、列出和放入名称与模式匹配的bucket的能力。(如
有没有办法获得这种级别的细粒度控制?没有。IAM没有详细介绍。您不能说“仅允许用户使用这些权限创建策略” 您需要以这样一种方式设计您的系统,即此策略不会被劫持。创建一个模板策略,确保新用户不能向输入中注入任何内容
另外,另一方面,使用一个bucket并在该bucket中为每个用户提供一个文件夹会被认为是更好的做法。您仍然可以控制对bucket中密钥的权限。有关这方面的详细信息,请参阅。否。IAM没有详细介绍。您不能说“仅允许用户使用这些权限创建策略” 您需要以这样一种方式设计您的系统,即此策略不会被劫持。创建一个模板策略,确保新用户不能向输入中注入任何内容
另外,另一方面,使用一个bucket并在该bucket中为每个用户提供一个文件夹会被认为是更好的做法。您仍然可以控制对bucket中密钥的权限。有关这方面的更多信息,请参阅。我同意桶的观点;但是,我还需要为每个用户创建一个SQS队列,然后将用户凭据交给它进行写入,因此我无法完全避免创建一个用户。“模板策略”是什么意思?这是AWS内部的一件官方事情,还是你只是指通过编程创建模板?我从来没有提到过避免创建用户,也许你误解了我?我的意思是以编程方式创建模板。我说错了,我的意思是“避免授予用户权限”。我同意以这种方式从模板创建策略是最安全的;我只是对扮演一个“授予任何许可”的角色感到紧张。如果运行此服务器的服务器受到某种程度的破坏(可能性很低),则攻击者可能会迅速控制我的AWS帐户(风险很高)。正如我在回答中所说,这是不可能的。您可以让策略的创建仅仅是一项管理工作,也可以创建一些API或接口来防止“任何东西”被添加到策略中。您可以让一个单独的用户连接这个API/接口,它将拥有创建策略的权限。但是您客户的用户没有此权限。他们可以访问API/接口-如果安全地构建,将解决您的问题。我不认为有任何其他选择。我同意水桶;但是,我还需要为每个用户创建一个SQS队列,然后将用户凭据交给它进行写入,因此我无法完全避免创建一个用户。“模板策略”是什么意思?这是AWS内部的一件官方事情,还是你只是指通过编程创建模板?我从来没有提到过避免创建用户,也许你误解了我?我的意思是以编程方式创建模板。我说错了,我的意思是“避免授予用户权限”。我同意以这种方式从模板创建策略是最安全的;我只是对扮演一个“授予任何许可”的角色感到紧张。如果运行此服务器的服务器受到某种程度的破坏(可能性很低),则攻击者可能会迅速控制我的AWS帐户(风险很高)。正如我在回答中所说,这是不可能的。您可以让策略的创建仅仅是一项管理工作,也可以创建一些API或接口来防止“任何东西”被添加到策略中。您可以让一个单独的用户连接这个API/接口,它将拥有创建策略的权限。但是您客户的用户没有此权限。他们可以访问API/接口-如果安全地构建,将解决您的问题。我认为没有其他选择。