Безопасность облачного Mac

Выделенный сервер — чёткие границы

Каждый физический узел Apple Silicon закреплён за одним арендатором. Это не виртуальная машина: процессор, графический процессор и унифицированная память не делятся с другими арендаторами.

Сначала проверьте изоляцию, доступ и порядок работы с данными, а затем переносите инженерные задачи и сборки.

Уже арендовали узел, но он недоступен? Войдите в консоль и создайте заявку, указав номер заказа и время сбоя.

Доступность и критерии проверки

Понятная цель — без выдуманных данных

Целевой уровень доступности и исторические наблюдения — не одно и то же. Ниже указаны целевое значение и метод расчёта: мы не выдаём цель за фактически измеренный результат.

Целевой уровень доступности в месяц

99.9%

Узлы работают 365 дней в году. Если месячная доступность ниже 99,9%, срок аренды продлевается пропорционально времени недоступности.

Бирюзовая шкала обозначает целевой уровень, а не ежедневные результаты мониторинга.

Данные наблюдений за последние 90 дней

Мы проверяем доступность узла, время начала и окончания сбоя, а также связанные заказы. Поскольку проверяемые ежедневные данные мониторинга здесь не опубликованы, мы не показываем зелёные отметки за каждый день и не утверждаем, что все последние 90 дней прошли без сбоев.

Расчётный период
Доступность рассчитывается помесячно
Период исторической проверки
Записи о сбоях за последние 90 дней
Что потребуется
Номер заказа, временной интервал, ошибка подключения и запись заявки
Порядок решения
Продление аренды после проверки времени недоступности
Запросить проверку доступности

Как рассчитывается доступность и как подать заявку

Месячная доступность рассчитывается так: из общего времени работы сервиса за месяц вычитается подтверждённое время недоступности, а результат делится на общее время работы за этот месяц. В заявке укажите время сбоя и часовой пояс — причину определять не нужно. Сохраните исходный текст ошибки подключения: он поможет проверить ситуацию точнее, чем сообщение «не подключается».

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

Изоляция ресурсов

В аренду сдаётся машина, а не доля общих ресурсов

Выделенный узел исключает конкуренцию за ресурсы между арендаторами. Однако права доступа к проектам, совместную работу и параллельные задачи нужно организовать самостоятельно.

Один компьютер — один арендатор

Заказ включает выделенный физический компьютер, а не виртуальную машину на общем хосте. Другие арендаторы не используют его процессор, графический процессор или унифицированную память и не работают в той же среде macOS.

Граница изоляции: физический узел

Полные возможности без разделения ресурсов

Доступны графический интерфейс и командная строка macOS. Xcode, симуляторы и Metal работают в нативной среде. Несколько запущенных вами задач сборки, тестирования или инференса по-прежнему используют ресурсы одного компьютера.

Параллельная работа: ресурсы одного компьютера

Командная работа — с управлением доступом

Если участники команды по очереди используют узел, настройте системные учётные записи, SSH-ключи и права на каталоги проекта для каждого отдельно. Выделенный узел не означает, что всем участникам нужны права администратора или что можно пользоваться одним закрытым ключом.

Права доступа: только необходимые

При оценке производительности фиксируйте размер проекта, версию Xcode, число параллельных задач и состояние кэша. Выделенный узел исключает конкуренцию с другими арендаторами, но не гарантирует одинаковое время сборки для любой нагрузки.

Что происходит с данными после аренды

Сначала заберите данные, затем верните компьютер

После окончания аренды диск стирается, система устанавливается заново, и только после этого узел передаётся следующему арендатору. Не храните на нём единственную копию данных: резервные копии нужно держать отдельно.

  1. 01

    Экспортируйте данные до окончания аренды

    Сохраните незакоммиченный код, результаты сборок, нужные настройки и ключевой материал в хранилище под вашим контролем. Убедитесь, что резервную копию можно открыть, а проект — заново получить из репозитория. Недостаточно проверить, что команда копирования завершилась без ошибки.

  2. 02

    Отзовите внешние разрешения

    Удалите ненужные регистрации runner, отзовите токены развёртывания и разрешения для репозиториев. Стирание диска удаляет данные с этого компьютера, но не заменяет отзыв учётных данных во внешних системах.

  3. 03

    Сотрите диск и переустановите систему

    По окончании аренды диск стирается, система устанавливается заново, и лишь затем узел передаётся следующему арендатору. Не рассчитывайте восстановить файлы проекта с компьютера после окончания аренды.

Проверьте резервные копии как минимум по трём категориям

