【Azure Key Vault】资源组被误删后,如何恢复 Azure Key Vault?

简介: 删除资源组后,里面的 Key Vault 通常不会立即消失,而是进入软删除状态。只要仍在保留期内,先确认订阅、保管库名称和原始区域,再创建原资源组名称,最后使用门户、Azure CLI 或 PowerShell 恢复保管库。恢复对象本身并不等于恢复所有外围配置,访问控制、网络规则、专用终结点和依赖应用仍然需要逐项验证。

问题描述

删除资源组通常是一个控制平面操作,但它会让资源组中的应用、网络和密钥依赖同时失效。最容易引起误判的是 Key Vault:门户里看不到保管库,应用开始报机密读取失败,重新创建同名保管库又提示名称已经被占用。

这时常见的三个问题是:

  1. 资源组已经不存在,Key Vault 还能不能找回?
  2. 恢复时是否必须先创建资源组?资源组的位置是否必须和 Key Vault 一致?
  3. 恢复后,原来的密钥、机密和证书是否都会自动回来?

这几个问题不能用“重新创建一个同名保管库”解决。真正需要确认的是:保管库是否处于软删除状态、保留期是否已结束,以及恢复操作所需的目标资源组是否存在。


问题解答

一、先判断:这是软删除,还是已经永久清除?

软删除可以理解为 Key Vault 的回收站。保管库被删除后,会在配置的保留期内保持可恢复状态;当前 Azure CLI 文档显示,保留期可配置为 7 到 90 天,新建保管库默认通常为 90 天。软删除状态下,保管库名称仍然被占用,因此不能通过创建同名保管库来“覆盖恢复”。

清除保护是另一层机制。它不是恢复功能,而是防止在保留期内执行永久删除的时间锁。启用清除保护后,包括 Microsoft 在内的任何人都不能绕过它;如果已经执行清除,或者保留期结束后系统完成自动清除,本文的软删除恢复流程就不再适用,只能依赖事先准备的备份或其他灾难恢复方案。

可以先用下面的流程判断处理方向:

这里有一个容易被忽略的边界:软删除只保证保管库及其软删除对象在保持期内可恢复,不等于所有依赖资源都会回滚到删除前状态。恢复成功后仍要重新检查控制平面的配置。


二、恢复前的四项核对

第一,确认云环境和订阅。 全球 Azure 与 Azure 中国区使用不同的云环境和文档入口。如果命令行列不出预期保管库,先检查当前登录的云环境、租户和订阅,不要马上执行 purge。

第二,记录已删除保管库的名称和区域。 az keyvault recover 的 --name 和 --location 针对的是已删除的保管库;区域必须填写保管库原来的区域,而不是随意选择一个新区域。

第三,准备目标资源组。 恢复命令需要一个现存的目标资源组。资源组被删除时,应先用原资源组名称重新创建它,再执行恢复。资源组名称是恢复目标的一部分,但资源组的 Azure Resource Manager 元数据位置不必与 Key Vault 的部署区域相同;不要把“资源组存在”误解成“资源组和保管库必须同区域”。

第四,确认权限。 查看已删除保管库需要订阅级别的 Microsoft.KeyVault/locations/deletedVaults/read 权限;清除需要 Microsoft.KeyVault/locations/deletedVaults/purge/action 和查询操作结果的权限;恢复软删除保管库需要足够的管理平面权限,官方文档列出的内置角色是“密钥保管库管理员”(Key Vault Administrator)。实际操作中应遵循最小权限原则,不要为了排障直接给订阅所有者权限。

三、Azure 门户恢复步骤

登录 Azure 门户 → 选择页面顶部的搜索栏 → 搜索“密钥保管库”服务(不要选择单个密钥保管库)→ 在屏幕顶部选择“管理已删除的保管库”选项,此时会在屏幕右侧打开一个上下文窗格 → 选择订阅;如果你的密钥保管库已被软删除,它会显示在右侧窗格中(保管库过多时可选择窗格底部的“加载更多”,或改用 CLI/PowerShell 获取结果)→ 找到要恢复的保管库后勾选其旁边的选框 → 选择上下文窗格底部的“恢复”选项。


