Перейти к содержимому

Данные и безопасность Cloud

Подключение к Cloud намеренно узкое: аккаунт Opfield может задать подключённой установке фиксированный набор вопросов, а с Allow remote management — выполнить три действия. Всё остальное остаётся в вашей установке.

  • Opfield открывает одно исходящее соединение WebSocket по HTTPS к https://account.opfield.dev и проходит в нём проверку с учётными данными, полученными при подключении. Входящие порты не открываются, перенаправления в этом соединении Opfield не выполняет.
  • Аккаунт проверяет соединение пингом каждые 25 секунд. Соединение, молчащее 70 секунд, Opfield заменяет новым, а после обрыва переподключается с растущей задержкой: от 1 секунды, удваивая её до 60 секунд.
  • Если у установки несколько реплик приложения, соединение держит одна из них, а остальные показывают его состояние.
  • При подключении Opfield сообщает идентификатор установки (тот, что известен службе лицензирования), имя установки, версию Opfield и то, включено ли удалённое управление. Пока ждёт ответа запрос администратора на клиента входа, Opfield сообщает ещё запрошенный адрес возврата и время запроса. Он также сообщает, что принимает запросы на снятие доступа (см. ниже). При любом изменении этих сведений они отправляются снова.
Запрос Что отвечает Opfield Нужно Allow remote management
Состояние Имя хоста, время работы, версия Opfield, число ядер и загрузка процессора, средняя нагрузка, объём и использование памяти и диска, а также имя, состояние, работоспособность и время запуска каждого собственного контейнера Opfield Нет
Службы Имена собственных контейнеров Opfield Нет
Журналы Последние строки журнала одного из собственных контейнеров Opfield, при необходимости начиная с указанного времени Нет
Обновления Текущая и последняя версии, канал обновлений, доступно ли обновление и идёт ли оно сейчас Нет
Токен ноды Одноразовый токен подключения ноды, срок его действия и команда установки для новой ноды, которую Opfield создаёт так же, как Nodes > Add Node Да
Обновление Запуск обновления Opfield до доступной версии, как в Settings > General Да
Код настройки Новый код первичной настройки и срок его действия; отклоняется, если первичная настройка завершена или в установке есть пользователи Да
Клиент входа Аккаунт передаёт издателя, идентификатор клиента, секрет клиента и адрес возврата. Opfield принимает их, только пока ждёт ответа его запрос от Use Opfield account и только для того же адреса возврата (иначе SSO_CLIENT_NOT_REQUESTED), добавляет провайдер «Opfield account» и включает вход через OIDC Нет
Снятие доступа Аккаунт называет людей, потерявших доступ к установке (удалены из команды, у них снят доступ, установка перешла в другой аккаунт или аккаунт приостановлен), по их идентификаторам аккаунта Opfield. Opfield блокирует их пользователей; см. Доступ снят в аккаунте Opfield. В ответе — какие пользователи заблокированы и для каких идентификаторов здесь нет пользователя Нет

Управляемая установка принимает и клиента входа, которого не запрашивала, — так же, как из файла подготовки: если провайдер «Opfield account» используется, его клиент заменяется, иначе клиент только сохраняется для Use Opfield account. Если после перехода на аккаунт Opfield ни один администратор не смог бы войти, любая установка только сохраняет клиента.

Аккаунт может также заменить секрет выданного им клиента входа — в управляемой установке и в любой установке, которая получила от него клиента; Allow remote management для этого не нужен. Секрет применяется, только пока установка входит через провайдер «Opfield account»; если администратор удалил этот провайдер или заменил его своим SSO, установка отклоняет секрет с ошибкой OPFIELD_ACCOUNT_PROVIDER_MISSING и ничего не меняет, а прежний секрет остаётся действительным. См. Вход через аккаунт Opfield и Вход в управляемую установку. Установка без клиента от аккаунта такой запрос отклоняет.

Сведения берутся из собственной диагностики Opfield: хост в том виде, в каком его видит Opfield (или ограничения его контейнера, если хост не виден), и контейнеры собственного проекта Compose. Для подключения ничего дополнительно не монтируется. Если Opfield работает не в Docker или без доступа к своему сокету Docker, список контейнеров и журналы недоступны, и ответ объясняет причину.

Аккаунт не может читать или изменять ваши ресурсы, конфигурацию, секреты, ноды, рабочие нагрузки, маршруты, базы данных и их журналы: Opfield отвечает только на перечисленные выше запросы и отклоняет любые другие. Единственная настройка, которую аккаунт может изменить, — описанный выше клиент входа, а затронуть он может только пользователей, входивших через аккаунт Opfield: их он может заблокировать, как описано ниже. Одновременно он обрабатывает не больше восьми запросов и отвечает ошибкой, если запрос выполняется дольше 14 секунд.

Когда человек теряет доступ к установке в аккаунте Opfield, аккаунт сообщает об этом установке. Opfield блокирует пользователей, входивших через этот аккаунт Opfield, какой бы поставщик OIDC ни использовала установка сейчас:

  • Их сеансы в браузере завершаются, открытые консоли и живые представления закрываются, как при любой блокировке, а их токены API и доступ OAuth и MCP перестают работать. Токены сохраняются, а не удаляются.
  • В Administration > Users вместо значка Blocked показано Blocked by the Opfield account, а blockedBy пользователя в API и MCP равен opfield_account (admin при блокировке администратором).
  • Когда аккаунт возвращает доступ, следующий вход пользователя через аккаунт Opfield снимает блокировку; это записывается как user.opfield_account_unblock. Блокировку администратором вход не снимает никогда. Unblock user снимает любую блокировку, а Block user у пользователя, заблокированного аккаунтом Opfield, превращает её в блокировку администратором.
  • Последнего активного системного администратора так не блокируют; в ответе аккаунту он указан как оставленный.

