HashiCorp Vault и KMS-заменитель
Для реализации механизма защиты данных требуется наличие установленного и интегрированного решения Key/Secret Management System. В СУБД Pangolin реализована интеграция с KMS HashiCorp Vault, который используется в качестве защищенного хранилища ключей засекречивания и настроек, а также как система управления ключами.
HashiCorp Vault — это инструмент с открытым исходным кодом, который обеспечивает безопасный и надежный способ хранения и распространения секретов, таких как ключи API, токены доступа и пароли.
Также был разработан плагин-заменитель KMS, реализованный в виде библиотеки libkms_substitute_plugin.so
.
Ключи засекречивания и мастер-ключ
Ключи засекречивания организованы в двухуровневую иерархию:
- мастер-ключ регулярно изменяется и используется для засекречивания ключей второго уровня;
- ключи второго уровня засекречивают объекты базы данных и не подлежат ротации, что позволяет избежать перекодирования данных при обновлении мастер-ключа.
Мастер-ключ
Мастер-ключ устанавливается при первом запуске базы данных (БД), а также может быть изменен сотрудником службы безопасности вручную. Если новый мастер-ключ не задан, он генерируется автоматически.
Мастер-ключ хранится в Hashicorp Vault по пути postgresql/<id кластера>/keys
.
id кластера можно уточнить на сервере:
postgres=# SHOW cluster_name;
cluster_name
--------------
temp_install
(1 row)
Пример структуры хранения ключей в Hashicorp Vault:
actual_master_key
— параметр, содержащий имя параметра с актуальным мастер-ключом;master_key_value_<timestamp>
— значение мастер-ключа, где<timestamp>
— дата и время в форматеГГГГММДД_ЧЧммСС
;wal_key
— параметр, содержащий ключ засекречивания WAL, общий для серверов БД, между которыми выполняется репликация.
Функции для поддержки ротации и изменения мастер-ключей на стороне БД:
block_rotate_master_key()
— захватывает блокировку изменения мастер-ключа, служит для исключения ротации мастер-ключа TDE на кластере при работе таких утилит, какpg_rewind
;unblock_rotate_master_key()
— снимает блокировку изменения мастер-ключа на кластере;set_master_key(new_master_key TEXT)
— устанавливает новое значение мастер-ключа;rotate_master_key()
— генерирует и устанавливает новое значение мастер-ключа;reencrypt_keys()
— переперекодирует хранилище ключей актуальным мастер-ключом, опираясь на информацию о предыдущем использованном мастер-ключе;restore_keys()
— перекодирует хранилище ключей актуальным мастер-ключом, в том числе поддерживает нахождение мастер-ключа из истории в хранилище секретов, которым был засекречен конкретный ключ объекта. Также используется в восстановлении резервных копий, снятых во время действия предыдущих мастер-ключей.
Ключи второго уровня
Ключи второго уровня засекречивают объекты базы данных и не подлежат ротации, что позволяет избежать перекодирования данных при обновлении мастер-ключа.
Ключи второго уровня хранятся на сервере БД в виде файлов:
-
enc_conn_settings.cfg
(засекреченный):- не входит в резервные копии БД;
- находится в директории
/etc/postgres
, владельцем являетсяkmadmin_pg
; - создается при настройке соединения с KMS через утилиту
setup_kms_credentials
администратором безопасности; - содержит параметры соединения с KMS и засекреченные учетные данные для этого соединения.
-
enc_settings.cfg
:- входит в резервные копии БД;
- хранится в директории
PGDATA/global
, владельцем является пользовательpostgres
; - создан при первом запуске БД;
- указаны метка текущего и предыдущего мастер-ключей засекречивания, а также флаг включения засекречивания WAL (по умолчанию включен).
Пример файла
enc_settings.cfg
:$PGDATA/global/
-rw------- 1 postgres postgres 84 Sep 28 10:59 enc_settings.cfg
$ cat $PGDATA/global/enc_settings.cfg
active_master_key_id = master_key_value_20220412_131233_249
kms_domain = postgresql -
enc_keys.json
:- входит в резервную копию БД;
- также находится в директории
PGDATA/global
, владельцем является пользователь postgres; - содержит ключи засекречивания для табличных пространств, отношений и журналов WAL;
Пример файла
enc_keys.json
:$PGDATA/global/
-rw------- 1 postgres postgres 108916 Sep 28 10:59 enc_keys.json
$ cat $PGDATA/global/enc_keys.json
…
{
"controlBlock" : "{хеш}",
"dataBaseId" : 16403,
"encryptionKey" : "{encryptionKey}",
"objectId" : 16774,
"pgObjectType" : "R"
},
{
"controlBlock" : "{хеш}",
"encryptionKey" : "{encryptionKey}",
"pgObjectType" : "W"
}Содержит следующие данные:
controlBlock
— контрольный блок, состоящий из метки мастер-ключа, oid базы данных объекта, типа объекта и oid самого объекта, засекреченный ключом;dataBaseId
— oid базы данных объекта;encryptionKey
— ключ кодирования объекта в засекреченном виде;objectId
—oid
объекта, которому назначен соответствующий ключ засекречивания. Для WAL должен бытьnull
;pgObjectType
— тип объекта, которому назначен соответствующий ключ засекречивания.W
— WAL,T
— табличное пространство,R
— отношение.
Установка и настройка HashiCorp Vault
-
Cкачайте и распакуйте дистрибутив Vault, перенесите распакованный дистрибутив в директорию /usr/local/bin/:
$ unzip vault_${VAULT_VERSION}_linux_amd64.zip
$ sudo mv ./vault /usr/local/bin/ -
Cоздайте пользователя Vault:
$ sudo useradd --system --home /etc/vault --shell /bin/false vault
-
Cоздайте директории для хранения настроек и данных:
$ sudo mkdir /etc/vault
$ sudo mkdir -p /var/lib/vault/data -
Cоздайте службу Vault (скопируйте файл
vault.service
на сервер в директорию/etc/systemd/system/
):sudo cp ./vault.service /etc/systemd/system/
-
Cоздайте конфигурационный файл Vault (скопируйте файл
config.hcl
на сервер в директорию/etc/vault/
):$ sudo cp ./config.hcl /etc/vault/
-
Создайте директории
/ca
,ca/signedcerts
,ca/private
:$ cd ~/ && mkdir ca && mkdir -p ca/signedcerts && mkdir ca/private && cd ca
-
Создайте индексные данные БД:
$ echo '01' > serial && touch index.txt && echo 'unique_subject = yes' > index.txt.attr
-
Создайте корневой сертификат/ключ, изменив в файле
caconfig.cnf
путь на корректный к директорииca
:- в параметре
dir
в секцииlocal_ca
; - в параметре
default_keyfile
в секцииreq
.
- в параметре
-
Скопируйте файл на сервер в директорию
~/ca
:$ export OPENSSL_CONF=~/ca/caconfig.cnf
$ openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825
Введите пароль "test" -
Сгенерируйте ключ и создайте запрос на серверный сертификат (предварительно добавьте в конец файла
localhost.cnf
строку:IP.2 = HOST
, гдеHOST
- IP-адрес сервера, на котором разворачиваете Vault. Скопируйте файлlocalhost.cnf
в директорию~/ca
):$ export OPENSSL_CONF=~/ca/localhost.cnf
$ openssl req -newkey rsa:2048 -keyout key.pem -keyform PEM -out req.pem -outform PEM
Введите пароль "test" -
Декодируйте ключ:
$ openssl rsa < key.pem > server_key.pem
-
Сгенерируйте и подпишите серверный сертификат:
$ export OPENSSL_CONF=~/ca/caconfig.cnf
$ openssl ca -in req.pem -out server_crt.pem
Введите пароль "test" -
Скопируйте ключ, серверный и корневой сертфиикаты в директорию
/etc/vault/
:$ sudo cp server_key.pem server_crt.pem cacert.pem /etc/vault/
-
Назначьте владельцем пользователя Vault:
$ sudo chown -R vault:vault /etc/vault /var/lib/vault
-
Настройте автодополнени е команд Vault:
$ vault -autocomplete-install
$ complete -C /usr/local/bin/vault vault -
Включите запуск Vault при загрузке системы:
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now vault -
Запустите Vault:
$ sudo systemctl start vault
-
Проинициализируйте Vault:
$ sudo -u vault bash -c 'env VAULT_ADDR=https://127.0.0.1:8200 VAULT_CACERT=/etc/vault/cacert.pem /usr/local/bin/vault operator init > /etc/vault/init.file'
-
Введите 3 ключа (по одному) в хранилище
Unseal
, где {Токен} - используемый корневой токен (см.cat /etc/vault/init.file
):$ sudo -u vault bash -c 'env VAULT_ADDR=https://{IP-адрес}:{Порт} VAULT_TOKEN={Токен} VAULT_CACERT=/etc/vault/cacert.pem /usr/local/bin/vault operator unseal {хеш}
$ sudo -u vault bash -c 'env VAULT_ADDR=https://{IP-адрес}:{Порт} VAULT_TOKEN={Токен} VAULT_CACERT=/etc/vault/cacert.pem /usr/local/bin/vault operator unseal ...'
$ sudo -u vault bash -c 'env VAULT_ADDR=https://{IP-адрес}:{Порт} VAULT_TOKEN={Токен} VAULT_CACERT=/etc/vault/cacert.pem /usr/local/bin/vault operator unseal ...' -
Разрешите аутентификацию по логину/паролю:
$ sudo -u vault bash -c 'env VAULT_ADDR=https://127.0.0.1:8200 VAULT_TOKEN={Токен} VAULT_CACERT=/etc/vault/cacert.pem /usr/local/bin/vault auth enable userpass'
Success! Enabled userpass auth method at: userpass/ -
Установите логин/пароль:
$ sudo -u vault bash -c 'env VAULT_ADDR=https://127.0.0.1:8200 VAULT_TOKEN={Токен} VAULT_CACERT=/etc/vault/cacert.pem /usr/local/bin/vault write auth/userpass/users/adminencryption password=test policies=admins'
Success! Data written to: auth/userpass/users/adminencryption -
Через Web UI выполните аутентификацию пользователя на сервере Vault https://{IP-адрес настройки Vault-сервера}:{Порт}. Для аутентификации используйте токен:
-
Создайте Key-Value-хранилище и разрешите с ним работу, выбрав
Secrets -> Enable new engine (1) -> KV (2) -> Next (3) -> Enable engine (4)
: -
Добавьте разрешения для выполнения операций с Key-Value-хранилищем, выбрав:
Policies (1) -> default (2) -> Edit policy (3)
. Добавьте в конец (4) -> нажмите сохранитьSave
(5):path "kv/*" {
capabilities = ["create", "update", "read", "delete", "list"]
} -
Получите клиентский токен для последующих обращений к Vault:
$ curl --insecure --request POST --data '{"password": "test"}' https://127.0.0.1:8200/v1/auth/userpass/login/adminencryption
{"request_id":"{id}","lease_id":"","renewable":false,"lease_duration":0,"data":null,"wrap_info":null,"warnings":null,"auth":{"client_token":"{token}","policies":["admins","default"],"token_policies":["admins","default"],"metadata":{"username":"adminencryption"},"lease_duration":36000,"renewable":true,"entity_id":"ea854659-6a63-orphan":true}} -
В последующих запросах можно использовать
"client_token":"{Токен}"
. Например:$ curl --insecure --header "X-Vault-Token:{Токен} --request GET https://{IP-адрес}:{Порт}/v1/kv/data/
Добавление параметров в Хранилище секретов
Перед первоначальной настройкой механизма защиты данных от привилегированных пользователей в Pangolin необходимо выполнить добавле ние параметров в Key/Secret Management System на сервере с установленным HashiCorp Vault.
-
Выполните аутентификацию пользователя на сервере Vault
{IP адрес сервера, на котором производится настройка Vault}:{}Порт}
. Для аутентификации используйте клиентский токен: -
Зайдите в Key-Value-хранилище и нажмите
Create secret
(1): -
В поле
Path for this secret
(2) укажите путь к параметруpostgresql/CLUSTER_ID/postgresql/ИМЯ_ПАРАМЕТРА
, где:CLUSTER_ID
- имя кластера (должен быть уникальным для каждого кластера),ИМЯ_ПАРАМЕТРА = secure_config
. -
В поле
Version data
(3, 4) укажите:- имя параметра =
value
; - значение =
off
;
В случае отсутствии указанного значения параметра при старте БД в момент соединения с KMS и считывания параметров возникнет ошибка:
CheckSecureConfig: secure_config parameter does not exist on KMS or has wrong value
. - имя параметра =
-
Сохраните, нажав кнопку
Save
(5):Менять значение параметра можно, нажав
Create new version
справа:Там же можно удалить параметр, нажав на кнопку
Delete secret
: -
Далее добавьте остальные параметры (в соответствии с заданными локальными параметрами в конфигурационном файле
/etc/pangolin-manager/postgres.yml
). Минимальный набор параметров для успешного старта БД:secure_config = off
is_tde_on = on
ssl: on
ssl_cert_file: /pg_ssl/server.crt
ssl_key_file: /pg_ssl/server.key
ssl_ca_file: /pg_ssl/root.crt
pg_ident
password_policies_enable: on
psql_encrypt_password: on
password_encryption: scram-sha-256
enabled_sec_admin_extra_auth_methods: cert
enabled_extra_auth_methods: certНажмите
Create secret
(1):В поле
Version data
(8, 9, 10) укажите:- имя параметра =
value
; - соответствующее значение.
Нажмите кнопку
Save
: - имя параметра =
Защита параметров конфигурации
В рамках функциональности защиты конфигурации реализовано разделение разрешений на некоторые настроечные параметры PostgreSQL.
Настроечные параметры PostgreSQL
Полный список настроечных параметров, управляемых администраторами безопасности через VAULT в режиме защищенного конфигурирования, находится в таблице документа «Конфигурационные параметры».
Инструкция по добавлению параметров в Хранилище приведена в подразделе «Добавление параметров в Хранилище секретов» раздела «HashiCorp Vault и KMS-заменитель» документа «Инструкции и рекомендации».
Ниже будут описаны внесенные изменения в рамках настройки некоторых из них в режиме защищенного конфигурирования.
Параметры, выведенные из хранения в защищенном хранилище/VAULT
Параметры, по умолчанию не хранящиеся в защищенном хранилище (могут при необходимости быть добавлены):
pg_hba.conf
– методы аутентификации и подключения;shared_preload_libraries
,jit_provider
– подгружаемые PostgreSQL библиотеки;local_preload_libraries
,session_preload_libraries
– подгружаемые PostgreSQL библиотеки;dynamic_library_path
– путь к динамически под гружаемым модулям;password_encryption
– метод хеширования паролей пользователей.
Параметры, переданные на сторону защищенного хранилища/VAULT
Параметры, перемещенные в защищенное хранилище:
-
allowed_servers
– список разрешенных к использованию LDAP и RADIUS серверов; -
ssl
– режим работы с SSL; -
encrypt_new_tablespaces
– засекречивание новых табличных пространств;Примечание:
Параметр действует только при запуске Pangolin и включенном TDE:
is_tde_on = on/true
.В случае, если в качестве значения параметра выбрано значение по умолчанию
ddl
, новые табличные пространства кодируются только при ручной установке опцииis_encrypted = on
, по умолчанию засекречивание не применяется.При выборе значения параметра
always
, опцияis_encryped
, передаваемая в команде, игнорируется, так как в этом случае на все таблицы пространства будет применено засекречивание. -
enabled_sec_admin_extra_auth_methods
– список дополнительно разрешенных к использованию методов аутентификации для ролей администраторов безопасности; -
enabled_extra_auth_methods
– список дополнительно разрешенных к использованию методов аутентификации для всех ролей.Примечание:
По умолчанию доступны только методы аутентификации
scram-sha-256
,ldap
,radius
. Для применения изменений, достаточно выполнитьreload (SIGHUP)
Pangolin.Значения параметров применяются при аутентификации, так как это единственный этап, когда можно фактически определить принадлежность аутентифицируемой роли к администраторам безопасности. При использовании не разрешенного для роли метода аутентификации она будет завершена с сообщением:
Authentication method "<метод аутентификации>" isn't allowed for non security admin role "<роль>"
. Соответствующая запись с аналогичным сообщением помещается в лог аудита как ошибка открытия соединения.
Параметры, внесенные под двойное управление
Параметр pg_ident_conf
(карты сопоставления пользователей при авторизации) вносится под двойное управление – то есть прописывается одновременно и в VAULT, и в локальном файле. При этом совпадение порядка слов не требуется.
Внимание!
В случае, если в правилах
pg_ident
заданы регулярные значения, необходимо убедиться в их полном совпадении.
Обновление HashiCorp Vault
Для обновления HashiCorp Vault до версии 1.4.0 необходимо выполнить последовательно следующие действия:
-
Остановить работу vault:
$ sudo systemctl stop vault
-
Скачать дистрибутив vault, распаковать и перенести в директорию
/usr/local/bin/
:$ unzip vault_${VAULT_VERSION}_linux_amd64.zip
$ sudo mv vault /usr/local/bin/ -
Запустить vault:
$ sudo systemctl start vault
Возможные проблемы и их решение при работе HashiCorp Vault
В случае перезагрузки (рестарта) сервера с Vault? либо рестарта сервиса Vault, Хранилище переходит в состояние SEALED
:
Для восстановления:
-
Зайдите на сервер с установленным Vault и выполните команду
cat /etc/vault/init.file
:$ cat /etc/vault/init.file
Unseal Key 1: {hash_unseal_key_1}
Unseal Key 2: {hash_unseal_key_2}
Unseal Key 3: {hash_unseal_key_3}
Unseal Key 4: {hash_unseal_key_4}
Unseal Key 5: {hash_unseal_key_5}
Initial Root Token: {id_root_token}
Vault initialized with 5 key shares and a key threshold of 3. Please securely distribute the key shares printed above. When the Vault is re-sealed, restarted, or stopped, you must supply at least 3 of these keys to unseal it before it can start servicing requests.
Vault does not store the generated master key. Without at least 3 key to reconstruct the master key, Vault will remain permanently sealed!
It is possible to generate new unseal keys, provided you have a quorum of existing unseal keys shares. See "vault operator rekey" for more information. -
Поочередно введите 3 ключа в
Unseal
из списка (Unseal Key 1
,Unseal Key 2
,Unseal Key 3
):
KMS-заменитель
При использовании KMS-заменителя Вместо Хранилища секретов необходимо использовать локальные конфигурационные файлы.
Плагин-заменитель KMS считывает данные для пары ключ-значение из двух файлов. Первый файл /etc/postgres/kms_static_params.cfg
содержит статические параметры, второй файл /etc/postgres/kms_dynamic_params.cfg
– динамические. Файл со статическими параметрами засекречен ключом, генерируемым из параметров сервера. Файл с динамическими параметрами может меняться. При внесении изменений необходимо обеспечить идентичность файлов с динамическими параметрами в кластере.
Если файлы /etc/postgres/kms_static_params.cfg
и /etc/postgres/kms_dynamic_params.cfg
не обнаружены или имеют некорректный формат, система будет считать, что используется реальный KMS, но учетные данные для подключения к нему не найдены.
Ограничения:
- При использовании KMS-заменителя ротация мастер-ключа запрещена.
- Изменение параметр ов кластера, хранящихся в KMS, можно проводить только в выключенном режиме.
- Чтобы инициализация базы данных с подключенным заменителем KMS выполнилась, необходимо, чтобы файлы
/etc/postgres/enc_connection_settings.cfg
,kms_static_params.cfg
иkms_dynamic_params.cfg
либо все присутствовали, либо все отсутствовали. - Если в исходные файлы c настройками KMS вносятся правки, то измененные файлы должны быть скопированы на все узлы кластера и на каждом узле закодированы со статическими параметрами с помощью утилиты засекречивания
encrypt_params_file
. - При включении в кластер нового узла актуальные файлы параметров KMS должны быть таким же образом скопированы на него и засекречены.
Подготовка файлов со статическими и динамическими параметрами
Статические параметры
Файл со статическими параметрами /etc/postgres/kms_static_params.cfg
представляет собой простой текстовый документ, каждая строка которого содержит пару:
<имя ключа (параметра на KMS)> = <значение для данного ключа>
В файл со статическими параметрами должны быть помещены:
- меткa мастер-ключа;
- сгенерированный мастер-ключ;
- сгенерированный ключ засекречивания WAL.
Пример файла со статическими параметрами:
actual_master_key = master_key_value_00000000_000000_000
master_key_value_00000000_000000_000 = {generated_master_key}
wal_key = {generated_wal_key}
Сгенерировать собственный мастер-ключ возможно с помощью утилиты {{ PGHOME }}/bin/generate_encryption_key
.
Файл /etc/postgres/kms_static_params.cfg
помещается на все узлы кластера во время настройки перед запуском утилиты setup_kms_credentials
. С помощью утилиты засекречивания {{ PGHOME }}/bin/encrypt_params_file
подготовленный файл со статическими параметрами необходимо закодировать на каждом узле кластера.
Примечание:
Утилиты генерации ключей
generate_encryption_key
и кодированияencrypt_params_file
расположены в директории{{ PGHOME }}/bin (где {{ PGHOME }}
- директория с бинарными файлами для работы БД, например,/usr/pangolin-5.2.1
).
Динамические параметры
Файл с динамическими параметрами может содержать все параметры, которые могут изменяться администратором безопасности на KMS, то есть в файл можно поместить все настройки, которые могут быть на реальном KMS.
Файл с динамическими параметрами /etc/postgres/kms_dynamic_params.cfg
представляет собой простой текстовый документ, каждая строка которого содержит пару:
<имя ключа (параметра на KMS)> = <значение для данного ключа>
Пример файла с динамическими параметрами:
secure_config = on
is_tde_on = on
pg_ident +=
ssl = on
ssl_cert_file = /pg_ssl/server.crt
ssl_key_file = /pg_ssl/server.key
ssl_ca_file = /pg_ssl/root.crt
password_policies_enable = on
psql_encrypt_password = on
password_encryption = scram-sha-256
enabled_sec_admin_extra_auth_methods = cert
enabled_extra_auth_methods = cert
Подготовка файлов
-
Выполните генерацию мастер-ключа с помощью утилиты
generate_encryption_key
(утилита расположена в директории{{ PGHOME }}/bin
):# вход пользователем kmadmin_pg
$ su - kmadmin_pg
Password:
# генерация мастер-ключа
$ {{ PGHOME }}/bin/generate_encryption_key
Key was generated successfully. Key: {generated_master_key}
# генерация ключа засекречивания для WAL
$ {{ PGHOME }}/bin/generate_encryption_key
Key was generated successfully. Key: {generated_wal_key} -
Создайте файл со статическими параметрами
/etc/postgres/kms_static_params.cfg
(метку мастер-ключа укажите именноmaster_key_value_00000000_000000_000
):# создание файла
$ touch /etc/postgres/kms_static_params.cfg
# добавление сгенерированного на предыдущем шаге мастер-ключа и ключа засекречивания для WAL журналов
$ vim /etc/postgres/kms_static_params.cfg
actual_master_key = master_key_value_00000000_000000_000
master_key_value_00000000_000000_000 = {generated_master_key}
wal_key = {generated_wal_key} -
Создайте файл с динамическими параметрами
/etc/postgres/kms_dynamic_params.cfg
:# создание файла
$ touch /etc/postgres/kms_dynamic_params.cfg
# добавление параметров
$ vim /etc/postgres/kms_dynamic_params.cfg
secure_config = on
is_tde_on = on
pg_ident +=
ssl = on
ssl_cert_file = /pg_ssl/server.crt
ssl_key_file = /pg_ssl/server.key
ssl_ca_file = /pg_ssl/root.crt
password_policies_enable = on
psql_encrypt_password = on
password_encryption = scram-sha-256
enabled_sec_admin_extra_auth_methods = cert
enabled_extra_auth_methods = cert -
Скопируйте подготовленные файлы на Standby-узел:
scp /etc/postgres/kms_*.cfg postgres@{{ replica_ip }}:/etc/postgres
-
Выдайте права
kmadmin_pg
на файлы со статическими и динамическими параметрами (сначала на Active-узле, затем на Standby-узле):chown kmadmin_pg:kmadmin_pg /etc/postgres/kms_static_params.cfg
chown kmadmin_pg:kmadmin_pg /etc/postgres/kms_dynamic_params.cfg -
Выполните вход администратором ИБ:
$ su - kmadmin_pg
-
Закодируйте файл со статическими параметрами (сначала на Active-узле, затем на Standby-узле). В результате должно быть получено сообщение об успешном заксекречивании:
File /etc/postgres/kms_static_params.cfg was encrypted successfully
:$ {{ PGHOME }}/bin/encrypt_params_file
Start to encrypt file: /etc/postgres/kms_static_params.cfg
File /etc/postgres/kms_static_params.cfg was encrypted successfully -
Убедитесь, что файл со статическими параметрами засекречен:
$ cat /etc/postgres/kms_static_params.cfg
Утилита setup_kms_credentials
Описываемая функциональность:
- обеспечивает настройку параметров подключения к Хранилищу секретов;
- упрощает процесс изменения параметров для работы с хранилищем секретов;
- обеспечивает возможность обнаружения ошибок в параметрах подключения к хранилищу секретов на этапе конфигурирования доступа;
- обеспечивает настройку системы для работы с хранилищем сертификатов;
- упрощает использование утилиты в автоматизированных скриптах.
- обеспечивает настройку проверки серверного сертификата хранилища секретов.
Если изменение параметров подключения к хранилищу секретов или сертификатов производится на работающем кластере, то выполните/запустите перечитывание конфигурационных параметров в компонентах кластера. Перезапуск кластера не требуется.
Утилита setup_kms_credentials
позволяет сохранять дополнительные параметры для работы с хранилищем секретов SecMan. Дополнительные параметры имеют значения по умолчанию или расширяют текущие типы данных. Это обеспечивает обратную совместимость формата шифрованного файла /etc/postgres/enc_connection_settings.cfg
(владелец: kmadmin_pg
, группа: kmadmin_pg
, права: -rw-r--r--
). Процесс добавления новых параметров не меняется.