四、Azure CLI:重建资源组并恢复保管库

下面的命令适合资源组已被删除、但 Key Vault 仍处于软删除状态的场景。先替换变量,再执行;不要把示例值直接用于生产环境。

# 全球 Azure 使用 AzureCloud;Azure 中国区使用 AzureChinaCloud
az cloud set --name AzureCloud
az login
az account set --subscription "<订阅 ID 或名称>"
# 列出当前订阅中仍可恢复的已删除保管库
az keyvault list-deleted -o table
# 查看指定保管库的删除时间、保留截止时间和原始位置
az keyvault show-deleted \
    --name "<保管库名称>" \
    --location "<保管库原始区域>"
# 资源组已删除时,先创建同名资源组
az group create \
    --name "<原资源组名称>" \
    --location "<资源组位置>"
# 恢复保管库;location 必须使用 Key Vault 原始区域
az keyvault recover \
    --name "<保管库名称>" \
    --resource-group "<原资源组名称>" \
    --location "<保管库原始区域>"

Azure 中国区将第一行改为 az cloud set --name AzureChinaCloud,并在对应云环境中重新登录。这里有两个 location,不要混淆:az group create 的位置属于资源组元数据,az keyvault recover 的位置属于 Key Vault。真正决定恢复目标保管库的是后者。

恢复是长时间运行操作时,可以先检查资源是否出现,再做数据平面验证:

# 确认保管库已经恢复到目标资源组
az keyvault show \
    --name "<保管库名称>" \
    --resource-group "<原资源组名称>" \
    --query "{id:id,location:location,provisioningState:properties.provisioningState}" \
    -o table
# 只验证名称和版本元数据,不要在终端输出机密值
az keyvault secret list \
    --vault-name "<保管库名称>" \
    --query "[].{name:name,enabled:attributes.enabled}" \
    -o table


五、Azure PowerShell:等价恢复流程

Connect-AzAccount
Set-AzContext -SubscriptionId "<订阅 ID>"
# 查看当前订阅中的已删除保管库
Get-AzKeyVault -InRemovedState
# 资源组已删除时先重建同名资源组
New-AzResourceGroup `
    -Name "<原资源组名称>" `
    -Location "<资源组位置>"
