如何永久清除在启用软删除的情况下创建的整个 azure keyvault?

2024-03-25

当您创建启用了软删除的 azure keyvault 时,即使您将其删除并从头开始重新创建,该 keyvault 仍会保留。

启用软删除后,标记为已删除资源的资源将保留指定时间段(默认为 90 天)。该服务还提供了一种恢复已删除对象的机制,本质上是撤消删除。

当您尝试通过 UI 删除 keyvault 时,您还会收到此错误消息:

此 Key Vault 已启用软删除功能。您先请 软删除此密钥保管库,它将作为一个密钥保留在您的订阅中 隐藏的金库。它将在您的保留期过后被清除 指定的。您可以使用 Azure 更快地清除它或恢复保管库 门户、Azure PowerShell 或 Azure CLI。请参阅此页面以供参考:https://learn.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete https://learn.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete

这导致我在开发中遇到问题。我创建了一个启用了软删除的 keyvault(意外),现在我想完全删除该 keyvault 并使用不同的设置重新创建它。每次我删除它并重新创建它时,它都包含以前的所有设置、密钥等。我也无法创建具有相同名称且禁用软删除的密钥库。它抱怨具有该名称的密钥库已存在(VaultAlreadyExists异常)并且设置不兼容。

The MSDN 上的 keyvault 文档 https://learn.microsoft.com/en-us/azure/key-vault/general/soft-delete-overview#permitted-purge(Azure中上述消息的链接)提到如何永久清除软删除,但它有点委婉的句子对我没有多大帮助:

可以通过 POST 永久删除、清除密钥保管库 对代理资源的操作需要特殊权限。

那么我该如何摆脱这个东西呢?


正如我后来发现的那样,首先要注意的是现在随时都会默认启用软删除 https://learn.microsoft.com/en-us/azure/key-vault/general/soft-delete-change。所以禁用 of 软删除现已被有效弃用。但我仍然想完全删除我的密钥库。


在对 azure cli 进行了一些挖掘之后,我偶然发现了这个命令 https://learn.microsoft.com/en-us/cli/azure/keyvault?view=azure-cli-latest#az-keyvault-purge:

az keyvault purge --name
                  [--location]
                  [--no-wait]
                  [--subscription]

因此,如果您使用具有足够权限运行此命令的用户登录,则可以使用以下命令永久删除整个密钥保管库:

az keyvault purge --name keyvaultname

这将永久且不可撤销地删除密钥保管库及其所有密钥和设置。 在 Azure UI 中似乎没有办法在不使用 CLI 或其他工具的情况下执行此操作。 看来现在 UI 中也支持这一点,see here https://learn.microsoft.com/en-us/azure/key-vault/general/key-vault-recovery?tabs=azure-portal#list-recover-or-purge-a-soft-deleted-key-vault:

  1. 登录到 Azure 门户。
  2. 单击页面顶部的搜索栏。
  3. 在“最近的服务”下,单击“Key Vault”。不要点击 个人密钥保管库。
  4. 在屏幕顶部,单击“管理已删除的保管库”选项
  5. 屏幕右侧将打开一个上下文窗格。
  6. 选择您的订阅。
  7. 如果您的密钥保管库已被软删除,它将显示在 右侧的上下文窗格。
  8. 如果保管库太多,您可以点击“加载更多” 上下文窗格的底部或使用 CLI 或 PowerShell 获取 结果。
  9. 找到要恢复或清除的保管库后,选择 旁边的复选框。
  10. 如果您选择上下文窗格底部的恢复选项 想要恢复密钥保管库。
  11. 如果您想永久删除该文件,请选择清除选项 密钥库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何永久清除在启用软删除的情况下创建的整个 azure keyvault? 的相关文章

