轮换并撤销客户管理的密钥
本文是由四部分构成的教程系列文章中的第三部分。 第一部分概述了客户管理的密钥、其功能以及在注册表中启用客户管理的密钥之前的注意事项。 第二部分介绍了如何使用 Azure CLI、Azure 门户或 Azure 资源管理器模板启用客户管理的密钥。 本文介绍如何轮换、更新和撤销客户管理的密钥。
轮换客户管理的密钥
要轮换密钥,可以更新 Azure Key Vault 中的密钥版本或新建密钥。 在轮换密钥时,可以指定用于创建注册表的同一标识。
(可选)可以:
- 配置新的用户分配的标识以访问密钥。
- 启用并指定注册表的系统分配的标识。
使用 Azure CLI 创建或更新密钥版本
若要创建新的密钥版本,请运行 az keyvault key create 命令:
# Create new version of existing key
az keyvault key create \
--name <key-name> \
--vault-name <key-vault-name>
如果将注册表配置为检测密钥版本更新,则客户管理的密钥会在一小时内自动更新。
如果将注册表配置为在发布新密钥版本后手动更新,请运行 az-acr-encryption-rotate-key 命令。 传递新密钥 ID 以及要配置的标识。
提示
运行 az-acr-encryption-rotate-key
时,可以传递带版本的密钥 ID 或不带版本的密钥 ID。 如果使用不带版本的密钥 ID,则会将注册表配置为自动检测以后的密钥版本更新。
若要手动更新客户管理的密钥版本,可采用三种做法:
轮换密钥并使用托管标识的客户端 ID。
如果使用来自不同密钥保管库的密钥,请验证
identity
是否对该密钥保管库具有get
、wrap
和unwrap
权限。az acr encryption rotate-key \ --name <registry-name> \ --key-encryption-key <new-key-id> \ --identity <client ID of a managed identity>
轮换密钥并使用用户分配的标识。
在使用用户分配的标识之前,请验证是否为它分配了
get
、wrap
和unwrap
权限。az acr encryption rotate-key \ --name <registry-name> \ --key-encryption-key <new-key-id> \ --identity <id of user assigned identity>
轮换密钥并使用系统旋转分配的标识。
在使用系统分配的标识之前,请验证是否为它分配了
get
、wrap
和unwrap
权限。az acr encryption rotate-key \ --name <registry-name> \ --key-encryption-key <new-key-id> \ --identity [system]
使用 Azure 门户创建或更新密钥版本
使用注册表的“加密”设置来更新客户管理的密钥的密钥保管库、密钥或标识设置。
例如,若要配置新密钥,请执行以下操作:
在门户中转到你的注册表。
在“设置”下,选择“加密”>“更改密钥”。
在“加密”中,选择以下选项之一:
- 选择“从密钥保管库中选择”,然后选择现有的密钥保管库和密钥,或选择“新建”。 你选择的密钥不带版本,可启用自动密钥轮换。
- 选择“输入密钥 URI”,并直接提供密钥标识符。 可以提供带版本的密钥 URI(适用于必须手动轮换的密钥)或不带版本的密钥 URI(用于启用自动密钥轮换)。
完成密钥选择,然后选择“保存”。
撤销客户管理的密钥
可以撤销客户管理的加密密钥,方法是更改访问策略,或更改针对密钥保管库的权限,或者删除该密钥。
若要更改注册表使用的托管标识的访问策略,请运行 az-keyvault-delete-policy 命令:
az keyvault delete-policy \
--resource-group <resource-group-name> \
--name <key-vault-name> \
--object-id <key-vault-key-id>
若要删除密钥的单个版本,请运行 az-keyvault-key-delete 命令。 此操作需要 keys/delete 权限。
az keyvault key delete \
--name <key-vault-name> \
--
--object-id $identityPrincipalID \
注意
撤销客户管理的密钥将阻止对所有注册表数据的访问。 如果你启用访问密钥或还原已删除密钥的权限,注册表将选取该密钥,然后你可以重新获取对已加密注册表数据的访问控制权。
后续步骤
请继续阅读下一篇文章了解如何排查常见问题,例如删除托管标识时发生的错误、403 错误和意外删除密钥的问题。