管理存储帐户访问密钥

当你创建存储帐户时,Azure 会生成两个 512 位存储帐户访问密钥。 这些密钥可用于通过共享密钥授权来授予对你存储帐户中数据的访问权限。

Azure 建议使用 Azure 密钥保管库来管理访问密钥,并且定期轮换和重新生成密钥。 使用 Azure 密钥保管库可以轻松轮换密钥,而无需中断应用程序。 还可以手动轮换密钥。

保护访问密钥

存储帐户访问密钥类似于存储帐户的根密码。 始终要小心保护访问密钥。 使用 Azure 密钥保管库安全地管理和轮换密钥。 避免将访问密钥分发给其他用户、对其进行硬编码或将其以纯文本形式保存在其他人可以访问的任何位置。 如果你认为访问密钥可能已泄露,请轮换密钥。

备注

Azure 建议使用 Azure Active Directory (Azure AD) 而不是共享密钥来为针对 Blob 和队列数据的请求授权(如果可能)。 Azure AD 通过共享密钥提供更高的安全性和易用性。 有关使用 Azure AD 授权访问数据的详细信息,请参阅使用 Azure Active Directory 授权访问 Azure Blob 和队列

查看帐户访问密钥

可以使用 Azure 门户、PowerShell 或 Azure CLI 查看和复制帐户访问密钥。 Azure 门户还为你的存储帐户提供了一个可供复制的连接字符串。

若要从 Azure 门户查看和复制存储帐户访问密钥或连接字符串,请执行以下操作:

  1. Azure 门户中导航到存储帐户。

  2. 在“设置”下,选择“访问密钥” 。 此时会显示帐户访问密钥,以及每个密钥的完整连接字符串。

  3. 找到“key1”下面的“密钥”值,单击“复制”按钮复制该帐户密钥。

  4. 或者,可以复制整个连接字符串。 找到“密钥 1”下面的“连接字符串”值,单击“复制”按钮复制该连接字符串。

    显示如何在 Azure 门户中查看访问密钥的屏幕截图

可以使用这两个密钥中的任何一个来访问 Azure 存储,但通常情况下,最好使用第一个密钥,并保留第二个密钥在轮换密钥时使用。

若要查看或读取帐户的访问密钥,用户必须是服务管理员,或者分配到包含“Microsoft.Storage/storageAccounts/listkeys/action”的 Azure 角色。 包含此操作的 Azure 内置角色有“所有者”、“贡献者”和“存储帐户密钥操作员服务角色”等 。 有关服务管理员角色的详细信息,请参阅经典订阅管理员角色、Azure 角色和 Azure AD 角色。 若要详细了解 Azure 存储的内置角色,请参阅 Azure RBAC 的 Azure 内置角色中的“存储”部分。

使用 Azure 密钥保管库管理访问密钥

Azure 建议使用 Azure 密钥保管库来管理和轮换访问密钥。 应用程序可以安全地访问密钥保管库中的密钥,这样就可以避免使用应用程序代码来存储密钥。 有关使用密钥保管库进行密钥管理的详细信息,请参阅以下文章:

手动轮换访问密钥

Azure 建议定期轮换访问密钥,以帮助保护存储帐户的安全。 如果可能,请使用 Azure 密钥保管库管理访问密钥。 如果不使用密钥保管库,将需要手动轮换密钥。

系统会分配两个访问密钥,以便可以轮换密钥。 拥有两个密钥可确保应用程序在整个轮换过程中能够持续访问 Azure 存储。

警告

重新生成访问密钥可能会影响依赖于存储帐户密钥的所有应用程序或 Azure 服务。 使用帐户密钥访问存储帐户的任何客户端必须更新为使用新密钥,其中包括媒体服务、云、桌面和移动应用程序,以及适用于 Azure 存储的图形用户界面应用程序,例如 Azure存储资源管理器

如果你计划手动轮换访问密钥,那么 Azure 建议设置密钥过期策略,然后在 Azure Monitor 中使用查询来确定何时需要轮换访问密钥。

创建密钥过期策略

使用 Azure 门户设置密钥过期策略的功能尚不可用。 可以使用 PowerShell 或 Azure CLI。

轮换访问密钥

在 Azure 门户中轮换存储帐户访问密钥:

  1. 更新应用程序代码中的连接字符串以引用存储帐户的辅助访问密钥。

  2. Azure 门户中导航到存储帐户。

  3. 在“设置”下,选择“访问密钥” 。

  4. 若要为存储帐户重新生成主访问密钥,请选择主访问密钥旁边的“重新生成”按钮。

  5. 更新代码中的连接字符串以引用新的主访问密钥。

  6. 以相同方式重新生成辅助访问密钥。

备注

Azure 建议同一时间在所有应用程序中只使用一个密钥。 如果在某些地方使用密钥 1 并在其他地方使用密钥 2,则无法在没有部分应用程序失去访问的情况下轮转密钥。

若要轮换帐户的访问密钥,用户必须是服务管理员,或者分配到包含“Microsoft.Storage/storageAccounts/regeneratekey/action”的 Azure 角色。 包含此操作的 Azure 内置角色有“所有者”、“贡献者”和“存储帐户密钥操作员服务角色”等 。 有关服务管理员角色的详细信息,请参阅经典订阅管理员角色、Azure 角色和 Azure AD 角色。 若要详细了解 Azure 存储的 Azure 内置角色,请参阅 Azure RBAC 的 Azure 内置角色中的“存储”部分。

后续步骤