Перейти к основному содержимому
Версия: 6.2

Управление Keystore через API

API позволяет получать информацию о ключах внутри keystore, добавлять, обновлять и удалять их.

Секреты сохраненных подключений хранилищ записываются в ключи sme.core.system_connections.password.<имя> или sme.core.system_connections.api_key.<имя>. Проверяйте результат записи на узлах: успешный HTTP-код сам по себе не подтверждает, что ключ обновлен на всех узлах.

Если для keystore задан пароль, передайте его в теле запроса. Например:

GET _core/keystore
{
"keystore_password": "MyP@ssw0rd"
}

Чтобы выполнить запрос только на выбранных узлах, используйте параметр nodeid.

В значении можно указать имя сервера, IP-адрес или атрибут. Поддерживаются шаблоны wildcard (подробнее).

Примеры:

Добавить пароль uba.sme.pass всем узлам, имена которых начинаются на smos-m:

POST _core/keystore/uba.sme.pass?nodeid=smos-m*
{
"value" : "UbaPASS"
}

Добавить пароль plugins.security.ssl.transport.external_truststore_password всем узлам с ролью data:

POST _core/keystore/plugins.security.ssl.transport.external_truststore_password?nodeid=data:true
{
"value" : "ExternalTruststorePASS"
}

Добавить ключ можно также через консоль:

curl -XPOST -k -u admin "https://127.0.0.1:9200/_core/keystore/plugins.security.ssl.transport.external_truststore_password?nodeid=data:true" -H "Content-Type: application/json" -d '{"value" : "ExternalTruststorePASS"}'

Добавить пароль jobscheduler.email.pass всем узлам с ролью data:

POST _core/keystore/jobscheduler.email.pass?nodeid=routing_mode:hot
{
"value" : "JobSchedulerPASS"
}

Операции​

Разрешения

Для взаимодействия с ключами внутри keystore, необходимо выдать разрешения кластера. Название разрешения указано в каждой операции.

Получение списка ключей​

Запрос возвращает информацию о размещении ключей на серверах.

Пример:

GET _core/keystore

Разрешение:

cluster:admin/sm/keystore/list

Пример ответа:

{
"HIPMpNAmSuC7JUpBm1T33w": [
"jobscheduler.email.pass",
"keystore.seed",
"uba.sme.pass"
],
"Pd779Sf9RrSYiLrpA4wyxA": ["keystore.seed", "uba.sme.pass"]
}

Добавление ключа​

Запрос позволяет добавить новый ключ.

Название ключей

Доступны названия ключей, которые определены внутри SM Data Storage или в модулях системы Smart Monitor. При добавлении сторонних будет выведена ошибка.

Значение ключа необходимо передать в теле запроса, используя поле value.

Пример:

POST _core/keystore/jobscheduler.email.pass?nodeid=172.16.0.3*
{
"value" : "emailPass"
}

Разрешение:

cluster:admin/sm/keystore/add

Обновление ключа​

Запрос позволяет обновить существующий ключ. Передайте новое значение в теле запроса в поле value, как и при добавлении ключа.

Разрешение:

cluster:admin/sm/keystore/update

Удаление ключа​

Запрос позволяет удалить существующий ключ.

Пример:

DELETE _core/keystore/uba.sme.pass

Разрешение:

cluster:admin/sm/keystore/delete