Как удалить токен из vault?
Ответы (1 шт):
Через UI сделать не получилось. Причина не установлена: нет вкладок для этого. Следует отметить, что в UI я заходил через root-token. Возможно, прична в этом.
Для освещения всей проблемы сгенерируем новый root-token, а затем его отзовём.
Важно, во время генерации root-token. Вам обязательно нужен Unseal Key. К сожалению, без него ничего сделать не удастся. Если у Вас его нет, то скорее всего доступ утерян безвозвратно вместе с данными. При условии, что нет других токенов.
Unseal Key
Перед тем, как дать доступ к vault, сразу после старта хранилища, Вы получили json с набором Unseal Key. В этот же момент, Вы указали, какое количество ключей требуется для того, чтобы распечатать хранилище. В дальнейшем, такое же количество ключей Вам будет требоваться для того, чтобы проделывать все действия от имени root.
Логика в этом примерно такая. Получив эти ключи, они раздаются разным людям, без ведома которых нельзя сделать действие от имени root.
Генерация
vault operator generate-root -init
Вы можете получить вот такую ошибку:
Error getting root generation status: Get https://127.0.0.1:8200/v1/sys/generate-root/attempt: dial tcp 127.0.0.1:8200: connect: connection refused
Эта ошибка говорит о том, что vault находится на сервере удалённом, а не на Вашей машине. Для того, чтобы указать vault расположение машины, следует сделать так:
VAULT_ADDR=http://1.2.3.4:5/ vault operator generate-root -init
Вы получите такой вывод:
A One-Time-Password has been generated for you and is shown in the OTP field.
You will need this value to decode the resulting root token, so keep it safe.
Nonce 1592d094-ffb1-9a26-92a1-a9ad5b734cae
Started true
Progress 0/2
Complete false
OTP MXCtP0HIzPmbdtPSDALsknTtHS
OTP Length 26
Запишите OTP. Он потребуется для получения финального токена. Также потребуется Nonce. Он будет доступен на каждо
Затем, будет предложено ввести Unseal Key. После ввода Вы получите запись вроде этой:
Nonce 94021344-dga1-976e-28fe-a8fxs7b74285d
Started true
Progress 1/2
Complete false
говорит она о том, что введен 1 из двух ключей. В Вашем случае количество ключей, необходимых для генерации может быть другим. Необходимо ввести ещё 1. Введём его. Очевидно, он должен быть отличным от текущего. Иначе получим это:
Error posting unseal key: Error making API request.
URL: PUT http://1.2.3.4:5/v1/sys/generate-root/update
Code: 400. Errors:
* given key has already been provided during this generation operation
В случае успеха получим:
Nonce 94021344-dga1-976e-28fe-a8fxs7b74285d
Started true
Progress 2/2
Complete true
Encoded Token AkQEE2gNPAoPHAcaFkE/NiYEXHYKCh09PD4
Для получения финального токена, следует воспользоваться следующей командой:
VAULT_ADDR=http://1.2.3.4:5/ vault operator generate-root -nonce 3a032bcb-cf2a-bb04-4d22-501c26c0d9c5 -otp qGvvvghzOBm6kWMQ3k8N7HAKGy -decode AkQEE2gNPAoPHAcaFkE/NiYEXHYKCh09PD4
Здесь мы используем opt, который получили на 1м шаге, nonce, а также Encoded Token=AkQEE2gNPAoPHAcaFkE/NiYEXHYKCh09PD4 с последнего шага. В результате получим токен, который похож на этот:
s.rI2jsplQN724xV3Umj2jMUQm
Его можно использовать для входа в vault:
Отмена генерации
Если Вам потребовалось прервать процесс генерации, выполните
VAULT_ADDR=http://1.2.3.4:5/ vault operator generate-root -cancel
Отзыв токена
VAULT_ADDR=http://1.2.3.4:5/ VAULT_TOKEN=s.rI2jsplQN724xV3Umj2jMUQm vault token revoke -self
Обсуждение
Во время работы над решением этой проблемы, я активно переписывался с участниками сообщества HashiCorp в телеграме. Там можно найти диалог по фразе:
Привет. Подскажите, как в vault удалить токен? Он был скомпроментирован.
С ним можно ознакомиться. Много деталей есть там.

