Модель безопасности физического узла

Применяйте границы безопасности облачного Mac при каждом подключении

RunnerVPS предоставляет для каждого заказа один выделенный физический узел Apple Silicon. Безопасность зависит не только от выделения устройства, но и от распределения SSH-ключей, использования VNC, передачи секретов сборки, обновления инструментов и вывоза данных до окончания срока аренды.

Границы ресурсов
Один заказ — один физический сервер
Локальное хранилище
Не используется совместно с другими клиентами
Принцип управления
Минимум учетных данных, полная трассируемость действий
Подтверждение безопасной передачи NODE ACCESS / READY
Выделенный узел
01
Привязка к заказу Устройство связано с записью заказа
02
Передача учетных данных Сразу смените их после первого доступа
03
Подключение команды Отдельный ключ для каждого участника
04
Завершение аренды Экспортируйте результаты и удалите данные
Вычислительные ресурсы
Выделенные
Удаленный доступ
SSH / VNC
Проверка записей
Регулярно выполняется пользователем
Источник секретов
Собственный процесс пользователя
Передача — не конец процесса безопасности VERIFY → LIMIT → ROTATE → REMOVE
Обзор модели безопасности

Сначала определите границы выделенного физического сервера

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

Изоляция на уровне устройства

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

ЗАКАЗ ↔ УСТРОЙСТВО Выделенные физические ресурсы

Ответственность за доступ определена

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

Персональная авторизация Своевременный отзыв

Жизненный цикл данных под контролем

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

Планирование до передачи Очистка до завершения
Контроль доступа

Каждое подключение должно иметь отдельную личность

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

01

Один участник — один SSH-ключ

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

Можно отозвать отдельно
02

По умолчанию используйте учетную запись с минимальными правами

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

Меньше риска ошибок
03

Разделяйте пароли и ключи

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

Снижение риска повторного использования
04

Регулярно проверяйте записи удаленных входов

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

Сохраните следы для расследования
Безопасность VNC

Графический интерфейс тоже требует контролируемого подключения

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

A

До подключения

  • Убедитесь, что цель подключения — имя устройства и узла из заказа.
  • Сначала проверьте отпечаток SSH-хоста, затем настройте перенаправление порта.
  • Ограничьте локальные устройства и участников команды, которым разрешено подключение.
B

Во время сеанса

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

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

  • Немедленно отзовите открытый SSH-ключ и доступ этого участника к системной учетной записи.
  • Смените пароли графического интерфейса и токены проекта, которыми пользовались совместно.
  • Проверьте недавние записи удаленных входов и обновите список доступа.
Не используйте общие долгосрочные учетные данные

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

Управление секретами сборки

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

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

Чек-лист передачи секретов в задачу сборки RUN SCOPE: ONE JOB
Сертификат подписи Импортировать в начале задачи Удалить после завершения задачи
Файл подписи Ограничить права файла Не отправлять в репозиторий
Токен доступа Ограничить область проектом Настроить отдельную политику ротации
Переменные окружения Передаются раннером Не выводить в журналы
Результаты сборки Передать в контролируемое хранилище Удалить копии после проверки

Не помещайте в репозиторий кода

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

Не помещайте в журналы сборки

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

Ограничивайте область действия задачей

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

Обновления системы и ПО

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

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

  1. 01

    Зафиксируйте текущую базовую конфигурацию

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

  2. 02

    Проверьте совместимость проекта

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

  3. 03

    Подготовьте путь восстановления

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

  4. 04

    Выберите период с низким риском

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

  5. 05

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

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

Процесс вывоза данных

До окончания аренды заберите все необходимое

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

01 Экспорт

Заберите результаты сборки, данные проекта, журналы и списки конфигурации, которые нужно сохранить.

02 Проверка

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

03 Отзыв

Удалите учетные записи участников, открытые SSH-ключи, токены проекта, сертификаты и материалы подписи.

04 Очистка

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

05 Подтверждение

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

Границы ответственности

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

Сообщение об инциденте безопасности

Предоставьте достаточно данных, чтобы расследование началось с фактов

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

01 Масштаб воздействия

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

02 Хронология инцидента

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

03 Шаги воспроизведения

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

04 Обезличенные доказательства

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

Начните с физического узла с четко определенными границами

Выберите Runner M4 или Runner M4 Plus, срок аренды и узел, а после передачи подключите его по собственным процессам команды для управления ключами и секретами.