#hashicorp-vault
#hashicorp-хранилище
Вопрос:
Мы столкнулись с проблемой извлечения секретов из хранилища Hashicorp. Клиент фактически использует role_id и secret_id для авторизации в хранилище. Мы также используем функцию переноса для secret_id, поэтому, как только secret_id извлекается из хранилища, он упаковывается и должен быть развернут, чтобы получить реальный secret_id. Теперь проблема в том, что токен обертывания, полученный из хранилища, имеет количество использований 1. Это означает, что secret_id можно развернуть только один раз. Когда мы пытаемся 2-й раз развернуть, происходит сбой. И причиной является количество использований для такого сгенерированного токена, которое по умолчанию равно 1.
Key Value
--- -----
accessor LctZYfQyzJVleDb41l7mACu5
creation_time 1603924396
creation_ttl 240h
display_name n/a
entity_id n/a
expire_time 2020-11-07T22:33:16.378745728Z
explicit_max_ttl 240h
id s.ajjvwjfjtTedj7xaeGW1B1WL
issue_time 2020-10-28T22:33:16.378758503Z
meta <nil>
num_uses 1
orphan true
path auth/approle/role/img/secret-id
policies [response-wrapping]
renewable false
ttl 239h58m30s
type service
Это создает для нас много проблем. Есть ли способ увеличить или установить неограниченное количество использования токена переноса?
Спасибо!
Комментарии:
1. Вы можете развернуть его один раз, чтобы получить реальный secret_id, а затем повторно использовать этот secret_id напрямую
2. Наш вариант использования заключается в том, что мы сохраняем токен переноса в файле конфигурации, и при каждом перезапуске приложения он будет считывать файл конфигурации, используйте токен переноса для разворачивания secret_id… Но это невозможно из-за этого ограничения — развернуть можно только один раз. И это делает функциональность переноса бесполезной для нас. Мы не хотим, чтобы приложение полностью заботилось о сохранении secret_id. После перезапуска приложения оно фактически освобождает память, и невозможно secret_id пережить перезапуск приложения в памяти. Есть ли обходной путь для этого? Есть ли возможность установить разницу ‘num_uses’ затем 1?
Ответ №1:
Смысл переноса в том, что его можно развернуть только один раз. Если вам нужен токен, который разрешает доступ к секрету в течение длительного периода, тогда вам нужен «обычный» токен. Итак, создайте политику, которая разрешает доступ только к secret_id
, создайте новый токен с привязкой только к этой политике и сохраните этот токен. Теперь у вас есть маркер, который вы можете использовать для запроса secret_id
секрета из хранилища.