【问题标题】:GetPreSignedUrl and Elastic BeanstalkGetPreSignedUrl 和 Elastic Beanstalk
【发布时间】:2015-12-04 20:18:42
【问题描述】:

我们生成的 S3 文件的预签名 url 可以正常工作一段时间,然后我们收到一条错误消息:

<Error>
<Code>ExpiredToken</Code>
<Message>The provided token has expired.</Message>
...
</Error>

我们有一个在 IAM 角色下在弹性 beanstalk 上运行的 ASP.NET MVC Web 应用程序,并且正在使用 GetPresignedUrl() api 调用创建链接。到期日期还有 2 年,所以我认为链接到期的原因是 "any URLs using IAM role keys will expire when that role key expires"

从弹性 beanstalk Web 应用程序创建预签名 url 的最佳方法是什么,这些 URL 在部署新版本的应用程序时不会过期?

【问题讨论】:

    标签: asp.net-mvc amazon-web-services amazon-s3 amazon-elastic-beanstalk


    【解决方案1】:

    我想出的最佳解决方案是创建一个对我想要提供签名链接的 S3 对象具有只读访问权限的用户。创建签名链接时,我使用新用户创建客户端以进行 GetPresignedUrl() 调用。

    AWSClientFactory.CreateAmazonS3Client(AwsAccessKeyForPresignedUrls,
                    AwsSecretAccessKeyForPreSignedUrls, region);
    

    不是很漂亮,因为我现在可以访问网络应用程序的密钥,如果密钥被泄露并且我必须撤销它们,所有旧的预签名 URL 都将停止工作。我愿意接受其他解决方案。

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 2015-04-17
      • 2015-10-29
      • 2013-07-05
      • 2017-11-08
      • 2017-10-01
      • 2013-05-29
      • 2017-01-17
      • 1970-01-01
      相关资源
      最近更新 更多