Назад к вопросам
Middle+
101
questionbank

Что произойдет, если я обновлю секрет в Vault и воспользуюсь функцией wrap?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

При обновлении секрета в Vault и использовании функции Wrap произойдет следующее:

  1. Создастся новый секрет с обновленным значением внутри Vault.
  2. Будет сгенерирован новый одноразовый токен (Wrapping Token). Этот токен инкапсулирует в себе новый секрет.
  3. Исходный секрет (до обновления) останется неизменным до тех пор, пока не будет деактивирован или удален в соответствии с политиками Vault или явным действием.
  4. При попытке "развернуть" (unwrap) генерированный Wrapping Token с помощью другого Vault клиента, этот клиент получит доступ к новому, обновленному значению секрета.
  5. После успешного "развертывания", Wrapping Token станет недействительным и не сможет быть использован повторно. Это гарантия того, что Wrapped секрет может быть получен только один раз через этот токен.
  6. Wrapped секрет хранится в отдельном хранилище внутри Vault, изолированно от основного хранилища секретов, до момента его развертывания.

Таким образом, функция wrap не меняет процесс обновления секрета, а лишь предоставляет безопасный, одноразовый метод доставки этого обновленного секрета к получателю с помощью Wrapping Token.

Пример команды для обновления секрета с использованием wrap:

# Предполагается, что у вас уже был секрет по пути secret/myapp/config
# Обновляем данные секрета и оборачиваем их в wrapping токен
vault write -wrap-ttl=5m secret/myapp/config \
  username="new_user" \
  password="new_password"

Результат выполнения этой команды будет содержать Wrapping Token, который нужно передать получателю:

// Пример вывода команды выше
{
  "request_id": "...",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": null,
  "wrap_info": {
    "token": "hvs.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", // Этот токен содержит обновленный секрет
    "accessor": "...",
    "ttl": 300, // Время жизни wrapping токена (5 минут)
    "creation_time": "...",
    "wrapped_accessor": "..."
  },
  "auth": null
}

Получатель затем использует этот токен для получения обновленного секрета (unwrap):

# Использование Wrapping Token для получения обновленного секрета
vault unwrap hvs.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Результат unwrap покажет новые данные секрета:

// Пример вывода команды unwrap
{
  "request_id": "...",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "username": "new_user",
    "password": "new_password"
  },
  "wrap_info": null,
  "auth": null
}