Главная, узел Германия, помощь. Связанные материалы: маскирование логов и doctor, разделение администратора и runtime, матрица AWS eu-central-1 через Франкфурт.
- Ограничение 1: сервисный ключ с правами записи в реестр повышает blast-radius при компрометации Mac или утечке переменной окружения в логе CI.
- Скрытая стоимость 2: смешение pull из europe-west3 и зеркала в us-central1 на одном узле без матрицы даёт нестабильный p95 и спорные трассировки при аудите трансграничного трафика.
- Стабильность 3: привязка OpenClaw к localhost без явного туннеля ломает политику «только EU FQDN», если локальный прокси случайно указывает вне allowlist.
Инженерный принцип 2026 года: храните YAML egress, шаблон redact для JSONL и версию openclaw в одном репозитории инфраструктуры; перед merge запускайте openclaw doctor и пробный crane manifest с ключом, который ещё не попал в централизованный секрет-хранилище.
Матрица: RTT через Франкфурт, белый список egress и поля логов
Три оси в одной таблице: задержка к типовым endpoint Artifact Registry в europe-west3, минимальный набор FQDN для pull и метаданных, классы полей, которые нельзя писать в stdout агента без маски.
| Класс сигнала | Ориентир для Mac LeanVPS DE → europe-west3 | Инженерное действие при отклонении |
|---|---|---|
| p95 RTT к oauth2.googleapis.com и artifactregistry.googleapis.com | 6–16 мс внутри EU uplink без лишних VPN | При p95 выше тридцати миллисекунд — проверить AS-path и запретить неявный transit вне EU |
| p95 к storage.googleapis.com для слоёв образа | 8–22 мс при регионе бакета в EU | Если выше сорока миллисекунд — вероятен кросс-регион бакета; перенести артефакт или зафиксировать исключение в матрице |
| Белый список FQDN egress | oauth2.googleapis.com, artifactregistry.googleapis.com, storage.googleapis.com, europe-west3-artifactregistry.gcr.io при миграции формата | Любой новый CDN-хост из лога crane добавлять только через pull-request с диффом allowlist |
| Поля логов для обязательного маскирования | private_key_id, client_email, token, refresh_token, Authorization, полный JSON ключа | Хранить сырой ключ только в Keychain или временном файле с chmod six-zero-zero и удалением после docker login |
| Режим сети для OpenClaw | Когда выбирать | Риск и комплаенс-нотация |
|---|---|---|
| Запрет non-loopback и строгий allowlist | Есть централизованный EU egress-шлюз с явным DNS | Низкий риск случайного обхода; требует дисциплины в merge |
| SSH LocalForward на Mac к корпоративному прокси | Нужен единый выход в интернет через бастион в юрисдикции компании | Фиксируйте порт и владельца сокета в runbook; иначе drift портов ломает агента после ребута |
| Гибрид: loopback прокси плюс явный список upstream | Локальные инструменты не умеют SOCKS напрямую | Жёлтый класс: проверяйте, что upstream не уводит трафик вне таблицы FQDN |
Восемь шагов: OpenClaw, loopback или туннель, ротация ключа и объединённый аудит
- Установите Node LTS и OpenClaw по upstream-документации; зафиксируйте версию в lockfile инфраструктуры и выполните openclaw onboard на отдельной POSIX-учётной записи runtime.
- Сегментируйте админа и агента согласно внутреннему гайду: ключи GCP не должны лежать в домашнем каталоге администратора, который также открывает браузер и почту.
- Выберите стратегию сети: либо политика запрета non-loopback с YAML allowlist, либо SSH LocalForward к корпоративному EU-прокси; задокументируйте порт, systemd или launchd plist и таймауты.
- Создайте сервисный аккаунт только с ролями artifactregistry.reader и узким IAM на конкретный репозиторий europe-west3; выпустите JSON-ключ и сразу занесите fingerprint в журнал ротации.
- Настройте docker или crane для проверочного pull с переменной GOOGLE_APPLICATION_CREDENTIALS; убедитесь, что stdout не содержит base64 ключа и что redactPatterns применяются к JSONL OpenClaw.
- Runbook ротации: сгенерируйте второй ключ, переключите CI на новый секрет, дождитесь двух успешных пайплайнов, отзовите старый ключ в консоли GCP, обновите state в Git и приложите вывод doctor к тикету.
- Объединённый комплаенс-аудит: один merge-request связывает изменения allowlist, redact и версии агента; в описании укажите ссылку на матрицу RTT и дату замеров curl с Mac во Франкфурте.
- Приёмка: неинтерактивный openclaw doctor, тестовый pull образа и просмотр последней сотни строк лога без секретов; при расхождении с матрицей откатите merge и откройте инцидент сети.
Цитируемые параметры и пороги
- Регион реестра зафиксирован как europe-west3; кросс-региональные зеркала требуют отдельной строки в матрице и согласования security.
- connect-timeout три секунды и max-time пятнадцать секунд для curl-замеров с удалённого Mac к каждому FQDN из белого списка.
- Два успешных пайплайна после выдачи нового ключа как минимальный критерий перед отзывом старого JSON.
- chmod six-zero-zero на временный файл ключа и удаление файла сразу после docker login или crane auth login.
- Retention техно-сидов в vault не более семи суток, если политика команды не задаёт иное явным документом.
FAQ: invalid-key и кросс-региональный pull
Свяжите матрицу с закупкой железа: узел Германия и тарифы после стабилизации RTT и ротации ключей.
Закрепите узел Германия под реестр и аудит
После матрицы RTT и runbook ротации оформите аренду Mac во Франкфурте, сравните тарифы и при необходимости откройте тикет в помощи.