在同一租户中为现有存储帐户配置客户管理的密钥

Azure 存储对静态存储帐户中的所有数据进行加密。 默认情况下,数据使用 Microsoft 管理的密钥进行加密。 若要更进一步控制加密密钥,你可以管理自己的密钥。 客户管理的密钥必须存储在 Azure Key Vault 中。

本文介绍当存储帐户和密钥保管库位于同一租户时,如何使用客户管理的密钥为现有存储帐户配置加密。 客户管理的密钥将存储在密钥保管库中。

若要了解如何为新存储帐户配置客户管理的密钥,请参阅在 Azure 密钥保管库中为新存储帐户配置客户管理的密钥

配置密钥保管库

你可以使用新的或现有的密钥保管库来存储客户管理的密钥。 存储帐户和密钥保管库可能在同一租户的不同区域或订阅中。 若要了解有关 Azure Key Vault 的详细信息,请参阅 Azure Key Vault 概述什么是 Azure Key Vault?

使用带有 Azure 存储加密的客户管理的密钥需要为密钥保管库启用软删除和清除保护。 创建新密钥保管库时,默认会启用软删除,并且无法禁用。 你可以在创建密钥保管库时或创建后启用清除保护。

Azure Key Vault 支持通过 Azure RBAC 权限模型使用 Azure RBAC 进行授权。 Azure 建议对密钥保管库访问策略使用 Azure RBAC 权限模型。 有关详细信息,请参阅使用 Azure RBAC 授予应用程序访问 Azure 密钥保管库的权限

若要了解如何使用 Azure 门户创建密钥保管库,请参阅快速入门:使用 Azure 门户创建密钥保管库。 创建密钥保管库时,选择“启用清除保护”,如下图所示。

Screenshot showing how to enable purge protection when creating a key vault.

若要在现有密钥保管库上启用清除保护,请执行以下步骤:

  1. 在 Azure 门户中导航到密钥保管库。
  2. 在“设置”下面,选择“属性”。
  3. 在“清除保护”部分,选择“启用清除保护” 。

添加密钥

接下来,在密钥保管库中添加密钥。 在添加密钥之前,请确保已将“密钥保管库加密管理人员”角色分配给自己。

Azure 存储加密支持 2048、3072 和 4096 大小的 RSA 密钥。 有关支持的密钥类型详细信息,请参阅关于密钥

若要了解如何使用 Azure 门户添加密钥,请参阅快速入门:使用 Azure 门户在 Azure Key Vault 中设置和检索密钥中的说明创建密钥保管库。

选择托管标识授予对密钥保管库的访问权限

为现有存储帐户启用客户管理的密钥时,必须指定一个托管标识,用于授权访问密钥所在的密钥保管库。 托管标识必须有权访问密钥保管库中的密钥。

授权访问密钥保管库的托管标识可能是用户分配的托管标识或系统分配的托管标识。 若要详细了解系统分配的托管标识和用户分配的托管标识,请参阅托管标识类型

使用用户分配的托管标识授予访问权限

为新存储帐户启用客户管理的密钥时,必须指定用户分配的托管标识。 现有存储帐户支持使用用户分配的托管标识或系统分配的托管标识来配置客户管理的密钥。

使用用户分配的托管标识配置客户管理的密钥时,用户分配的托管标识用来授予对包含密钥的密钥保管库的访问权限。 在配置客户管理的密钥之前,必须创建用户分配的标识。

用户分配的托管标识是独立的 Azure 资源。 若要详细了解用户分配的托管标识,请参阅托管标识类型。 若要了解如何创建和管理用户分配的托管标识,请参阅管理用户分配的托管标识

用户分配的托管标识必须具有访问密钥保管库中的此密钥的权限。 将“密钥保管库加密服务加密用户”角色分配给用户分配的托管标识(范围是密钥保管库),以授予这些权限。

必须先将“密钥保管库加密服务加密用户”角色分配给用户分配的托管标识(范围是密钥保管库),然后才能使用用户分配的托管标识配置客户管理的密钥。 此角色授予用户分配的托管标识访问密钥保管库中的密钥的权限。 若要详细了解如何使用 Azure 门户分配 Azure RBAC 角色,请参阅使用 Azure 门户分配 Azure 角色

