Код ваш, доступ — под вашим контролем

Ваш сертификат подписи
остаётся на вашей машине

Один Mac mini выделяется одному пользователю — это не виртуальная машина. Мы чётко разграничиваем физические ресурсы, а вы сами решаете, кто получит доступ к облачной рабочей станции, используя ключи, минимальные права и отдельные резервные копии.

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

Выделенный физический узелПамять и диск не используются другими клиентами
Учётные данные под вашим контролемПриватные ключи и пароли сертификатов не передаются в заявки
Отдельная копия до окончания арендыРабочий диск не заменяет резервную копию
Физическая изоляция

Вся машина ваша — без разделения на части

Desk M4 — выделенный физический Mac mini с чипом M4, 16 ГБ памяти и SSD на 256 ГБ. Пока действует аренда, память и диск этой машины не предоставляются другим клиентам. Графический интерфейс macOS и командная строка доступны полностью, а проектами, кэшем сборки и средой подписи управляете вы.

Задачи других клиентов не влияют на вашу машину

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

Выделенная машина не означает неограниченные ресурсы.

Вы сами управляете средой

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

Среду можно восстановить, важные материалы нужно копировать.

Настройки сети требуют отдельного внимания

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

Машина выделена вам, но открывать все порты не следует.

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

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

Учётная запись в панели управления, пользователь macOS и приватный SSH-ключ — три разных средства доступа. Не используйте пароль от панели как системный пароль. Каждый участник команды должен пользоваться собственным ключом: чтобы отозвать доступ, удалите соответствующий открытый ключ, а не делитесь одним приватным ключом со всеми.

  1. Создайте ключ на своём компьютере

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

    ssh-keygen -t ed25519
  2. Не закрывайте текущий сеанс

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

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  3. Отключите парольный вход после проверки

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

    PubkeyAuthentication yes
    PasswordAuthentication no
    KbdInteractiveAuthentication no
    sudo /usr/sbin/sshd -t
Защита сети

Подключайтесь к экрану через туннель и открывайте только нужные порты

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

Проверьте каждый пункт после получения машины: по одному номеру порта нельзя определить безопасность сервиса
Подключение Рекомендация Что проверить
SSH Оставьте только необходимые способы удалённого входа и отдайте предпочтение аутентификации по ключу. Порт подключения, разрешённых пользователей, отпечаток хоста и доступность подключения из вашей сети.
VNC / общий доступ к экрану Рекомендуется подключаться через SSH-туннель, не открывая доступ напрямую из интернета. Включён ли сервис, какой порт он прослушивает и ограничен ли прямой доступ в соответствии с вашими задачами.
Предпросмотр и отладка По возможности привязывайте сервис к локальному адресу; временно открытые порты закрывайте сразу после использования. Есть ли аутентификация и интерфейсы отладки, не выводятся ли переменные среды или конфиденциальные журналы.
Другие входящие подключения Не включайте сервис без ясной необходимости и не открывайте все порты для диагностики. Проверьте локальный брандмауэр и правила на вышестоящем уровне — недостаточно проверить только один из них.

Пример туннеля: доступ к экрану через SSH

Пример ниже подходит, только если удалённый сервис прослушивает порт 5900. Замените имя пользователя и IP-адрес фактическими данными из панели. Если у сервиса другой порт, измените команду соответственно. Затем подключитесь из локального клиента к адресу 127.0.0.1:15900.

ssh -N -L 127.0.0.1:15900:127.0.0.1:5900 USER@HOST

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

Удаление данных

Перед окончанием аренды сохраните последнюю копию

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

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

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

Не рассчитывайте, что после окончания аренды подключение останется доступным.

После окончания: начнётся очистка

После завершения услуги прежняя пользовательская среда обрабатывается по установленной процедуре: диск стирается и система инициализируется заново. Дополнительный SSD входит в ту же область очистки. Простого удаления папки проекта недостаточно для очистки устройства.

Чтобы уточнить, какие данные входят в очистку, обратитесь через заявку по заказу.

Перед передачей: проверьте результат очистки

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

Конкретные сроки уточняются по условиям услуги и в заявке по заказу.

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

Доступ техподдержки

Сначала обсудите задачу, затем предоставляйте доступ

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

В заявке отдельно укажите, что разрешено проверять, а что — изменять
Ситуация Что согласовать заранее Что можете сделать вы
Не удаётся подключиться Состояние машины, сетевое соединение и необходимые сервисы; переустановку не следует считать действием по умолчанию. Укажите номер заказа, фрагмент ошибки и шаги для её воспроизведения. Отдельно сообщите, разрешена ли перезагрузка.
Диагностика в системе Какие журналы, каталоги и права учётных записей нужно проверить и не прервёт ли это задачи. Перед отправкой удалите конфиденциальные данные из журналов. Для временного доступа ограничьте права и отзовите их после завершения.
Переустановка или работа с диском Целевое устройство, влияние на данные, наличие резервной копии и объём работ. Явно подтвердите разрешение на действия, которые могут привести к потере данных. Не заменяйте согласие расплывчатой просьбой «починить».
Сбой или инцидент безопасности Затронутые точки доступа, необходимые ограничения и требования к сохранению доказательств. Сначала отключите скомпрометированные учётные данные, сохраните необходимые журналы, затем согласуйте дальнейшие шаги восстановления.

Не отправляйте по заявке или электронной почте приватные SSH-ключи, приватные ключи сертификатов, пароли связки ключей или ключи восстановления. Для диагностики сначала предоставьте данные без конфиденциальной информации. Связаться с нами можно только через заявки в панели или по адресу support@macminivps.com.

Что можно сделать самостоятельно

Среду можно восстановить, доступ — отозвать

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

  • Перед включением FileVault проверьте удалённое восстановление

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

  • Храните резервную копию связки ключей отдельно от данных для разблокировки

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

  • Регулярно экспортируйте сертификаты подписи и нужные приватные ключи

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

  • Выдавайте CI только необходимые права

    Используйте для Runner отдельную учётную запись, а права токена ограничьте нужными проектами и действиями. Не выводите переменные среды в журналы. Когда участник команды уходит или задача завершается, отзывайте ненужные открытые ключи и токены.

  • Храните восстанавливаемую копию проекта вне рабочего диска

    Отправляйте код в репозиторий под вашим контролем, а крупные ресурсы и артефакты сборки копируйте отдельно. Записывайте версию Xcode, зависимости и команды сборки. Кэш можно создать заново, а неподтверждённый код и материалы для подписи из кэша не восстановить.

  • Перед окончанием аренды отзовите все внешние разрешения

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

Сначала настройте доступ,
затем переносите задачи сборки

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