Токен переноса хранилища — количество использований

#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 секрета из хранилища.