Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Блок конфигурации Seal

Блок конфигурации Seal настраивает тип механизма запечатывания, который используется для дополнительной защиты данных. Например, это может быть решение Cloud KMS для шифрования и дешифрования корневого ключа. Этот блок конфигурации необязателен, и если не настроен, то StarVault будет использовать алгоритм Шамира для криптографического разделения корневого ключа.

1. Конфигурирование

Способ запечатывания можно настроить с помощью блока конфигурации Seal в файле конфигурации StarVault:

seal [NAME] {
  # ...
}
Например:
seal "transit" {
  # ...
}

Для вариантов конфигурации, которые также считывают переменную окружения, блок конфигурации Seal имеет приоритет над значениями в файле конфигурации.

2. Механизм запечатывания Transit

Механизм запечатывания Transit настраивает StarVault на использование Transit Secret Engine (модуль работы с транзитными секретами) в качестве механизма автоматического запечатывания. Механизм запечатывания Transit активируется одним из следующих способов:

  • Блок seal "transit" в файле конфигурации StarVault

  • Переменная окружения VAULT_SEAL_TYPE со значением transit.

2.1. Пример transit

В этом примере показана настройка механизма запечатывания Transit через указание всех требуемых значений в файле конфигурации StarVault:

seal "transit" {
  address            = "https://starvault:8200"
  token              = "s.Qf1s5zigZ4OX6akYjQXJC1jY"
  disable_renewal    = "false"

  // Key configuration
  key_name           = "transit_key_name"
  mount_path         = "transit/"

  // TLS Configuration
  tls_ca_cert        = "/etc/starvault/ca_cert.pem"
  tls_client_cert    = "/etc/starvault/client_cert.pem"
  tls_client_key     = "/etc/starvault/ca_cert.pem"
  tls_server_name    = "starvault"
  tls_skip_verify    = "false"
}

2.2. Параметры transit

Эти параметры применяются к блоку конфигурации seal в файле конфигурации StarVault:

  • address (string: <required>): Полный адрес кластера StarVault. Также можно указать с помощью переменной окружения VAULT_ADDR.

  • token (string: <required>): Токен StarVault, который будет использоваться. Его также можно указать с помощью переменной окружения VAULT_TOKEN.

  • key_name (string: <required>): Транзитный ключ, который будет использоваться для шифрования и дешифрования. Его также можно указать с помощью переменной окружения VAULT_TRANSIT_SEAL_KEY_NAME.

  • mount_path (string: <required>): Путь к точке монтирования модуля работы с транзитными секретами. Его также можно указать с помощью переменной окружения VAULT_TRANSIT_SEAL_MOUNT_PATH.

  • disable_renewal (string: "false"): Параметр отключает автоматическое продление токена в случае, если жизненным циклом токена управляет какой-либо другой механизм вне StarVault, например StarVault Agent. Его также можно указать с помощью переменной окружения VAULT_TRANSIT_SEAL_DISABLE_RENEWAL.

  • tls_ca_cert (string: ""): полный адрес кластера StarVault. Также указывается с помощью переменной окружения VAULT_ADDR.

  • token (string: <required>): токен StarVault, который будет использоваться. Также указывается с помощью переменной окружения VAULT_TOKEN.

  • key_name (string: <required>): транзитный ключ, который будет использоваться для шифрования и дешифрования. Также указывается с помощью переменной окружения VAULT_TRANSIT_SEAL_KEY_NAME.

  • mount_path (string: <required>): путь к точке монтирования модуля работы с транзитными секретами. Также указывается с помощью переменной окружения VAULT_TRANSIT_SEAL_MOUNT_PATH.

  • disable_renewal (string: "false"): параметр отключает автоматическое продление токена в случае, если жизненным циклом токена управляет какой-либо другой механизм вне StarVault, например StarVault Agent. Также указывается с помощью переменной окружения VAULT_TRANSIT_SEAL_DISABLE_RENEWAL.

  • tls_ca_cert (string: ""): параметр указывает путь к файлу сертификата ЦС, используемого для связи с сервером StarVault. Также указывается с помощью переменной окружения VAULT_CACERT.

  • tls_client_cert (string: ""): параметр указывает путь к сертификату клиента для связи с сервером StarVault. Также указывается с помощью переменной окружения VAULT_CLIENT_CERT.

  • tls_client_key (string: ""): параметр указывает путь к закрытому ключу для связи с сервером StarVault. Также указывается с помощью переменной окружения VAULT_CLIENT_KEY.

  • tls_server_name (string: ""): имя, используемое в качестве хоста SNI при подключении к серверу StarVault через TLS. Также указывается с помощью переменной окружения VAULT_TLS_SERVER_NAME.

  • tls_skip_verify (bool: "false"): параметр отключает проверку сертификатов TLS. Использовать этот параметр крайне не рекомендуется, поскольку это снижает безопасность передачи данных на сервер StarVault и с него. Также указывается с помощью переменной окружения STARVAULT_SKIP_VERIFY.

  • disabled (string: ""): установите значение параметра в true, если StarVault мигрирует с конфигурации, где было предусмотрено автоматическое запечатывание. В противном случае установите в значение false.

3. Аутентификация

Значения, связанные с аутентификацией, должны быть предоставлены либо как переменные окружения, либо как параметры конфигурации.

Хотя конфигурационный файл позволяет передавать VAULT_TOKEN как часть параметров печати, настоятельно рекомендуется задавать эти значения через переменные окружения.

Токен StarVault, используемый для аутентификации, должен иметь следующие разрешения на транзитном ключе:

path "<mount path>/encrypt/<key name>" {
  capabilities = ["update"]
}

path "<mount path>/decrypt/<key name>" {
  capabilities = ["update"]
}

Примечания для используемого токена:

  • возможно должен быть свободный токен, в противном случае, когда срок действия родительского токена истечет или он будет отозван, механизм запечатывания перестанет работать.

  • подумайте о том, чтобы сделать его периодическим токеном и не задавать явным образом максимальное время жизни (TTL), иначе в какой-то момент он перестанет быть возобновляемым.

4. Ротация ключей

Этот механизм запечатывания поддерживает ротацию ключей через соответствующие конечные точки в модуле работы с транзитными секретами. См. документацию. Старые ключи нельзя отключать или удалять – они используются для расшифровки старых данных.