了解存储帐户密钥

已完成

自定义应用程序生成或使用 Contoso 的大部分数据。 应用程序以各种语言编写。

Azure 存储帐户可以在 Active Directory 中创建授权应用,以控制对 blob 和队列中的数据的访问。 对于使用 Blob 或队列存储的应用,此身份验证方法是最佳解决方案。

对于其他存储模型,客户端可以使用共享密钥或共享机密。 此身份验证选项是最容易使用的某项选项,它支持 blob、文件、队列和表。 客户端在每个请求的 HTTP Authorization 标头中嵌入共享密钥,而存储帐户会验证该密钥。

例如,应用程序可以对 blob 资源发出 GET 请求:

GET http://myaccount.blob.core.windows.net/?restype=service&comp=stats

HTTP 标头控制 REST API 的版本、日期和编码的共享密钥:

x-ms-version: 2018-03-28  
Date: Wed, 23 Oct 2018 21:00:44 GMT  
Authorization: SharedKey myaccount:CY1OP3O3jGFpYFbTCBimLn0Xov0vt0khH/E5Gy0fXvg=

存储帐户密钥

在 Azure 存储帐户中,共享密钥称为“存储帐户密钥”。 Azure 为创建的每个存储帐户创建两个这类密钥(主要或辅助)。 通过密钥可访问帐户中的所有内容。

可在存储帐户的 Azure 门户视图中找到存储帐户密钥。 在存储帐户的左侧菜单窗格中,选择“安全 + 网络”“访问密钥”。

显示 Azure 门户中访问密钥的屏幕截图。

保护共享密钥

存储帐户仅有两个密钥,并且这两个密钥都提供对帐户的完全访问权限。 由于这些密钥功能强大,因此只能将其与完全控制的可信内部应用程序一起使用。

如果密钥遭到泄露,请在 Azure 门户中更改密钥值。 以下是重新生成存储帐户密钥的几个原因:

  • 出于安全原因,可以定期重新生成密钥。
  • 如果有人侵入应用程序并获取硬编码或保存在配置文件中的密钥,请重新生成密钥。 已泄露的密钥可让黑客完全访问你的存储帐户。
  • 如果团队正在使用保留存储帐户密钥的存储资源管理器应用程序,并且其中一个团队成员离职,请重新生成密钥。 否则,应用程序仍将继续运行,这使前团队成员能够访问存储帐户。

刷新密钥:

  • 更改每个受信任应用以使用辅助密钥。
  • 在 Azure 门户中刷新主要密钥。 这将是新的辅助密钥值。

重要

刷新密钥后,系统将拒绝所有尝试使用旧密钥值的客户端。 请确保标识所有使用共享密钥的客户端,并更新它们以使其保持正常运行。