使用 Azure 门户配置客户管理的密钥时,可以通过门户用户界面选择现有的用户分配的标识。

使用系统分配的托管标识授予访问权限

系统分配的托管标识与 Azure 服务的实例(在本例中为 Azure 存储帐户)相关联。 必须先将系统分配的托管标识显式分配给存储帐户,才能使用系统分配的托管标识来授权访问客户管理的密钥所在的密钥保管库。

只有现有存储帐户可以使用系统分配的标识来授权访问密钥保管库。 如果在创建帐户时配置客户管理的密钥,则新存储帐户必须使用用户分配的标识。

系统分配的托管标识必须拥有访问密钥保管库中的密钥的权限。 将“密钥保管库加密服务加密用户”角色分配给范围是密钥保管库的系统分配的托管标识,以授予这些权限。

必须先将“密钥保管库加密服务加密用户”角色分配给系统分配的托管标识(范围是密钥保管库),然后才能使用系统分配的托管标识配置客户管理的密钥。 此角色授予系统分配的托管标识访问密钥保管库中的密钥的权限。 若要详细了解如何使用 Azure 门户分配 Azure RBAC 角色,请参阅使用 Azure 门户分配 Azure 角色

使用系统分配的托管标识在 Azure 门户中配置客户管理的密钥时,系统会在后台将系统分配的托管标识分配给存储帐户。

为现有帐户配置客户管理的密钥

使用客户管理的密钥为现有存储帐户配置加密时,只要关联的密钥保管库中有新版本可用,就可以选择自动更新用于 Azure 存储加密的密钥版本。 也可显式指定在手动更新密钥版本之前用于加密的密钥版本。

更改密钥版本时,无论是自动还是手动更改,根加密密钥的保护都会更改,但 Azure 存储帐户中的数据始终保持加密状态。 无需执行更多操作即可确保数据受到保护。 轮换密钥版本不会影响性能。 轮换密钥版本不会造成关联性故障时间。

为现有存储帐户配置客户管理的密钥时,可以使用系统分配的或用户分配的托管标识来授权访问密钥保管库。

注意

若要轮换密钥,请在 Azure Key Vault 中创建密钥的新版本。 Azure 存储不处理密钥轮换,因此需要管理密钥保管库中的密钥轮换。 可以在 Azure Key Vault 中配置密钥自动轮换,也可以手动轮换密钥。

配置加密以自动更新密钥版本

Azure 存储可以自动更新客户管理的密钥(用于加密),以使用密钥库中的最新密钥版本。 Azure 存储每天都会在密钥保管库中检查是否有密钥的新版本。 新版本可用时,Azure 存储会自动开始使用最新版本的密钥进行加密。

重要

Azure 存储每天只会在密钥保管库中检查一次是否存在密钥的新版本。 轮换密钥时,请务必等待 24 小时,然后再禁用旧版本。

若要在 Azure 门户中通过自动更新密钥版本为现有帐户配置客户管理的密钥,请执行以下步骤:

  1. 导航到存储帐户。

  2. 在“安全 + 网络”下,选择“加密”。 默认情况下,密钥管理设置为“Microsoft 管理的密钥”,如下图所示:

    Screenshot showing encryption options in Azure portal.

  3. 选择“客户管理的密钥”选项。 如果帐户之前已针对“客户管理的密钥”配置了手动更新密钥版本的功能,请选择页面底部附近的“更改密钥”。

  4. 选择“从 Key Vault 中选择”选项。

  5. 选择“选择密钥保管库和密钥”。

  6. 选择包含要使用的密钥的密钥保管库。 你还可以创建新的密钥保管库。

  7. 从密钥保管库中选择密钥。 还可以创建新密钥。

    Screenshot showing how to select key vault and key in Azure portal.

  8. 选择用于验证对密钥保管库的访问的标识的类型。 选项包括系统分配(默认)或用户分配 。 若要详细了解每种类型的托管标识,请参阅托管标识类型

    1. 如果选择“系统分配”,则将在后台创建存储帐户的系统分配的托管标识(如果尚不存在)。
    2. 如果选择“用户分配”,则必须选择有权访问密钥保管库的现有用户分配标识。 若要了解如何创建用户分配的标识,请参阅管理用户分配的托管标识

    Screenshot showing how to select a user-assigned managed identity for key vault authentication.

  9. 保存所做更改。

