Настройки параметров IDM#
Расчет выделяемой памяти для Java машины#
Для корректной работы IDMX каждому контейнеру необходимо указать количество памяти, выделяемое для различных областей (heap, off-heap, metaspace и т.п.) Java-машины. Данные значения задаются через параметр idmx-engine.javaOptsExtra конфигурационного файла values.yaml.
Количество памяти для областей рассчитывается исходя из максимального количества памяти, выделяемого на один контейнер, и указывается в параметре как строка JVM-опций.
Необходимо рассчитать и указать следующие JVM-опции:
-XX:MaxMetaspaceSize— максимальный размер памяти для метаданных JVM.Рассчитывается по формуле
<Максимальное количество RAM контейнера в мегабайтах>/5.-XX:CompressedClassSpaceSize— размер памяти для данных классов Java в JVM.Рассчитывается по формуле
<Максимальный размер памяти для метаданных>/5.-XX:ReservedCodeCacheSize— размер кеша скомпилированного кода.Рассчитывается по формуле
<Максимальный размер памяти для метаданных>/3-XX:MaxDirectMemorySize— размер памяти, непосредственно доступной JVMРассчитывается по формуле
<Максимальный размер памяти для метаданных>/16-Xms— начальный объем оперативной памяти (heap), выделяемый для JVM контейнера.Для вычисления размера heap памяти необходимо вычесть из максимального количества памяти для контейнера размер non-heap памяти. Non-heap память — сумма всех не heap областей памяти плюс некоторое количество памяти для системных и других нужд.
Рассчитывается по следующим формулам:
Non-heap память:
MaxMetaspaceSize + ReservedCodeCacheSize + MaxDirectMemorySize + (<Максимальное количество RAM контейнера в мегабайтах>/4).Heap память:
<Максимальное количество RAM контейнера в мегабайтах> - Non-heap.
-Xmx— максимальный объем heap, выделяемый для JVM. Укажите то же значение, что и для-Xms.-Xss— размер стэка Java потоков. Всегда выставляется в размере 1МБ.
Например:
Если для контейнера IDMX выделено 3 CPU и 6 RAM, параметр idmx-engine.javaOptsExtra необходимо заполнить следующим образом:
idmx-engine.javaOptsExtra = -Xms2895M -Xmx2895M -Xss1M -XX:MaxMetaspaceSize=1228M -XX:CompressedClassSpaceSize=245M -XX:ReservedCodeCacheSize=409M -XX:MaxDirectMemorySize=76M
А для контейнера с 2 CPU и 4 RAM:
idmx-engine.javaOptsExtra = -Xms1929M -Xmx1929M -Xss1M -XX:MaxMetaspaceSize=819M -XX:CompressedClassSpaceSize=163M -XX:ReservedCodeCacheSize=273M -XX:MaxDirectMemorySize=51M
Важно
При использовании нескольких контейнеров (pod), ресурсы, указанные в параметре idmx-engine.javaOptsExtra будут выделяться для каждого пода. Убедитесь, что в пространстве имен для IDMX выделено достаточно ресурсов.
Оптимизация использования памяти контейнера при длительной работе GC#
В случае, если у контейнера idmx-engine возникают проблемы с выделяемыми ресурсами, связанные с излишне долгой работой GC (Garbage Collector), рекомендуется задать следующие параметры:
idmx-engine.javaOptsExtra = -XX:NativeMemoryTracking=summary -XX:+AlwaysPreTouch -server -XX:InitialRAMPercentage=50.0 -XX:+UseContainerSupport -XX:MaxRAMPercentage=70.0 -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ExitOnOutOfMemoryError
Повышение безопасности механизма авторизации#
По умолчанию Platform V IDM хранит привилегии доступа пользователя в текущей сессии. При изменении привилегий, IDM помечает сессию как невалидную, и при следующем запросе в рамках сессии происходит перерасчет привилегий доступа. Такое поведение может привести к ситуациям, когда количество перерасчетов будет перегружать систему и предоставлять возможность воспользоваться устаревшими привилегиями.
Для повышения уровня безопасности механизма авторизации следует добавить следующий блок в systemConfiguration:
<internals>
<sessions>
<invalidateByTime>
<enabled>true</enabled> <!--default - false-->
<timeSec>60</timeSec> <!--default - 60-->
</invalidateByTime>
</sessions>
</internals>
Кластерный режим IDMX#
При включении кластерного режима работы (idmx-engine.cluster.enabled = true), IDMX также необходимо настроить на масштабирование и распределение нагрузки между контейнерами IDMX. Подробнее о настройке смотрите раздел Масштабирование задач документа Руководство пользователя.
Также можно задать количество реплик (контейнеров), которое создается при запуске или установке IDMX. Для этого используется параметр idmx-engine.replicas файла values.yaml.
Например, если требуется создание трех контейнеров (pod) idmx-engine, то укажите значение параметра idmx-engine.replicas = 3. Также можно регулировать количество активных реплик idmx-engine вручную средствами среды оркестрации контейнеризированных приложений.
Важно
Если кластерный режим выключен, IDMX не будет утилизировать больше одного контейнера. Следовательно, устанавливать значение параметра idmx-engine.replicas больше 1 будет бессмысленно и будет излишней тратой ресурсов.
Режим распределенного кластера#
Platform V IDM также поддерживает возможность работы в режиме распределенного кластера (мультиЦОД), когда узлы кластера расположены в разных пространствах имен среды оркестрации контейнеризированных приложений (центрах обработки данных, или ЦОД). В таком случае, в каждом пространстве имен должна быть проведена полная инсталляция IDMX, и проведена дополнительная настройка:
Перед запуском установки включите кластерный режим IDMX, заполнив все требуемые параметры.
Заполните параметры группы
multidcв корневом файле конфигурации следующим образом:enabled—true;cluster— данный блок следует заполнить массивами, содержащими домены и IP-адреса балансировщиков для каждого из узлов IDMX, включая узел, конфигурация которого заполняется.Например, для узлов
idmx1в доменеnamespace1,idmx2в доменеnamespace2иidmx3в доменеnamespace3блокclusterбудет выглядеть следующим образом:cluster: - domain: namespace1-domainname.mycorp balancer: 111.111.111.111 - domain: namespace2-domainname.mycorp balancer: 222.222.222.222 - domain: namespace3-domainname.mycorp balancer: 121.212.121.212maxReplicas.idmxEngine— укажите максимальное количество реплик контейнераidmx-engineдля данного узла кластера.
Получите от администраторов сервиса интеграции и оркестрации микросервисов в облаке (например, Platform V Synapse Service Mesh) сертификаты для установки защищенного соединения между узлами в разных ЦОД и поместите их в систему хранения секретов.
Установите все сконфигурированные узлы IDMX.
При необходимости, сконфигурируйте задачи, которые должны обрабатываться в кластерном режиме, согласно инструкции в разделе Масштабирование задач документа Руководство пользователя.
Защита соединения с БД по SSL и типы Service Mesh#
Для защиты входящего и исходящего трафика и соединений IDMX поддерживает работу с двумя типами Service Mesh — Platform V Synapse Service Mesh (рекомендовано) и Red Hat Service Mesh (опционально). В зависимости от используемой Service Mesh следует выполнять настройку IDMX по разному.
Если используется Red Hat Service Mesh или не используется никакой Service Mesh вообще:
Убедитесь, что БД установлена с поддержкой SSL (согласно документации на используемую СУБД — Platform V Pangolin SE или PostgreSQL);
Получите у администраторов используемой БД следующие комплекты сертификатов:
серверный сертификат и ключ;
сертификат клиента и ключ. Обратите внимание, ключ в данной паре сертификатов должен быть сгенерирован в формате DER;
CA сертификат.
Добавьте серверный сертификат и ключ (при необходимости — также CA сертификат) в безопасное место хранения (рекомендуется Secret Management System), доступное СУБД:
Если используется Secret Management System — поместите сертификаты и ключи под следующими именами в пространство Secret Management System, заведенное для инсталляции IDMX:
postgres_ca— Сертификат CA для системной БД IDMX;postgres_cert— Клиентский сертификат для системной БД IDMX;postgres_pk8— Клиентский ключ для системной БД IDMX в формате DER (смотрите примечание ниже);
Если Secret Management System не используется — поместите сертификаты и ключи в хранилище
certs.jksрепозитория конфигурации Deploy Tools, созданного для IDMX:openssl pkcs12 -export -name postgres_cert -in postgres_cert -inkey postgres_key -out postgres_p12keytool -importkeystore -srckeystore postgres_p12 -srcstoretype pkcs12 -destkeystore certs.jks -deststoretype JKSkeytool -v -importcert -keystore certs.jks -alias postgres_ca -file postgres_ca
Добавьте сертификаты и ключи в конфигурацию СУБД. Для этого:
Внесите изменения в настройки СУБД (файлы
postgresql.confиpg_hba.conf), включив использование SSL и указав пути до сертификатов (подробные инструкции смотрите в документации на используемую СУБД);Сохраните изменения в настройках и перезагрузите СУБД.
Измените следующие параметры в конфигурационных файлах IDMX:
engine.database.mtlsвtrue;engine.database.url— добавьте в данный URL пути до сертификатов, например:
jdbc:postgresql://pangolin.db.mycorp.ru:5432/idmx-1?prepareThreshold=0&ssl=true&sslmode=verify-full&sslcert=/vault/secrets/postgres/postgres_cert&sslkey=/vault/secrets/postgres/postgres_pk8&sslrootcert=/vault/secrets/postgres/postgres_caserviceMesh.typeвrhsm;serviceMesh.enabledвtrue(или, если Service Mesh не используется —false).
Важно
Поскольку для подключения IDMX к БД используется JDBC драйвер, ключ сертификата, указываемого в параметре engine.database.url, должен быть в формате DER, а не PEM, так как иначе драйвер не сможет его распознать, и не сможет подключиться к БД.
Для генерации или перекодировки ключа сертификата в DER можно воспользоваться утилитой OpenSSL и следующей командой:
openssl pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -out postgresql.pk8 -v1 PBE-MD5-DES -nocrypt
Если же используется Platform V Synapse Service Mesh, то:
Убедитесь, что БД установлена с поддержкой SSL (согласно документации на используемую СУБД — Platform V Pangolin SE или PostgreSQL);
Получите у администраторов используемой БД следующие комплекты сертификатов:
серверный сертификат и ключ;
сертификат клиента и ключ. Обратите внимание, ключ в данной паре сертификатов должен быть сгенерирован в формате DER;
CA сертификат.
Добавьте серверный сертификат и ключ (при необходимости — также CA сертификат) в безопасное место хранения (рекомендуется Secret Management System), доступное СУБД:
Если используется Secret Management System — поместите сертификаты и ключи под следующими именами в пространство Secret Management System, заведенное для инсталляции IDMX:
postgres_ca— Сертификат CA для системной БД IDMX;postgres_cert— Клиентский сертификат для системной БД IDMX;postgres_key— Клиентский ключ для системной БД IDMX;
Если Secret Management System не используется — поместите сертификаты и ключи в хранилище
certs.jksрепозитория конфигурации Deploy Tools, созданного для IDMX:openssl pkcs12 -export -name postgres_cert -in postgres_cert -inkey postgres_key -out postgres_p12keytool -importkeystore -srckeystore postgres_p12 -srcstoretype pkcs12 -destkeystore certs.jks -deststoretype JKSkeytool -v -importcert -keystore certs.jks -alias postgres_ca -file postgres_ca
Добавьте сертификаты и ключи в конфигурацию СУБД. Для этого:
Внесите изменения в настройки СУБД (файлы
postgresql.confиpg_hba.conf), включив использование SSL и указав пути до сертификатов (подробные инструкции смотрите в документации на используемую СУБД);Сохраните изменения в настройках и перезагрузите СУБД.
Измените следующие параметры в конфигурационных файлах IDMX:
engine.database.mtlsвtrue;engine.database.url— URL до БД без указания сертификатов и с эксплицитным отключением SSL на стороне БД, например:
jdbc:postgresql://pangolin.db.mycorp.ru:5432/idmx-1?prepareThreshold=0&sslmode=disableserviceMesh.typeвsynapse;serviceMesh.enabledвtrue.
Ключ шифрования IDM#
IDM по умолчанию шифрует данные, считающиеся чувствительными (например, пароли учетных карточек), перед помещением их в системную БД. Также администраторы могут указать другие данные как чувствительные при настройке конфигураций ресурсов.
Для шифрования используется Java библиотека java.security, алгоритм AES с 256-битным ключом. Первый ключ помещается в хранилище ключей idmx-keystore.jceks при первой установке IDMX.
Важно
Пароль любого ключа шифрования всегда должен быть midpoint, иначе IDM не сможет его прочитать из хранилища ключей!
Изменение ключа шифрования#
В зависимости от требований кибербезопасности, ключ шифрования IDM может потребоваться заменять с некоторой регулярностью (например, каждые 3 месяца). Для смены ключа:
Остановите контейнеры с IDMX, для которых требуется сменить ключ.
Загрузите
idmx-keystore.jceksиз системы хранения секретов, которая используется в инсталляции.Сгенерируйте новый ключ с помощью утилиты
keytoolи поместите его в скачанныйidmx-keystore.jceks:keytool -genseckey -alias newkey -keystore /path/to/idmx-keystore.jceks -storetype jceks -storepass changeit -keyalg AES -keysize 256 -keypass midpoint, где:
newkey— alias нового ключа;/path/to/idmx-keystore.jceks— путь к скачанномуidmx-keystore.jceksотносительно директории, которая открыта в командной строке;changeit— пароль от хранилища ключейidmx-keystore.jceks, заданный на шаге 5 установки IDMX.
Не изменяйте остальных значений в команде.
Обратите внимание, пароль для нового ключа шифрования (параметр
-keypass) всегда должен бытьmidpoint, иначе IDMX не сможет воспользоваться этим ключом.Загрузите хранилище ключей с новым ключом шифрования в систему хранения секретов, заменив им старое хранилище.
Сконфигурируйте IDMX на использование нового ключа безопасности как основного ключа. Для этого в ConfigMap или в файле
values.yamlв common репозитории добавьте в параметрidmx-engine.javaOptsExtraзначение-Dmidpoint.keystore.encryptionKeyAlias=newkey, гдеnewkey— alias нового ключа, сгенерированный на шаге 3 данной инструкции, и сохраните изменения.Если изменялись значения в файле
values.yaml— запустите Deploy job с флагомHELM_DEPLOYдля установки IDMX с новыми конфигурационными файлами.Если же изменялись параметры в ConfigMap — просто запустите контейнеры IDMX.
После смены ключа в БД IDMX останется некоторое количество данных, зашифрованных старым ключом, например, паролей. По мере устаревания паролей (согласно требованиям информационной безопасности) пароли будут изменяться пользователями, и, соответственно перешифровываться новым ключом шифрования. После того, как все чувствительные данные будут перешифрованы — старый ключ шифрования можно будет удалить из хранилища ключей.
Экстренная смена ключа шифрования#
В случае, если текущий ключ шифрования был скомпрометирован, процесс постепенной смены шифрования может быть слишком медленным. IDMX поддерживает возможность экстренной замены шифрования файлов:
Обновите ключ шифрования согласно инструкции из раздела Изменение ключа шифрования.
Создайте конфигурацию задачи (task)
list-encryption-keys.xml, импортируйте ее в IDMX и запустите:<task xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3" xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oid="b427848b-ea98-4da1-acba-c16cbb0e9c22"> <name>List encryption keys</name> <extension xmlns:mext="http://midpoint.evolveum.com/xml/ns/public/model/extension-3" xmlns:scext="http://midpoint.evolveum.com/xml/ns/public/model/scripting/extension-3"> <scext:executeScript> <s:action> <s:type>execute-script</s:type> <s:parameter> <s:name>script</s:name> <value xsi:type="c:ScriptExpressionEvaluatorType"> <c:code> import com.evolveum.midpoint.common.crypto.CryptoUtil midpoint.applyDefinition(input) keys = CryptoUtil.getEncryptionKeyNames(input.asPrismObject()) clear = CryptoUtil.containsCleartext(input.asPrismObject()) hashed = CryptoUtil.containsHashedData(input.asPrismObject()) if (!keys.isEmpty() || clear || hashed) { append = "" if (clear) { append += " [CLEARTEXT]" } if (hashed) { append += " [HASHED]" } log.info(sprintf('Object: %-100s uses keys: %s%s', input, keys, append)) } </c:code> </value> </s:parameter> <s:parameter> <s:name>quiet</s:name> <value>true</value> </s:parameter> </s:action> </scext:executeScript> <mext:useRepositoryDirectly>true</mext:useRepositoryDirectly> </extension> <ownerRef oid="00000000-0000-0000-0000-000000000002"/> <executionStatus>runnable</executionStatus> <category>BulkActions</category> <handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/iterative-scripting/handler-3</handlerUri> <recurrence>single</recurrence> </task>Данная задача выведет в лог список объектов, содержащих зашифрованную информацию, и хеш ключа, которым они шифровались. Например:
2018-10-16 18:06:02,665 [MODEL] [midPointScheduler_Worker-4] INFO (com.evolveum.midpoint.expression): Object: systemConfiguration:00000000-0000-0000-0000-000000000001(SystemConfiguration) uses keys: [A5yfWFgnD4euq3CgpdecmZPA/DE=] 2018-10-16 18:06:02,688 [MODEL] [midPointScheduler_Worker-4] INFO (com.evolveum.midpoint.expression): Object: user:00000000-0000-0000-0000-000000000002(administrator) uses keys: [A5yfWFgnD4euq3CgpdecmZPA/DE=] 2018-10-16 18:06:02,972 [MODEL] [midPointScheduler_Worker-4] INFO (com.evolveum.midpoint.expression): Object: resource:62a63be7-a5fb-4168-a389-ef69f8982a85(Basic Localhost OpenDJ) uses keys: [A5yfWFgnD4euq3CgpdecmZPA/DE=] 2018-10-16 18:06:02,981 [MODEL] [midPointScheduler_Worker-4] INFO (com.evolveum.midpoint.expression): Object: user:bce98bd5-f8cd-4a6a-8488-4ae7ad369c0b(ivan) uses keys: [A5yfWFgnD4euq3CgpdecmZPA/DE=] 2018-10-16 18:06:02,984 [MODEL] [midPointScheduler_Worker-4] INFO (com.evolveum.midpoint.expression): Object: user:db052966-ce05-486e-97cf-60deea8e4af6(newuser1) uses keys: [ZxwccL30e4UxM5hSOxYkaYJsUUM=] 2018-10-16 18:06:03,007 [] [midPointScheduler_Worker-4] INFO (com.evolveum.midpoint.repo.common.task.AbstractSearchIterativeTaskHandler): Finished Execute script (Task(id:1539705731263-0-1, name:List encryption keys, oid:b427848b-ea98-4da1-acba-c16cbb0e9c22)). Processed 45 objects in 0 seconds, got 0 errors. Average time for one object: 18.622223 milliseconds (wall clock time average: 20.933332 ms).В примере выше ключ шифрования был уже обновлен, и учетная карточка
newuser1была создана после смены ключа. Это также видно по используемым ключам шифрования в лог-файле — только уnewuser1он отличается.Данная задача предназначена для предварительной проверки зашифрованных объектов, с целью определения тех объектов, которые нужно перешифровать новым ключом.
После того как текущий статус зашифрованных объектов проверен, можно приступить к перешифровке тех, что были зашифрованы скомпрометированным ключом.
Для этого создайте xml-файл с конфигурацией задачи для перешифрования и импортируйте ее в IDMX. Например:
<task xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3" xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3" xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3" oid="172b3d9f-66f8-4731-b023-0e2d8ca5cd6f"> <name>Reencrypt selected objects</name> <extension xmlns:mext="http://midpoint.evolveum.com/xml/ns/public/model/extension-3" xmlns:scext="http://midpoint.evolveum.com/xml/ns/public/model/scripting/extension-3"> <scext:executeScript> <s:pipeline> <s:action> <s:type>apply-definition</s:type> <!-- данный указатель типа требуется, чтобы задача обрабатывала объекты типа ResourceType и ShadowType --> </s:action> <s:action> <s:type>reencrypt</s:type> <!-- Данный блок параметров отвечает за режим dry run — тестовый прогон задачи. Укажите значение false, чтобы отключить режим. --> <s:parameter> <s:name>dryRun</s:name> <value>true</value> </s:parameter> </s:action> </s:pipeline> </scext:executeScript> <mext:useRepositoryDirectly>true</mext:useRepositoryDirectly> <!-- Данный блок отвечает за более узкий выбор объектов для перешифровки. Раскомментируйте его, и укажите требуемые объекты или группы объектов с помощью блоков mext:objectType и mext:objectQuery. --> <!-- <mext:objectType>UserType</mext:objectType> <mext:objectQuery> <q:filter> <q:equal> <q:path>name</q:path> <q:value>administrator</q:value> </q:equal> </q:filter> </mext:objectQuery> --> </extension> <ownerRef oid="00000000-0000-0000-0000-000000000002"/> <executionStatus>runnable</executionStatus> <category>BulkActions</category> <handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/iterative-scripting/handler-3</handlerUri> <recurrence>single</recurrence> </task>Данная задача выполнит перешифровку файлов с помощью ключа шифрования, установленного как основной ключ (смотрите раздел Изменение ключа шифрования). Также можно сконфигурировать некоторые параметры задачи для большего удобства:
Параметр
dryRun, если установлен в значениеtrue, перевевдет задачу в режим тестового прогона. В этом режиме задача после запуска не будет применять изменения к файлам, а лишь проанализирует объекты, зашифрованные не основным ключом и выведет список этих объектов и операции, которые будет к ним применять, в лог-файл.Блоки фильтрации
<mext:objectType>и<mext:objectQuery>позволяют уточнить объекты или группы объектов, которые следует перешифровать. По умолчанию будут перешифрованы все объекты, зашифрованные не основным ключом, либо содержащие cleartext данные.
Рекомендуется сначала запустить задачу перешифровки в режиме тестового прогона, чтобы убедиться, что будет перешифрованы требуемые объекты. Затем создайте новый файл конфигурации (либо измените уже импортированную задачу) с отключенным режимом тестового прогона и запустите ее, чтобы перешифровать файлы.
Опционально можно запустить задачу из шага 2 еще раз, чтобы убедиться, что все требуемые объекты зашифрованы актуальным нескомпрометированным ключом.
Настройка mTLS к Platform V Audit SE#
IDMX поддерживает возможность защиты подключения к Platform V Audit SE при помощи mTLS 1.2. Включение такой защиты возможно только в ситуации, когда Istio отключен и для аудита используется Platform V Audit SE (engine.audit.enabled = true, параметры группы engine.audit заполнены корректно).
Для включения защиты:
Получите ключ и сертификат (
audit_keyиaudit_cert) для Platform V Audit SE. Если секреты уже помещены в хранилище сертификатов, их следует извлечь. Для этого можно воспользоваться командой, подобной примеру ниже:openssl pkcs12 -export -name audit_cert -in ../../DEV_PROFILE/keystoremanips/audit.crt -inkey ../../DEV_PROFILE/keystoremanips/audit.key -out audit_p12Поместите данные ключ и сертификат в
idmx-keystore.jceks(смотрите пункт 5 раздела Последовательность действий). Для этого:Загрузите текущий
idmx-keystore.jceksиз используемого хранилища секретов. В случае, если для хранения секретов используется SecMan, потребуется также конвертировать полученную base64 строку в файл хранилища ключей. Для этого, например, можно воспользоваться утилитойbase64:Сохраните полученную base64 строку как файл расширения .b64, например, следующей командой:
cat keystore.b64 zs7Oz...MDk, гдеkeystore.b64— имя файла;zs7Oz...MDk— полученная из SecMan base64 строка, содержащая хранилище ключей.Конвертируйте .b64 файл в хранилище ключей формата .jceks при помощи утилиты, например,
base64:
base64 --decode -i keystore.b64 -o idmx-keystore.jceksПоместите в данное хранилище ключей полученные ключ и сертификат Platform V Audit SE. Например, при помощи утилиты
keytool:keytool -importkeystore -srckeystore audit_p12 -srcstoretype pkcs12 -destkeystore idmx-keystore.jceks -deststoretype JCEKS -srcstorepass changeit -deststorepass changeit -destkeypass midpoint, где:srckeystore— имя хранилища с полученными сертификатами Audit;destkeystore— имя хранилищая ключей IDMX, полученного на предыдущем шаге;srcstorepassиdeststorepass— пароли от хранилища с сертификатами Audit и хранилища ключей IDMX соответственно;destkeypass— пароль для ключа Audit. Всегда должен иметь значениеmidpoint.
Добавьте в хранилище сертификатов
certs.jksвcommonрепозитории корневой сертификат Audit под алиасомaudit_ca. Например:
keytool -v -importcert -keystore certs.jks -alias audit_ca -file audit_ca4. Загрузите дополненное хранилище ключейidmx-keystore.jceksобратно в хранилище секретов (Kubernetes Secrets или SecMan), заменяя предыдущее.Укажите для параметра
engine.audit.mtls(файлvalues.yaml) значениеtrue.
Монтирование дополнительных файлов в файловую систему контейнеров#
При настройке IDM может возникнуть необходимость смонтировать какие-либо дополнительные файлы в контейнеры IDM. IDM предоставляет возможность монтирования файлов в extraVolumes и extraVolumeMounts через конфигурационные файлы. Для этого следует заполнить свойства extraVolumes и extraVolumeMounts в конфигурации соответствующих модулей.
Например, для добавления конфигурацию Kerberos в контейнер idmx-engine для настройки безопасного доступа следует:
Создать ConfigMap
kerberos-configc krb5.conf.Добавить монтирование в корневой файл конфигурации в секцию соответствующего модуля, к примеру, для
idmx-engine:idmx-engine: enabled: true extraVolumes: - name: kerberos-volume configMap: name: kerberos-config items: - key: krb5.conf path: krb5.conf extraVolumeMounts: - name: kerberos-volume mountPath: /etc/config
Конфигурация выше смонтирует в контейнер idmx-engine конфигурацию krb5.conf по пути <корневой каталог>/etc/config.