连接到 Azure 存储帐户

已完成

你已向应用程序添加所需的客户端库,现在即可连接到 Azure 存储帐户。

若要处理存储帐户中的数据,应用需两项数据:

  • 访问密钥
  • REST API 终结点

安全访问密钥

每个存储帐户都有两个唯一的访问密钥,用于确保存储帐户的安全。 如果应用需要连接到多个存储帐户,该应用将需要每个存储帐户的访问密钥。

An illustration showing an application connected to two different storage accounts in the cloud. Each storage account is accessible with a unique key.

REST API 终结点

除了向存储帐户进行身份验证所需的访问密钥,应用还需要了解发出 REST 请求所需的存储服务终结点。

REST 终结点组合了存储帐户名称、数据类型和已知域。 例如:

数据类型 终结点示例
Blob https://[name].blob.core.windows.net/
队列 https://[name].queue.core.windows.net/
https://[name].table.core.windows.net/
文件 https://[name].file.core.windows.net/

如果有一个绑定到 Azure 的自定义域,则也可为终结点创建自定义域 URL。

连接字符串

处理应用程序中访问密钥和终结点 URL 的最简单方法是使用存储帐户连接字符串。 连接字符串以单个文本字符串的形式提供了所有所需的连接信息。

Azure 存储连接字符串类似于以下示例,但其具有特定存储帐户的访问密钥和帐户名称:

DefaultEndpointsProtocol=https;AccountName={your-storage};
   AccountKey={your-access-key};
   EndpointSuffix=core.windows.net

安全性

访问密钥对提供存储帐户的访问权限至关重要,因此,不应向你不希望其访问你的存储帐户的任何系统或个人提供它们。 访问密钥等同于访问计算机所需的用户名和密码。

通常情况下,存储帐户连接信息存储在环境变量、数据库或配置文件中。

重要

如果将配置文件包含在源代码管理中并将其存储在公共存储库中,则在该文件中存储此信息会很危险。 这是一个常见错误,意味着任何人都可以在公共存储库中浏览你的源代码并查看你的存储帐户连接信息。

每个存储帐户有两个访问密钥。 这是为了在实施安全最佳做法时可以定期轮换(重新生成)密钥,确保存储帐户安全。 可在 Azure 门户或 Azure CLI/PowerShell 命令行工具中完成此操作。

轮换密钥会使原始密钥值立即失效,并会撤销通过不适当方式获取密钥的任何人的访问权限。 在支持两个密钥的情况下,你可轮换密钥而不会导致使用它们的应用程序停机。 你的应用可切换到使用备用访问密钥,而另一个密钥则重新生成。 如果有多个应用使用此存储帐户,则它们应全部使用相同的密钥来支持此技术。 这是基本的理念:

  1. 更新应用程序代码中用于引用存储帐户的辅助访问密钥的连接字符串。
  2. 使用 Azure 门户或命令行工具重新生成存储帐户的主访问密钥。
  3. 更新代码中的连接字符串以引用新的主访问密钥。
  4. 以相同方式重新生成辅助访问密钥。

提示

强烈建议定期轮换访问密钥(就像更改密码一样)以确保其私密性。 如果是在服务器应用程序中使用密钥,则可使用 Azure Key Vault 为自己存储访问密钥。 Key Vault 支持直接同步到存储帐户,并可自动定期轮换密钥。 使用 Key Vault 相当于提供另一层安全措施,因此应用无需直接使用访问密钥。

共享访问签名 (SAS)

对存储帐户的访问权限进行身份验证的最简单方法是使用访问密钥。 但是,它们提供了对存储帐户中任何内容的完全访问权限,这种权限类似于计算机上的根密码的权限。

存储帐户提供了一种称为共享访问签名的单独身份验证机制,该机制可支持设置需授予有限访问权限的方案的有效期和受限权限。 如果允许其他用户在你的存储帐户中读取和写入数据,则应使用此方法。 有关此高级主题的文档的链接,可在模块末尾查找。