AWS为S3预先签名的URL的哪个IAM角色

时间:2017-11-07 15:48:22

标签: amazon-web-services amazon-s3 credentials

我在ec2实例中部署服务器程序,该实例需要能够为s3创建预先签名的URL。到目前为止,我已将环境变量中的AWS凭据用于测试,但我现在想切换到IAM角色策略。但是,我不确定角色应该访问哪些策略。我最初的猜测是拥有AmazonS3FullAccess,但描述说"通过AWS管理控制台提供对所有存储桶的完全访问权限#34;但ec2实例将使用c ++ sdk,而不是管理控制台。或者政策不重要,只是它有一个政策,所以它以某种方式得到凭证?

2 个答案:

答案 0 :(得分:3)

您的政策和角色令人困惑。

策略向用户或角色或组授予权限。

用户和角色之间的区别很微妙,但基本上角色是AWS中其他服务所承担的角色,如EC2实例,而用户通常只是您的身份。创建用于AWS。

完全访问的策略描述可能会提到管理控制台,但它通过控制台,api或sdk授予对所有存储桶的完全访问权限,它们完全相同。

您不应使用fullaccess政策。您可以使用它作为构建真实策略的基础,但IAM应始终使用最小权限主体,您只需提供绝对必需的权限,在这种情况下,角色只需要读取,并且可能需要特定存储桶的列表权限如果生成用于阅读的网址,或者如果允许上传则放置权限。

答案 1 :(得分:1)

出于开发目的,您可以将AmazonS3FullAccess策略附加到您创建的角色。将IAM角色附加到EC2实例后,您就不需要导出凭据。

但是,一旦您的开发工作完成,请重新审视该策略以使其更具限制性。您可以创建新的托管策略(AmazonS3FullAccess由AWS管理,您无法更新其中的权限),也可以创建具有应用程序所需特定权限的新内联策略。