Для этого не нужен Allow remote management, а повтор запроса ничего не меняет.

Где Что
База данных Opfield Идентификатор и секрет подключения (секрет зашифрован мастер-ключом, как и другие сохранённые учётные данные), почта и адрес аккаунта, время подключения; переключатель Allow remote management с тем, кто и когда его менял; после отключения со стороны аккаунта — его почта, адрес, время и причина; клиент входа, выданный аккаунтом, если он есть (издатель, идентификатор клиента, адрес возврата и секрет в зашифрованном виде), — он хранится отдельно от OIDC-провайдера для Use Opfield account; ожидающий запрос на такого клиента с адресом возврата и временем
Журнал аудита Opfield Каждое подключение, отключение, изменение переключателя и запрос; см. Журнал аудита
Аккаунт Opfield Код подключения и секрет подключения — только в виде хешей SHA-256, идентификатор, имя и версия установки, время последней связи; клиент входа, выданный им для установки, если он есть

Подключение не меняет лицензию и тариф установки: они продолжают работать через службу лицензирования, как описано на странице Планы и права по тарифу. Другие исходящие соединения Opfield перечислены в разделе Что покидает самостоятельно размещённую установку.

Если Opfield больше не может расшифровать сохранённый секрет — например, после смены мастер-ключа, — он перестаёт подключаться и пишет ошибку в журнал. Подключитесь заново с новым кодом.

У всех записей Cloud тип ресурса cloud-link, а ресурс в журнале аудита называется Opfield account с почтой аккаунта:

Действие Когда записывается
cloud.connect Opfield подключился или не смог подключиться; указан способ: вставленный код или файл подготовки управляемой установки
cloud.disconnect Пользователь Opfield отключил установку; указано, подтвердил ли это аккаунт
cloud.disconnected_by_account Аккаунт отозвал подключение
cloud.remote_management Переключатель Allow remote management включён или выключен
cloud.sso_revoke Аккаунт снял доступ: причина и пользователи, которых он заблокировал, которые уже были заблокированы или оставлены
cloud.request Аккаунт отправил запрос: его тип, названные в нём контейнер, диапазон журнала, имя и тип ноды или версия обновления, успешен ли он и размер ответа
cloud.enroll_file, cloud.managed_sso Шаги первого запуска управляемой установки и входа через аккаунт Opfield: запрос клиента входа, отмена запроса, клиент получен или только сохранён, замена секрета клиента, а при окончании подключения — клиент забыт, провайдер удалён или оставлен; ключи и секреты в записи не попадают

Действия и неудачные запросы всегда записываются отдельно. Одинаковые успешные чтения одного типа и одного контейнера в течение 10 минут после первого не пишутся по одному: первое чтение получает свою запись, а повторы — одну сводную запись с их числом, временем первого и последнего, когда истекут 10 минут, остановится соединение или Opfield завершит работу. Ноды, созданные аккаунтом, записываются с исполнителем cloud-link. См. Tasks, события и аудит.

Ничто в установке не зависит от этого соединения. Opfield продолжает работать, обслуживать трафик и управлять нодами, а сам пытается переподключиться; состояние соединения при этом — reconnecting с последней ошибкой. Через две минуты без соединения аккаунт показывает установку как недоступную и не может ни читать её, ни выполнять действия, пока она не подключится снова.

Если отключить установку, пока аккаунт недоступен, Opfield всё равно забывает подключение и предупреждает, что установку нужно отключить и в аккаунте.

  • Отключено в Opfield: Opfield просит аккаунт отозвать подключение, а затем забывает идентификатор и секрет подключения и переключатель удалённого управления.
  • Отключено или удалено в аккаунте: аккаунт отклоняет соединение, а Opfield перестаёт подключаться, забывает учётные данные и переключатель и показывает Disconnected by the account.
  • Аккаунт сменён: старое подключение сразу заменяется, удалённое управление снова выключено.

Во всех случаях установка, её ресурсы и лицензия не меняются; подключиться снова можно в любой момент с новым кодом. После отключения с любой стороны Opfield также забывает клиента входа от аккаунта и ожидающий запрос на него. Если установка входила через провайдер «Opfield account», Opfield удаляет его и выключает вход через OIDC — кроме случая, когда тогда ни один администратор не смог бы войти: провайдер остаётся, журнал аудита записывает это с предупреждением, а Settings > Authentication > OIDC provider просит дать администратору другой способ входа и удалить провайдер.

Экспорт конфигурации, восстановленный на другом хосте, не подключён ни к какому аккаунту Opfield: подключение исходной установки не переносится, как и клиент входа от аккаунта и ожидающий запрос на него. Если копия нужна в аккаунте, подключите её новым кодом.

Экспорт управляемой установки восстанавливается без входа через аккаунт Opfield, потому что такой вход работает только на адресе облака: вход через OIDC выключается, вход по паролю включается, а владелец получает одноразовую ссылку для установки пароля, действующую 24 часа. Ссылку печатает установщик, а при восстановлении в мастере настройки она показывается на последнем экране. Пользователям, входившим через аккаунт Opfield, нужен другой способ входа. Лицензия остаётся у управляемой установки: копия запускается на Community с новым идентификатором установки.