了解存储帐户密钥
自定义应用程序生成或使用 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 门户中刷新主要密钥。 这将是新的辅助密钥值。
重要
刷新密钥后,系统将拒绝所有尝试使用旧密钥值的客户端。 请确保标识所有使用共享密钥的客户端,并更新它们以使其保持正常运行。