# 使用 Key Vault 原始区域恢复保管库
Undo-AzKeyVaultRemoval `
    -VaultName "<保管库名称>" `
    -ResourceGroupName "<原资源组名称>" `
    -Location "<保管库原始区域>"

如果命令返回权限错误,先区分是管理平面权限不足,还是恢复后访问 Key Vault 数据平面的权限不足。恢复保管库与读取机密是两件不同的事,不要用“能恢复”推断“应用一定能读取”。


六、只删除了密钥、机密或证书时怎么办?

如果 Key Vault 本体仍然存在,只是其中的对象被删除,不需要恢复整个保管库。在门户中打开 Key Vault,进入“密钥”“机密”或“证书”选项卡,选择对应的“管理已删除项”,然后执行恢复。

命令行也可以分别处理对象:

az keyvault secret list-deleted --vault-name "<保管库名称>"
az keyvault secret recover --vault-name "<保管库名称>" --name "<机密名称>"
az keyvault key list-deleted --vault-name "<保管库名称>"
az keyvault key recover --vault-name "<保管库名称>" --name "<密钥名称>"
az keyvault certificate list-deleted --vault-name "<保管库名称>"
az keyvault certificate recover --vault-name "<保管库名称>" --name "<证书名称>"

对象恢复同样受软删除和保留期约束。对象不存在于已删除列表中,可能意味着它没有启用软删除、已经被清除,或者当前身份访问的是错误的保管库或订阅。


七、恢复成功后,不要只测试一个机密

我建议按“资源、权限、网络、应用”四层验证,而不是看到门户中的保管库名称就宣布恢复完成:

验证层 重点检查 常见遗漏
资源 保管库名称、订阅、资源组、区域、SKU 恢复到了错误订阅或资源组
数据 密钥、机密、证书及版本是否可见 只验证对象名称,没有验证版本和有效状态
权限 Azure RBAC 角色或访问策略、托管身份 恢复后应用身份仍然收到 403
网络 防火墙、网络 ACL、专用终结点、DNS 门户能访问,但应用网络不可达
依赖 App Service、AKS、Data Factory、磁盘加密等 应用仍缓存旧配置或旧资源 ID
运维 诊断设置、日志目标、告警 恢复了数据,却没有恢复审计链路

恢复后不要把机密值打印到终端、日志或截图中。对应用做一次最小读取测试即可;如果出现 403,优先检查身份和数据平面授权;如果出现 timeout,优先检查网络路径、专用 DNS 和防火墙规则。


八、如何降低下一次误删的影响?

我的建议是把防护分成三层,而不是只依赖软删除:

  1. 恢复层: 为 Key Vault 保持软删除,并在生产环境启用清除保护;通过 Azure Policy 统一检查相关配置。
  2. 误操作层: 为资源组和 Key Vault 设置 CanNotDelete 资源锁。锁只能阻止普通删除操作,不能替代权限治理和灾备。
  3. 灾备层: 定期备份需要长期保存的密钥、机密和证书,并记录恢复演练结果。备份不是软删除的替代品,而是应对清除、保留期到期和区域级故障的另一条路径。

如果业务必须保留原资源 ID、原名称和原应用配置,优先选择软删除恢复;如果保管库已经被清除,重新创建同名保管库只能得到一个空资源,不能恢复原有对象。


常见问题

资源组被删除后,必须重建同名资源组吗?

恢复命令需要一个现存的目标资源组。对于“原资源组被删除”的场景,最稳妥的做法是先重建原名称,再执行恢复。恢复到其他资源组是否可行取决于具体服务和接口行为,不应在紧急恢复时临时试错。

资源组和 Key Vault 必须在同一个区域吗?

不必把两者强制设为同一区域。资源组位置和 Key Vault 的部署区域是不同概念;恢复命令中的 --location 应填写 Key Vault 原始区域。

恢复后,访问策略和专用终结点一定会回来吗?

不要假设一定会回来。Key Vault 数据对象的恢复与外围控制平面资源不是同一个恢复边界,必须重新核对 RBAC、访问策略、网络规则、专用终结点、DNS、诊断设置和依赖应用。

已经执行 purge,还能恢复吗?

不能使用软删除恢复流程。清除是永久删除操作;此时只能检查是否有 Key Vault 对象备份、基础设施定义、应用密钥轮换记录或其他灾备副本。


总结

资源组误删不等于 Key Vault 立即永久丢失,但恢复窗口受软删除保留期限制。正确顺序是:确认云环境和订阅,读取已删除保管库的原始区域,重建目标资源组,执行恢复,再按资源、数据、权限、网络和应用五个层面验证。最重要的边界是:软删除解决“误删除后的恢复”,不能替代清除保护、资源锁、备份和恢复演练。



参考资料

  1. Azure 密钥保管库恢复概述
  2. Azure CLI:az keyvault
  3. Azure Key Vault 软删除概述
  4. Azure Key Vault 备份
  5. Azure Key Vault 安全功能





当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
2月前
|
数据采集 监控 安全
小红书搜索SEO优化:UGC信源池的排序系统架构与工程化实践
本文系统解析小红书搜索SEO工程方法论:基于UGC信源池+实时索引+四因子排序架构,详解关键词命中、内容质量、账号权重、互动信号的计算逻辑,提供从0到35天的落地路线、结构化笔记模板与多账号矩阵策略,并附白帽自查清单。(239字)
|
26天前
|
弹性计算 安全 Linux
新手如何选购并配置阿里云服务器保姆级教程,实例选型、参数解读、远程连接、安全加固全流程教学
对于绝大多数刚接触云计算的新手来说,挑选并配置第一台云服务器往往会遇到大量困惑。面对控制台密密麻麻的参数选项,分不清轻量应用服务器和ECS之间的差异,看不懂计费模式,购买之后不知道如何登录、如何做安全设置,经常出现买完服务器无法访问、服务器被恶意扫描攻击、资源规格和业务需求不匹配造成资源浪费等一系列问题。本文面向零基础使用者,完整梳理从前期账号准备、产品选型、参数筛选、下单购买,再到远程登录、系统初始化、安全加固、基础环境调试的全部流程,同时提供可直接复制运行的实操命令,帮助新手顺利完成第一台云服务器的搭建,规避新手高频踩坑点,理清不同业务场景下的选型逻辑,让服务器真正可以投入业务使用。
209 3
|
2月前
|
人工智能 开发者 SEO
当谷歌开始计量AI搜索流量: GEO优化与SEO优化, 一场不必二选一的进化
2026年Google推出AI搜索流量独立统计,标志SEO与GEO双轨并行新阶段:SEO解决“用户搜关键词找你”,GEO解决“AI回答时引用你”。数据表明双优化ROI达1:12.6。DataAsset提出四步GEO落地法,坚守白帽底线,助品牌成为“搜得到、引得准”的可信资产。
|
2月前
|
人工智能 数据可视化 开发工具
Qoder CN的RepoWiki是什么?能自动生成项目文档吗?
RepoWiki 是阿里云 Qoder CN 的智能项目知识生成工具,可自动分析 Git 代码库,生成带溯源(含行号)的结构化文档;支持交互式规划、进度可视化、双向同步及多格式导出。按任务复杂度消耗 Credits,个人版首注赠300点。阿里云Qoder CN官网:https://t.aliyun.com/U/hGZKNX
|
2月前
|
SQL 人工智能 安全
从单点工具到数字员工:企业级Agent的进化之路
2026年,企业级AI智能体正从“单点工具”迈向“数字员工”。瓴羊AgentOne以岗位为本,通过Data(能信)、Agent(能干)、FDE(能打)三角能力,提供AI销售、客服、运营、营销四大标准化员工,并支持定制化扩展。聚焦GMV、解决率等业务结果,实现Multi-Agent协同与全链路可观测,助力企业规模化落地。
|
2月前
|
人工智能 JavaScript 程序员
我给 DeepSeek Harness 换了个模式,性能提升 40%!
DeepSeek Harness 进阶玩法,一次讲透 Agent 预设!四种内置模式怎么选、有什么区别,实测对比速度和效果,还手把手教你自定义预设,把 Cursor 的 Debug 模式搬到 Harness 上来用,给 AI 一套固定的工作 SOP。
984 0
|
3月前
|
人工智能 运维 数据可视化
【最新版】阿里云计算巢部署 Hermes Agent 配置百炼 API Key 图文教程
在AI智能体规模化落地的当下,Hermes Agent作为轻量化、高灵活、可自主执行复杂任务的开源智能体框架,凭借多模型兼容、自主任务拆解、长效挂机运行、自动化工作流执行等优势,成为个人开发者、小微企业搭建AI自动化体系的核心工具。传统本地部署智能体存在配置繁琐、环境依赖杂乱、设备性能受限、无法7×24小时在线的痛点,而**阿里云计算巢平台**提供一站式云原生部署能力,无需手动搭建底层环境、无需配置复杂依赖、无需占用本地设备资源,可极速部署Hermes Agent服务,搭配阿里云百炼大模型API接口,即可解锁通义千问全系旗舰模型能力,搭建稳定、高效、可商用的云端AI智能体。
188 3
|
3月前
|
人工智能
意图共鸣科技《智能体三角模型白皮书》|通用认知基座、人文交互内核、私有知识域——三个顶点缺一不可
《智能体三角模型》提出商用AI必备三要素:通用认知基座(懂思考)、人文交互内核(有分寸)、私有知识域(知业务)。三者缺一不可,协同产生乘数效应,打造真正可靠、温暖、专业的数字员工。
173 1
|
3月前
|
运维 监控 安全
阿里云国际站(云老大)DDoS攻击流量突然暴增?
大部分用户意识到被攻击,是在业务中断之后。监控报警延迟、响应流程不熟、误判攻击类型,往往让故障时间从分钟级拖成小时级。阿里云DDoS攻击应急处理的关键,不是一套大而全的预案,而是知道在流量暴增的第一时间该看什么、该动什么,以及动完之后怎么守住。理解攻击的常见场景,是后面所有操作的前提。
191 3