随机推荐

  • 使用 C# 9 顶级语句时,如何在 Main 范围之外添加代码?

    我的理解是类似直接写代码到老的 static void Main string args 无需显示上面的内容 但是 我曾经在类 Program 中声明我的变量 以便从其他类访问它们 抱歉 如果不是最佳实践 我自己学习了 C 只要它有效 我对
  • 强制卸载 Visual Studio

    卸载 Microsoft Visual Studio Ultimate 2015 Preview 时 它会抛出错误并引用 Microsoft Visual Studio Ultimate 2015 Preview 已停止工作 留言内容包括
  • 如何在运行时更改相机的预览?

    我正在尝试创建一个应用程序 它可以从相机视图中捕获一些 x y 大小的矩形部分 为了实现这一目标 我已经使用了许多线程 但似乎没有一个线程能够按要求工作 基本上我想要实现的目标如下所示 我的要求是 当我打开相机时 屏幕上应该有一个矩形突出显
  • 访问最终类的 @NSManaged 属性时出现 Swift 链接器错误

    我在一个较大的项目中遇到了问题 并将其归结为这个简单的代码 出于演示目的 我创建了一个新的 Swift 项目 在 Model swift 文件中包含以下内容 import Foundation import CoreData class A
  • 完美处理动态实例化中的scala构造函数

    我已经整理了这个工作代码 可以从给定的动态实例化一个类name String 以下 这适用于简单的情况 类和具有一个构造函数的案例类 我不确定如何处理存在多个构造函数的一般情况 我认为它们只能通过它们的签名来区分 但发现伴生对象 类和案例类
  • 当测试的主机类型为“Moles”时,无法从配置文件访问信息

    当单元测试的主机类型为 Moles 时 我们在通过单元测试访问 net 配置文件 例如 app config 和 web config 中的信息时遇到问题 这引起了相当多的麻烦 所以我希望有人知道可以做什么 我们使用的是 Visual St
  • 获取大数据集的 JDBC ResultSet 内部机制

    JDBC 结果集是否在 SQL 查询的一次网络调用中获取所有数据 考虑查询select from table where timestamp gt 1597937895 现在该查询有超过 100 万行 结果集是否在一次网络调用中获取所有行
  • 在 SQL Server 查询中复制 MS Access“First”功能

    我对 SQL Server 非常陌生 所以我现在道歉 我有一张桌子 我想要 GroupByfield1并返回field2中具有最高关联计数的记录counted场地 我通常会在 MS ACCESS 中使用 2 个查询执行此操作 第一个查询按降
  • 如何模拟密钥库类并将模拟行为分配给其方法?

    我有以下方法 我需要为其编写单元测试 但我无法监视类 KeyStore 它抛出以下异常 org mockito exceptions base MockitoException Unable to create mock instance
  • VB.net Excel ExportAsFixedFormat 失败 HRESULT 异常:0x80010105 (RPC_E_SERVERFAULT))

    我正在尝试编写一个非常简单的 VB net 应用程序 它将打开一个 Excel 文件并将其另存为 Excel 我正在工作的环境如下 Windows 10 视觉工作室 2016 办公室2016 我已成功打开 Excel 工作表并将其保存到另一
  • 两个三角形或一组半平面的交集面积或凸点集的面积

    我需要计算 2D 平面中两个三角形之间重叠区域的面积 奇怪的是我已经写了code http github com victorliu Templated Numerics blob master AnalyticGeometry TInte
  • 仅为 UIView 的一部分设置背景颜色

    我希望 UIView 的底部 不完全是一半 的颜色与顶部不同 我想知道是否应该创建一个 CGRect 然后为其着色 这是在正确的轨道上吗 void drawRect CGRect rect CGRect aRect CGRectMake x
  • C++ 和 Fortran 混合链接问题

    我在网上做了一些搜索 但我找不到如何从 Linux 编译简单的 C 和 Fortran 代码 我需要让它变得复杂 但我只需要知道如何从一个简单的例子开始 我的C 代码是这样的 include
  • 为什么我的 .NET Standard NuGet 包会触发如此多的依赖项?

    我一直在闲逛 NET 标准项目 https github com tdwright contabs和 NuGet 我有一个工作项目并且有已将其上传到 NuGet org https www nuget org packages ConTab
  • 从 OSX lion 上的版本浏览器恢复不起作用...有什么想法吗?

    我正在尝试从 Lion 上的先前版本恢复基于文档的应用程序 当我选择 恢复版本 时 文本视图不反映更改 但是 如果我关闭应用程序并重新打开 更改就会出现 我正在使用 NSDocument 的文件包装器变体 那么如何使文本视图的文本存储反映立
  • Liquibase:如何禁用 FILENAME 列检查?

    对于我们的应用程序 我们使用 liquibase 我们需要从命令行 在生产中手动 运行数据库迁移 并在应用程序启动时自动运行数据库迁移 测试环境等 问题是 Liquibase 将整个文件名视为变更集身份的一部分 因此如果路径不同 它会尝试重
  • Java重载和继承规则

    我一直在学习 因为我有考试 而且我对 Java 的大部分内容都没有太多问题 但我偶然发现了一条我无法解释的规则 这是一个代码片段 public class A public int method Object o return 1 publ
  • 两个 Div 彼此相邻,然后堆叠响应式更改

    我正在努力实现一些我确信应该比我现在做的更容易的事情 我正在使用 Skeleton 响应式框架 到目前为止一切都很好 这是我想要实现的目标的图表 这将被放置在一列中 一旦该列的大小减小 我希望它按照图中的第二个示例堆叠 div 我尝试了几种
  • 从 tfs 构建中排除测试

    我想从持续集成构建中排除一些测试 但我还没有找到这样做的方法 我尝试过的事情之一是将这些测试的优先级设置为 2 然后在构建中我指定最低测试优先级 1 但它仍然运行这些测试 任何帮助将不胜感激 您应该使用 测试类别 方法 而不是使用已描述的
  • 如何永久清除在启用软删除的情况下创建的整个 azure keyvault?

    当您创建启用了软删除的 azure keyvault 时 即使您将其删除并从头开始重新创建 该 keyvault 仍会保留 启用软删除后 标记为已删除资源的资源将保留指定时间段 默认为 90 天 该服务还提供了一种恢复已删除对象的机制 本质