指定密钥后,Azure 门户会指示启用密钥版本的自动更新,并显示当前用于加密的密钥版本。 门户还显示用于授权访问密钥保管库的托管标识的类型和托管标识的主体 ID。

Screenshot showing automatic updating of the key version enabled.

为手动更新密钥版本配置加密

如果希望手动更新密钥版本,请在使用客户管理的密钥配置加密时显式指定该版本。 在这种情况下,在密钥保管库中创建新版本时,Azure 存储不会自动更新密钥版本。 若要使用新的密钥版本,必须手动更新用于 Azure 存储加密的版本。

若要在 Azure 门户中配置客户管理的密钥并手动更新密钥版本,请指定密钥 URI,包括版本。 若要将某个密钥指定为 URI,请执行下列步骤:

  1. 若要在 Azure 门户中查找密钥 URI,请导航到 Key Vault,然后选择“密钥”设置。 选择所需的密钥,然后选择该密钥以查看其版本。 选择一个密钥版本,查看该版本的设置。

  2. 复制“密钥标识符”字段的值(提供 URI)。

    Screenshot showing key vault key URI in Azure portal.

  3. 在存储帐户的“加密密钥”设置中,选择“输入密钥 URI”选项。

  4. 将复制的 URI 粘贴到“密钥 URI”字段中。 从 URI 中省略密钥版本,以启用自动更新密钥版本。

    Screenshot showing how to enter key URI in Azure portal.

  5. 指定包含密钥保管库的订阅。

  6. 指定系统分配或用户分配的托管标识。

  7. 保存所做更改。

更改密钥

你可以在任何时候更改用于 Azure 存储加密的密钥。

注意

更改密钥或密钥版本时,根加密密钥的保护会更改,但是 Azure 存储帐户中的数据将始终保持加密状态。 无需执行其他操作即可确保数据受到保护。 更改密钥或轮换密钥版本不会影响性能。 更改密钥或轮换密钥版本不会造成关联性故障时间。

若要使用 Azure 门户更改密钥,请执行以下步骤:

  1. 导航到你的存储帐户,并显示“加密”设置。
  2. 选择密钥保管库并选择一个新密钥。
  3. 保存更改。

如果新密钥位于其他密钥保管库中,则必须向托管标识授予对新保管库中密钥的访问权限。 如果选择手动更新密钥版本,则还需要更新密钥保管库 URI

撤销对使用客户管理的密钥的存储帐户的访问权限

若要暂时撤销对使用客户管理的密钥的存储帐户的访问权限,请禁用密钥保管库中当前使用的密钥。 禁用和重新启用密钥不会对性能造成影响或导致停机。

在禁用密钥之后,客户端将无法调用在 Blob 或其元数据中进行读取或写入的操作。 有关哪些操作将会失败的信息,请参阅撤销对使用客户管理的密钥的存储帐户的访问权限

注意

禁用密钥保管库中的密钥时,Azure 存储帐户中的数据将保持加密状态,但在重新启用密钥之前,这些数据将无法访问。

若要使用 Azure 门户禁用客户管理的密钥,请执行以下步骤:

  1. 导航到包含该密钥的密钥保管库。

  2. 选择“对象”下的“密钥”。

  3. 右键单击密钥并选择“禁用”。

    Screenshot showing how to disable a customer-managed key in the key vault.

切换回 Microsoft 托管密钥

可以使用 Azure 门户、PowerShell 或 Azure CLI 随时从客户管理的密钥切换回 Microsoft 管理的密钥。

若要在 Azure 门户中从客户管理的密钥切换回 Microsoft 管理的密钥,请执行以下步骤:

  1. 导航到存储帐户。

  2. 在“安全 + 网络”下,选择“加密”。

  3. 将“加密类型”更改为“Microsoft 管理的密钥”。

    Screenshot showing how to switch to Microsoft-managed keys for a storage account.

后续步骤