---
read_when:
    - Вы размещаете OpenClaw для нескольких пользователей или организаций
    - Необходимо выбрать границу изоляции для рабочих нагрузок арендаторов
summary: Размещайте несколько доменов доверия арендаторов, используя по одной изолированной ячейке OpenClaw Gateway для каждого арендатора
title: Мультитенантный хостинг
x-i18n:
    generated_at: "2026-07-13T19:48:42Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 5ffb873c7b9e7e463d932ad35eb009c34218447a051ac065c151ba57dc71b799
    source_path: gateway/multi-tenant-hosting.md
    workflow: 16
---

# Мультитенантный хостинг

Модель безопасности OpenClaw по умолчанию предусматривает одну границу доверия оператора на Gateway, а не изоляцию недоверяющих друг другу арендаторов внутри одного общего Gateway. Поэтому для размещения пользователей или организаций, не имеющих общей границы доверия, необходимо запускать отдельный полноценный экземпляр OpenClaw для каждого арендатора.

`openclaw fleet` называет каждый изолированный экземпляр **ячейкой**. Ячейка — это полноценный Gateway в защищённом контейнере с собственными состоянием, учётными данными, рабочим пространством, учётными записями каналов, токеном и портом хоста, доступным только через loopback-интерфейс.

Fleet является **экспериментальной** функцией: пока интерфейс стабилизируется, её команды, флаги и профиль контейнера могут изменяться между выпусками без периода устаревания.

Fleet тестируется на хостах Linux и macOS. Хосты Windows в настоящее время не тестировались.

## Почему каждому арендатору нужна отдельная ячейка

Аутентифицированный оператор внутри одного Gateway выполняет доверенную роль в плоскости управления. Идентификаторы сеансов определяют маршрутизацию; они не авторизуют одного арендатора по отношению к другому. Песочница агента может уменьшить последствия недоверенного содержимого и выполнения инструментов, но она не превращает общий Gateway в границу авторизации арендаторов.

Используйте отдельную ячейку для каждого арендатора, чтобы у каждого домена доверия были отдельный процесс Gateway, контейнер, постоянное дерево состояния и учётные данные Gateway. Это соответствует [модели безопасности Gateway](/ru/gateway/security): не размещайте взаимно недоверяющих пользователей в одном процессе OpenClaw или под одной учётной записью ОС.

## Архитектура

Fleet CLI — это работающий на стороне хоста диспетчер жизненного цикла. Он регистрирует ячейки в базе данных состояния OpenClaw и поручает локальной среде выполнения Docker или Podman создавать, проверять, запускать, останавливать, заменять и удалять их контейнеры. Удалённые конечные точки среды выполнения отклоняются, поскольку пути привязки Fleet и loopback-URL принадлежат локальному хосту; поддержка удалённых хостов ячеек отложена до появления явного контракта для хранилища и конечных точек. Fleet не проксирует сообщения арендаторов и не добавляет общий путь данных на уровне приложения между ячейками.

Каждая ячейка запускает официальный образ `ghcr.io/openclaw/openclaw` в собственной пользовательской мостовой сети. Раздельные мосты предотвращают прямой обмен трафиком между IP-адресами контейнеров разных ячеек, сохраняя исходящий доступ через NAT для провайдеров и каналов. По умолчанию исходящий трафик не ограничен. Ячейки Podman могут использовать `--network internal`, чтобы блокировать исходящий трафик, сохраняя опубликованный loopback-порт Gateway. Внутренние сети Docker нарушают работу этого опубликованного порта, поэтому Fleet отклоняет такую комбинацию; вместо этого применяйте политику исходящего трафика Docker с помощью правил межсетевого экрана хоста, например цепочки `DOCKER-USER`. Gateway ячейки прослушивает порт `18789` внутри контейнера, а среда выполнения публикует его на хосте только по адресу `127.0.0.1:<allocated-port>`. Когда требуется удалённый доступ, оператор может разместить перед этой loopback-конечной точкой одобренный обратный прокси-сервер, SSH-туннель или tailnet.

