#api #hashicorp-vault #http-error #hashicorp
Вопрос:
Я работаю над системой, управляемой событиями, в которой мы используем транзит хранилища Hashicorp для шифрования данных и используем крипто-разгром для анонимизации данных.
Когда у меня происходит событие анонимизации ресурсов, я не знаю, использовал ли этот ресурс ранее хранилище для шифрования данных (с идентификатором ресурса = идентификатор ключа шифрования хранилища), поэтому я все еще пытаюсь удалить потенциальный ключ шифрования из этого ресурса.
Проблема: в случае, если для этого ресурса никогда не было никакого шифрования (относительный ключ в хранилище не существует), и API возвращает ошибку 400 вместо 404, которую я ожидал:
gt; vault delete transit/keys/BbRgVeomFovY1AMSucydO Error deleting transit/keys/BbRgVeomFovY1AMSucydO: Error making API request. URL: DELETE http://127.0.0.1:1234/v1/transit/keys/BbRgVeomFovY1AMSucydO Code: 400. Errors: * error deleting policy BbRgVeomFovY1AMSucydO: could not delete key; not found
Пс:
- В случае, если ключ существует,
deletetio_allowed=true
применяется к конфигурации ключа. - Я не хочу проверять (например, пытаться прочитать конфигурацию ключа), чтобы узнать, существует ли ключ и следует ли его удалить (проблема с производительностью).
- Я также не хочу полагаться на сообщение об ошибке, чтобы узнать, не был ли найден ключ.
Может ли кто-нибудь объяснить такое поведение, и если это нормально, то каков наилучший обходной путь?