首页 > 解决方案 > 如何删除我的 Hashicorp Vault 中的 400 万份租约

问题描述

我在具有 16 个 CPU 和 64 GiB 内存的 m4-4Xlarge 实例上运行 Hashicorp Vault 版本 0.11.5。我没有运行 Vault 集群。我看到 Vault 每 3 小时就会出现一次内存不足。我使用 S3 作为后端。当我尝试使用 Vault 管理 UI 提出租约时,响应超时,我在 UI 上什么也看不到。我尝试在本地机器上做 CURL,但是使用 /sys/leases/lookup/auth/userpass/login/myusername 端点,请求超时并且没有显示。

我试图列出 Vault 的 S3 存储桶中的对象数量。我看到在 S3 存储桶前缀 sys/expire/id/auth/userpass/login/ 下列出了 400 万个租约对象。有 300 个用户和 400 万个租约,其中大部分租约将在 30 天内到期。

  1. 如何删除这 400 万个租约?
  2. 有没有办法在 Hashicorp Vault 运行时对其进行分析?我能知道为什么 Vault 内存不足吗?
  3. 如果我编写一个脚本来删除 S3 中前缀为:sys/expire/id/auth/userpass/login/ 的对象,会发生什么?
  4. 执行上述操作有什么副作用和
  5. 我怎样才能保证安全,以免对生产中运行的 Vault 做任何破坏性的事情?
  6. Vault 是否会递归加载租约并进入无限循环?如何调试这个?

我尝试编写一个将撤销租约的批处理脚本,并且我还尝试强制撤销租约。但是,它似乎不起作用。租约仍然存在,它们是大约 30 天前创建的旧租约。我尝试在 Vault 管理 UI 中删除特定用户的租约,但 UI 未显示。我们现在将默认配置更改为在 2 分钟后使租约到期,但这将确保新租约是短暂的。现有租约的到期时间为 32 天。

/usr/local/bin/vault 租约撤销 -force -prefix auth/userpass/login/"$line"/ >> output_lease_revoke.log

日志文件的输出中没有错误消息。此外,Vault Admin UI 现在在执行撤销租约或强制撤销租约时显示错误。

标签: amazon-s3hashicorp-vault

解决方案


推荐阅读