Защитите данные проекта

Код — только на вашей машине

Выделенный физический Mac, не виртуальная машина.

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

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

Понимайте границы оборудования

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

Каждый физический узел выделяется одному пользователю: CPU и память не используются совместно с другими клиентами.

Узел целиком в вашем распоряжении

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

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

Ограничьте доступ команды

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

Когда участник покидает проект, удалите его открытый ключ и проверьте, не остались ли активные данные для входа.

Проверьте договорённости с клиентом

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

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

Защитите вход

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

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

  1. Смените временный пароль

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

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

  2. Включите вход по ключу

    Создайте SSH-ключ на своём компьютере и добавьте на удалённом узле только открытый ключ. Закрытый ключ храните локально и защитите паролем.

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

  3. При необходимости отключите VNC

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

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

Отдельно защитите подпись

Храните сертификаты вместе с проектом

Инструменты сборки Flutter, React Native и Unity различаются, но принципы работы с закрытыми ключами и сертификатами одинаковы.

Импортируйте только нужное

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

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

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

Ограничьте права сборки

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

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

Маскировка логов и ограничение доступа — разные меры. Перед отправкой логов проверьте их вручную.

Удалите временные данные доступа

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

Проверьте историю shell, логи, временные каталоги и корзину. Отозовите у издателя или замените токены, которые могли утечь или использовались за пределами разрешённого срока.

Удаление файла не отзывает учётные данные — проверьте оба пункта.

Сохраните копии для передачи

Не откладывайте резервное копирование до конца аренды

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

  1. Сохраните результаты работы

    Проверьте последние коммиты проекта, скрипты сборки, lock-файлы зависимостей, Archive, .ipa и нужные отладочные символы. Отдельно проверьте все незакоммиченные локальные изменения.

    Файлы, созданные только на узле, не попадут в резервную копию автоматически, даже если код уже отправлен в репозиторий.

  2. Проверьте восстановление

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

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

  3. Уточните правила удаления

    Проверьте дату окончания аренды в панели управления и прочитайте условия обработки данных в условиях сервиса. Остановка узла не означает приостановку хранения — не рассчитывайте получить файлы после его остановки.

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

Не смешивайте платёжные данные

Не храните данные карты на рабочей станции

Доступны только два способа оплаты в долларах США. Фактически доступные платёжные шлюзы отображаются в панели управления.

Кредитные карты через Stripe

Поддерживаются Visa / Mastercard / Amex. Сайт не хранит данные карты — не отправляйте в службу поддержки фотографии карты, полный номер или код безопасности.

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

Платёжные данные и файлы проекта на узле хранятся отдельно.

USDT-TRC20: укажите хеш транзакции

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

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

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

Проверьте всё по списку

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

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

  1. Включите FileVault

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

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

  2. Регулярно копируйте проект

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

    Убедитесь, что в копию случайно не попали закрытые ключи или незашифрованные токены. Ограничьте доступ и к самой резервной копии.

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

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

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

Настройте доступ — и приступайте к сборке

Подготовьте правила доступа, резервное копирование и передачу сертификатов, а затем арендуйте облачный Mac.