Постоянное состояние Gateway берётся из `<state-dir>/fleet/cells/<tenant>/` и монтируется в `/home/node/.openclaw`. Ключи шифрования профилей аутентификации берутся из отдельного пути хоста `<state-dir>/fleet/auth-profile-secrets/<tenant>/` и монтируются в `/home/node/.config/openclaw`, что соответствует официальной [схеме постоянного хранения Docker](/ru/install/docker#storage-and-persistence). Ключ не находится внутри обычной точки монтирования состояния. Учётные записи каналов каждого арендатора обрабатываются внутри принадлежащей ему ячейки, поэтому в MVP Fleet нет общей учётной записи канала или общего маршрутизатора входящих сообщений.

Официальный образ по умолчанию использует непривилегированного пользователя `node` с UID 1000. Fleet использует совместимые с хостом сопоставления пользователей, чтобы приватные точки монтирования с привязкой оставались доступными для записи: Podman использует `keep-id`, привилегированный Docker использует идентификатор вызвавшего его непривилегированного пользователя, а непривилегированный Docker сопоставляет пользователя root контейнера с непривилегированным пользователем демона. Когда на хосте активен SELinux, Docker и Podman применяют приватную перемаркировку `:Z`. Профиль контейнера не использует привилегированные функции хоста и подходит для непривилегированной работы, однако непривилегированный режим является выбором и предварительным требованием среды выполнения хоста, а не функцией, которую Fleet включает автоматически.

## Граница доверия

Мультитенантность защищает арендаторов друг от друга. Оператор Fleet и хост считаются доверенными для каждого арендатора. Устойчивость к компрометации хоста не является целью.

Это означает, что администратор хоста может проверять конфигурацию и окружение контейнеров, читать смонтированные данные ячеек, заменять образы или входить в контейнеры. Токены Gateway и значения, переданные с помощью `--env`, видны администратору при проверке через Docker или Podman. Поэтому используйте соответствующие средства защиты хоста, политики административного доступа, мониторинг, резервное копирование и одобренный менеджер секретов.

Базовый профиль предотвращает случайное открытие сетевого доступа по шаблону и устраняет распространённые механизмы повышения привилегий контейнера, но не делает недоверенный хост безопасным.

## Уровни изоляции

Выберите границу, соответствующую размещаемым арендаторам:

1. **Базовый защищённый контейнер.** Fleet удаляет все возможности Linux, включает `no-new-privileges`, применяет ограничения PID, памяти, ЦП и необязательные ограничения дискового пространства записываемого слоя, использует отдельные постоянные точки монтирования и отдельные сети для каждой ячейки, а также публикует порт только на loopback-интерфейсе хоста. Мостовая сеть не ограничивает исходящий трафик; если ячейка не должна инициировать исходящие соединения, используйте `--network internal` в Podman или политику межсетевого экрана хоста для Docker. Это профиль MVP для арендаторов, доверяющих оператору и хосту.
2. **Усиленная изоляция контейнеров или виртуальных машин.** Для рабочих нагрузок повышенного риска настройте Docker или Podman на использование среды выполнения OCI с усиленной изоляцией, например gVisor или Kata Containers, либо размещайте ячейки в микровиртуальных машинах. Это конфигурация среды выполнения или инфраструктуры; параметр Fleet `--runtime docker|podman` выбирает CLI контейнеров, а не серверную среду изоляции OCI. См. документацию Docker об [альтернативных средах выполнения контейнеров](https://docs.docker.com/engine/daemon/alternative-runtimes/) и [руководство по среде выполнения Docker в виртуальной машине](/ru/install/docker-vm-runtime).
3. **Отдельные машины для враждебных арендаторов.** Не размещайте враждебных арендаторов в одном процессе OpenClaw или под одной учётной записью ОС. Если арендаторы не доверяют одному оператору хоста или им нужна более строгая административная граница, используйте отдельные виртуальные или физические хосты с раздельным администрированием сред выполнения.

Ни один уровень этой схемы не изменяет модель доверия приложения OpenClaw: один Gateway остаётся одним доверенным доменом оператора.

## Быстрый старт

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

```bash
openclaw fleet create acme
```

Откройте указанный URL `http://127.0.0.1:<port>` на хосте Fleet, выполните аутентификацию с помощью токена этого арендатора и настройте учётные данные провайдеров и учётные записи каналов внутри ячейки.

Проверьте состояние контейнера и работоспособность Gateway:

```bash
openclaw fleet status acme
```

Выполните обновление с сохранением порта хоста, смонтированных данных, профиля ресурсов, заданного пользователем окружения и токена Gateway:

```bash
openclaw fleet upgrade acme
```

Удалите контейнер и запись реестра, сохранив данные арендатора:

```bash
openclaw fleet rm acme --force
```

Чтобы также удалить постоянные данные арендатора, добавьте `--purge-data`. Для очистки требуется `--force`; эта операция необратима и перед удалением чего-либо проверяет, что разрешённый путь находится в допустимых границах:

```bash
openclaw fleet rm acme --purge-data --force
```

Полный список команд и параметров см. в [справочнике CLI `openclaw fleet`](/cli/fleet).

## Отложено после MVP

В первом выпуске Fleet следующие компоненты намеренно оставлены для последующей разработки:

- Общие учётные записи каналов или общий маршрутизатор входящего трафика
- Облегчённые процессы хоста для каждого арендатора вместо полноценных экземпляров OpenClaw
- Удалённые хосты ячеек под управлением одного диспетчера
- Портал самообслуживания арендаторов, система выставления счетов или интерфейс делегированного администрирования

Этим функциям необходимы явные контракты идентификации, маршрутизации, авторизации и доменов отказа. Их не следует имитировать путём совместного использования одного Gateway или его учётных данных несколькими арендаторами. Они также не относятся к области ответственности Fleet: Fleet остаётся диспетчером жизненного цикла на одном хосте, а управление многоузловыми парками с контролем идентификации должно осуществляться отдельным уровнем плоскости управления над ним.

## Связанные материалы

- [`openclaw fleet`](/cli/fleet)
- [Безопасность Gateway](/ru/gateway/security)
- [Несколько шлюзов](/ru/gateway/multiple-gateways)
- [Docker](/ru/install/docker)
- [Podman](/ru/install/podman)
