Настройка S3-хранилищ#
Adapter Exchange поддерживает работу с несколькими S3-хранилищами. Список S3-хранилищ и параметры подключения к ним задаются как стендозависимые параметры, применяемые при инсталляции дистрибутива на стенд. S3-хранилище для почтового ящика задаётся из данного списка администратором в административной панели.
Настройка стендозависимых параметров#
Для настройки списка S3-хранилищ необходимо внести изменения в два конфигурационных файла: mail-files.conf и mail-egress-gateway.istio.all.conf.
mail-files.conf#
В файле mail-files.conf указываются следующие параметры, относящиеся к S3:
mail_files.ose.configmap.data.s3.httpclient.maxConnection- максимальное количество соединений для отдельного S3-хранилища;mail_files.ose.configmap.data.s3.httpclient.connectionTimeout- тайм-аут соединения для отдельного S3-хранилища, в миллисекундах;mail_files.ose.configmap.data.s3.httpclient.readTimeout- тайм-аут чтения объектов из отдельного S3-хранилища, в миллисекундах;mail_files.ose.configmap.data.s3.httpclient.writeTimeout- тайм-аут записи объектов в отдельное S3-хранилище, в миллисекундах;mail_files.ose.configmap.data.s3.write.prefix- настройка префиксов, добавляемых к названиям файлов, записываемых в S3-хранилище. Задаётся отдельно для почтового ящика. Данный параметр опционален.Пример заполнения:
mail_files.ose.configmap.data.s3.write.prefix={"test1@sber.ru": "cephKeyPrefix1/","test2@sber.ru": "cephKeyPrefix2/"}mail_files.ose.configmap.data.s3.storages- список S3-хранилищ и настроек для подключения к ним. Настройки каждого S3-хранилища отделяются точкой с запятой, каждый параметр в настройках отделяется запятой.При инсталляции дистрибутива к данной строке применяется функция
splitдля парсинга параметров, поэтому между разделителями (; и ,) не должно быть пробелов, иначе пробел станет частью параметра.Для каждого S3-хранилища указываются следующие 8 параметров строго в заданном порядке:
alias S3-хранилища. Можно задать любое значение. Запрещено использовать символ точки и двоеточия;
хост S3-хранилища;
порт S3-хранилища;
регион S3-хранилища;
URL-схема подключения к S3-хранилищу. Т.к. для всех S3-хранилищ терминация трафика происходит на Egress, укажите
http;базовый путь, относительно которого строится URL для подключения к S3-хранилищу.
Пример: пускай есть S3-хранилище по хосту
s3-host, в котором есть бакетbucket-1с файломfile1.txt. Если базовый путь задан как/some-path, то Adapter Exchange будет подключаться к S3-хранилищу по следующему URL:http://s3-host/some-path/bucket-1/file1.txt.Данный параметр опционален. Если данный параметр не указан, применится значение по умолчанию -
/(корневой путь);название ключа в секрете, где хранится
access keyдля данного S3-хранилища;название ключа в секрете, где хранится
secret keyдля данного S3-хранилища.
Пример заполнения данного параметра для двух S3-хранилищ:
mail_files.ose.configmap.data.s3.storages=vm-test-sy-docker-143,vm-test-sy-docker-143.vdc11.sy.dev.sbt,8000,us-east-1,http,/,S3_VM_TEST_SY_DOCKER_143_ACCESS_KEY,S3_VM_TEST_SY_DOCKER_143_SECRET_KEY;vm-test-sy-docker-142,vm-test-sy-docker-142.vdc11.sy.dev.sbt,8000,us-east-1,http,/,S3_VM_TEST_SY_DOCKER_142_ACCESS_KEY,S3_VM_TEST_SY_DOCKER_142_SECRET_KEY
В этом файле также необходимо заполнить следующий параметр:
mail_files.ose.hostAliases - список хостов и виртуальных IP, добавляемых в файл /etc/hosts пода и необходимых для корректной маршрутизации в Istio. В качестве значения параметра указываются записи: каждая запись состоит из виртуального IP (нужно придумать любой уникальный внутри сети кластера) и хоста S3-хранилища, отделяемых запятой; отдельная запись отделяется точкой с запятой.
Пример заполнения:
mail_files.ose.hostAliases=***.***.***.***,vm-test-sy-docker-143.vdc11.sy.dev.sbt;***.***.***.***,vm-test-sy-docker-142.vdc11.sy.dev.sbt
mail-egress-gateway.istio.all.conf#
В данный файл вносятся параметры, необходимые для настройки маршрутизации трафика к S3-хранилищам в Istio.
Необходимо задать следующий параметр:
mail_egress_gateway.ose.istio.egress.s3.storages - список S3-хранилищ и настроек организации подключения к ним.
Настройки каждого S3-хранилища отделяются точкой с запятой, каждый параметр в настройках отделяется запятой.
При инсталляции дистрибутива к данной строке применяется функция split для парсинга параметров, поэтому между разделителями (; и ,) не должно быть пробелов, иначе пробел станет частью параметра.
Для каждого S3-хранилища указываются следующие 9 параметров строго в заданном порядке:
alias S3-хранилища - можно задать любое значение. Запрещено использовать символ точки и двоеточия. Alias должен быть уникальным среди Istio-настроек других S3-хранилищ. При инсталляции дистрибутива поверх старой версии запрещено менять alias, т.к. в таком случае Istio-правила могут продублироваться;
хост S3-хранилища;
виртуальный IP-адрес (нужно придумать любой уникальный внутри сети кластера);
порт Egress, по которому происходит маршрутизация. Должен быть уникальным среди Istio-настроек других внешних хостов;
порт S3-хранилища;
pkiEngine, используемый для получения TLS-сертификатов. Можно оставить как пустое значение;
флаг, нужно ли получать цепочку сертификатов из key-value SecMan. Задаётся значение
trueилиfalse;alias сертификата - названия файлов, использующихся при TLS, которые монтируются на Egress. Должен быть уникальным среди Istio-настроек других внешних хостов;
Common Name сертификата, получаемого с помощью pkiEngine.
Пример заполнения для двух S3-хранилищ:
mail_egress_gateway.ose.istio.egress.s3.storages=ceph-1,vm-test-sy-docker-143.vdc11.sy.dev.sbt,***.***.***.***,2700,8000,DEV_DZO/PKI/fetch/role-ga-secman-mail,false,ceph-1,ceph-client;ceph-2,vm-test-sy-docker-142.vdc11.sy.dev.sbt,***.***.***.***,2701,8000,DEV_DZO/PKI/fetch/role-ga-secman-mail,false,ceph-2,ceph-client
Выбор нужного S3-хранилища для почтового ящика в административной панели#
Для выбора S3-хранилища необходимо зайти в настройки почтового ящика, включить галочку Отправка с вложениями и выбрать из выпадающего списка нужное S3-хранилище.
Если S3-хранилище отсутствует в выпадающем списке, его можно добавить. Для этого нужно выбрать Создать новую запись и указать URL для подключения. В URL указывается схема подключения (http или https), alias S3-хранилища, порт (опционально) и название бакета.
Примечание: после смены S3-хранилища у почтового ящика необходимо, чтобы с почтового ящика в течение нескольких секунд не отправлялись письма. Это нужно для того, чтобы старая настройка S3-хранилища очистилась из кэша.