Блок конфигурации 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. Аутентификация
Значения, связанные с аутентификацией, должны быть предоставлены либо как переменные окружения, либо как параметры конфигурации.
|
Хотя конфигурационный файл позволяет передавать |
Токен StarVault, используемый для аутентификации, должен иметь следующие разрешения на транзитном ключе:
path "<mount path>/encrypt/<key name>" {
capabilities = ["update"]
}
path "<mount path>/decrypt/<key name>" {
capabilities = ["update"]
}
Примечания для используемого токена:
-
возможно должен быть свободный токен, в противном случае, когда срок действия родительского токена истечет или он будет отозван, механизм запечатывания перестанет работать.
-
подумайте о том, чтобы сделать его периодическим токеном и не задавать явным образом максимальное время жизни (TTL), иначе в какой-то момент он перестанет быть возобновляемым.