Конфигурирование модуля Schema Registry#

Schema Registry REST Server#

Параметры конфигурации Schema Registry хранятся в файле /KAFKA_DIR/config/schemaregistry/schema-registry.properties.

Параметры конфигурации SR разделены на три категории в зависимости от степени влияния на производительность:

  • Высокое: изменение параметров значительно влияет на производительность.

  • Среднее: изменение параметров умеренно влияет на производительность.

  • Низкое: изменение параметров слабо влияет на производительность.

Имя

Значение по умолчанию

Описание

Влияние на производительность

schema.registry.rest.mode.mutability

true

Разрешает или запрещает любые изменения

Низкое

schema.registry.rest.config

null

Путь к файлу, где будут сохраняться настройки совместимости и режим subjects

Низкое

spring.kafka.bootstrap-servers

null

Настройка соединения с брокером Kafka для сохранения схем

Среднее

schema.registry.rest.security.enabled

true

Включает Authentication and Authorization для REST Server

Высокое

schema.registry.rest.security.acl.defaults

classpath:default-acl.json

ACL правила по умолчанию

Не влияет

schema.registry.rest.security.auth.defaults

classpath:users.properties

Файл с пользователями и паролями

Не влияет

schema.registry.rest.security.auth.security.encoding.class

ru.sbrf.kafka.security.SimpleTextPasswordDecoder

Имя класса, который зашифровывает пароли; имплементирующий интерфейс ru.sbrf.kafka.security.PasswordDecoder

Низкое

schema.registry.rest.security.auth.security.encoding.salt

ru.sbrf.kafka.security.FileSaltProvider

Имя класса провайдера соли, имплементирующий интерфейс ru.sbrf.kafka.security.SaltProvider

Низкое

schema.registry.rest.security.auth.security.encoding.key

null

Ключ для шифрования

Низкое

schema.registry.rest.security.auth.security.encoding.salt.location

null

Путь к файлу, содержащему salt

Низкое

schema.registry.rest.audit.enabled

true

Включение отправки событий в аудит

Высокое

schema.registry.rest.audit.model.url

null

URL, на который TsAuditProvider будет отправлять модели

Среднее

schema.registry.rest.audit.event.url

null

URL, на который TsAuditProvider будет отправлять события

Среднее

schema.registry.rest.audit.security.encoding.class

null

Имя класса, который зашифровывает пароли; имплементирующий интерфейс ru.sbrf.kafka.security.PasswordDecoder

Среднее

schema.registry.rest.audit.security.encoding.key

null

Ключ для шифрования

Среднее

schema.registry.rest.audit.security.encoding.salt

null

Имя класса провайдера соли, имплементирующий интерфейс ru.sbrf.kafka.security.SaltProvider

Среднее

schema.registry.rest.audit.security.encoding.salt.location

null

Путь к файлу, содержащему salt

Среднее

schema.registry.rest.audit.ssl.truststore.location

null

Путь к truststore

Высокое

schema.registry.rest.audit.ssl.truststore.password

null

Пароль от truststore

Высокое

schema.registry.rest.audit.ssl.keystore.location

null

Путь к keystore

Высокое

schema.registry.rest.audit.ssl.keystore.password

null

Пароль от keystore

Высокое

schema.registry.rest.audit.ssl.cipher.suites

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

Список разрешенных cipher suites

Низкое

schema.registry.rest.audit.ssl.enabled.protocols

TLS1.2 для jdk < 11,
TLS1.2,TLS1.3 для jdk >= 11

Список протоколов, разрешенных для SSL-соединений

Среднее

schema.registry.rest.audit.ssl.keystore.type

"JKS"

Тип keystore

Среднее

schema.registry.rest.audit.ssl.truststore.type

"JKS"

Тип truststore

Среднее

schema.registry.rest.audit.ssl.keymanager.algorithm

"SunX509"

Алгоритм, используемый keymanager manager factory для SSL-подключения

Низкое

schema.registry.rest.audit.ssl.trustmanager.algorithm

"SunX509"

Алгоритм, используемый trust manager factory для SSL-подключения

Низкое

schema.registry.rest.audit.ssl.endpoint.identification.algorithm

"https"

Алгоритм для валидации имени сервер хоста с использованием сертификата сервера

Низкое

schema.registry.rest.schemas.topic.name

"_schemas"

Имя топика для хранения схем

Не влияет

schema.registry.rest.schemas.acl.topic.name

"_schemas_acl"

Имя топика для хранения ACL

Не влияет

schema.registry.rest.import.mode

false

Сервер работает в режиме импорта. В запросе создания схемы разрешено указание версии

Низкое

schema.registry.rest.schemas.custom.checks

false

Включение валидации JSON-схем

Среднее

REST API SSL#

Настраивается стандартным для Spring-boot способом. Инструкция приведена в официальной документации.

Для шифрования/расшифровки паролей к хранилищам сертификатов используйте следующие настройки (хранятся в файле /KAFKA_DIR/config/schemaregistry/schema-registry.properties):

Имя

Значение по умолчанию

Описание

schema.registry.rest.security.encoding.class

null

Дешифрование настроек приложения. Шифрованное значение должно иметь вид ${decrypt:ENCRYPTED_VALUE}. Имя класса, который зашифровывает пароли; имплементирующий интерфейс ru.sbrf.kafka.security.PasswordDecoder.

schema.registry.rest.security.encoding.salt

null

Ключ для шифрования

schema.registry.rest.security.encoding.key

null

Имя класса провайдера соли, имплементирующий интерфейс ru.sbrf.kafka.security.SaltProvider

schema.registry.rest.security.encoding.salt.location

null

Путь к файлу содержащего salt

Если не указана настройка schema.registry.rest.security.encoding.class, значения обрабатываться не будут.

Значение настройки аналогично настройкам Kafka:

schema.registry.rest.security.encoding.class=ru.sbrf.kafka.security.SimpleTextPasswordDecoder
schema.registry.rest.security.encoding.salt=ru.sbrf.kafka.security.FileSaltProvider
schema.registry.rest.security.encoding.key=KEY_1
schema.registry.rest.security.encoding.salt.location=classpath:/salt.txt
simple.encrypted.value=${decrypt:uKLIwVWQXoYgOBcqtN4DXA==} #На старте значение будет дешифровано.