Первая — код и крупные файлы: убедитесь, что коммиты Git и объекты больших файлов синхронизированы. Вторая — рабочие результаты: архивы, отчёты о тестировании, журналы и ещё не загруженные результаты сборок. Третья — данные для восстановления среды: файлы фиксации зависимостей, версии инструментов и настройки CI. Восстанавливаемый кэш можно не сохранять целиком; невосстановимые материалы следует экспортировать в первую очередь.

Мы не читаем файлы и данные проектов на узлах арендаторов. Данные учётной записи, заказа и идентификаторы платёжных операций относятся к служебным записям и хранятся отдельно от файлов проектов на узле. Цели сбора данных и ваши права описаны в политике конфиденциальности.

Контроль доступа

Ключи принадлежат вам, доступ — только необходимый

По умолчанию вход выполняется только по SSH-ключу. Данные для подключения и записи о действиях с заказом доступны в консоли после входа; при необходимости данные для подключения можно сбросить.

Перед первым подключением

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

Защитите локальный ключ парольной фразой. Не добавляйте закрытый ключ в репозиторий, журналы сборки или заявки и не передавайте одну копию ключа нескольким участникам.

При смене участников или задач

Когда участник покидает проект, удалите его открытый ключ и больше не нужные права учётной записи. Для CI используйте отдельную служебную учётную запись и токены; разграничьте доступ к репозиториям, сборке и развёртыванию.

Открывайте только необходимые порты. После сброса данных для подключения проверьте старые клиенты, скрипты автоматизации и runner: возможно, они всё ещё используют прежние настройки. Это поможет не спутать повторяющиеся ошибки подключения с настоящим сбоем.

Для диагностики не нужны секреты

В заявку можно включить отпечаток открытого ключа, версию клиента, текст ошибки и фрагмент конфигурации без секретных данных. Не отправляйте пароли, закрытые SSH-ключи, полные токены доступа или переменные окружения с секретами. Если для диагностики нужно временно предоставить доступ, заранее согласуйте в заявке его границы и способ отзыва.

Обработка платёжных данных

Сверяем транзакции, не собираем номера карт

Все заказы оплачиваются в долларах США (USD); доступны только два указанных ниже способа оплаты. Фактическая доступность платёжного шлюза определяется ответом серверного интерфейса.

Visa / Mastercard / Amex

Платежи банковскими картами обрабатывает Stripe; мы не храним номера карт. Для сверки заказа используются идентификатор транзакции и статус платежа. Не отправляйте полный номер карты или код безопасности по электронной почте или в заявке.

Если платёж не прошёл или его статус отображается неверно, укажите номер заказа, время, сумму и текст ошибки на странице. Перед отправкой снимка экрана скройте личные данные. Не оплачивайте заказ повторно для проверки статуса.

Оплата картой: Stripe

USDT-TRC20

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

Если после перевода статус заказа не обновился, сохраните хеш транзакции и номер заказа, а затем отправьте заявку на проверку. Мы не обещаем зачисление в течение фиксированного числа минут; снимок экрана не заменяет запись транзакции.

Проверка в блокчейне: хеш транзакции

Файлы на узле, данные учётной записи и идентификаторы платёжных операций — разные категории данных. К обращению по оплате прикладывайте только сведения, относящиеся к заказу; не загружайте вместе с ними архивы проектов или материалы для подписи.

Уязвимости и инциденты безопасности

Опишите, как воспроизвести проблему, — мы разберём её по записи

Отправляйте сообщения об угрозах безопасности на support@xcodenode.com. Если возникла проблема с узлом по существующему заказу, войдите в консоль и создайте заявку.

Что включить в сообщение

  1. 01 Область воздействия

    Укажите страницу, заказ или узел и опишите наблюдаемое поведение. Не представляйте предположение об утечке данных как факт, если у вас нет подтверждений.

  2. 02 Шаги для воспроизведения

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

  3. 03 Время и доказательства

    Укажите время и часовой пояс, приложите текст ошибки без чувствительных данных или снимок экрана. Удалите токены, пароли, закрытые ключи и личные данные, сохранив контекст, необходимый для разбора.

  4. 04 Разбор и дальнейшая связь

    Дополняйте сведения по электронной почте или в заявке и следите за обновлениями в той же записи. Сбои, мешающие работе, например недоступность узла, проверяются в первую очередь. О ходе разбирательства сообщим в ответе.

Не прикладывайте к сообщению секреты, которые дают прямой доступ к узлу. Если вы подозреваете утечку учётных данных, сначала отзовите соответствующие токены, удалите неизвестные открытые ключи или сбросьте данные доступа. Затем сохраните необходимые записи и сообщите об инциденте.

Проверьте условия — и приступайте к сборке

Выберите выделенный физический узел и заранее подготовьте ключи, резервные копии и права доступа для команды. Конфигурации, цены за период и дополнительные опции указаны на странице тарифов.