AWS 为 S3 预签名的 IAM 角色 URL

AWS Which IAM Role For S3 Presigned URL

我正在 ec2 实例中部署一个服务器程序,它需要能够为 s3 创建预签名的 url。到目前为止,我已经在用于测试的环境变量中获得了我的 AWS 凭证,但我现在想切换到 IAM 角色策略。但是,我不确定该角色也应该访问哪些策略。我最初的猜测是有 AmazonS3FullAccess,但描述说 "Provides full access to all buckets via the AWS Management Console" 但 ec2 实例将使用 c++ sdk,而不是管理控制台。或者政策不重要,只是它有一个政策,所以它以某种方式获得凭据?

您混淆了政策和角色。

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

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

完全访问权限的策略描述可能会提到管理控制台,但它授予对所有存储桶的完全访问权限,无论是通过控制台、api 还是 sdk,它们都是一回事在幕后。

您不应该使用完全访问策略。您可以将其用作构建真实策略的基础,但 IAM 应始终使用最低权限主体,您只授予绝对需要的权限,在这种情况下,角色只需要读取并可能列出特定存储桶的权限如果生成用于阅读的 url,或者如果允许上传则设置权限。