【问题标题】:Azure Blob Storage SAS Expires EarlyAzure Blob 存储 SAS 提前到期
【发布时间】:2018-07-24 10:00:04
【问题描述】:

我们有一个 ASP.NET Core v1.1 Web 应用程序,它显示存储在 Azure Blob 存储服务中的受保护图像。我们通过使用在未来 36 小时到期的共享访问签名 (SAS) 来实现这一点。

我们将此 SAS 存储在内存中长达 18 小时(滑动到期 6 小时,绝对到期 18 小时),以避免重复调用 blob 服务。自 10 月以来一直在生产,没有问题,但最近在过去一周中,我们遇到了客户报告损坏图像的问题。清除缓存可以解决问题。

我们的短期解决方法是将缓存缩短到最多 5 分钟,但我不确定如果 SAS 有效期为 36 小时,我们为什么需要这样做?

所以,我的问题是:

  • SAS 是否有可能比预期的更早到期?
  • 像我描述的那样缓存 SAS 是否安全,或者我应该为每个请求请求一个新签名?

【问题讨论】:

    标签: azure-blob-storage


    【解决方案1】:

    当您在应用程序中使用共享访问签名时,您需要注意两个潜在风险:

    • 如果 SAS 泄露,任何获得它的人都可以使用它,这可能会危及您的存储帐户。
    • 如果提供给客户端应用程序的 SAS 过期并且应用程序无法从您的服务中检索新的 SAS,则应用程序的功能可能会受到阻碍。

    这描述了使用 SAS 令牌的最佳实践 - Best practices when using SAS

    如在临时 SAS 上使用近期到期时间并让客户端在必要时自动续订 SAS 中所述。关键的考虑因素是平衡 SAS 的短期需求与确保客户尽早请求续订的需求。

    【讨论】:

    • 感谢您的回复;但是,这些风险是可以理解的,在这种情况下,它们不是问题。我的问题更多地是针对是否保证 SAS 签名在请求的持续时间内有效?我不确定 SAS 存储在服务端的耐用性如何,以及我是否可以可靠地缓存这些签名,或者至少在它们计划到期之前依赖它们?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2020-10-05
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多