- Вычислительные ресурсы
- Выделенные
- Удаленный доступ
- SSH / VNC
- Проверка записей
- Регулярно выполняется пользователем
- Источник секретов
- Собственный процесс пользователя
Применяйте границы безопасности облачного Mac при каждом подключении
RunnerVPS предоставляет для каждого заказа один выделенный физический узел Apple Silicon. Безопасность зависит не только от выделения устройства, но и от распределения SSH-ключей, использования VNC, передачи секретов сборки, обновления инструментов и вывоза данных до окончания срока аренды.
- Границы ресурсов
- Один заказ — один физический сервер
- Локальное хранилище
- Не используется совместно с другими клиентами
- Принцип управления
- Минимум учетных данных, полная трассируемость действий
Сначала определите границы выделенного физического сервера
RunnerVPS предоставляет выделенный физический узел облачного Mac, а не общую виртуальную машину. Вычислительные ресурсы и локальное хранилище устройства не используются совместно с другими клиентами, однако учетные записи, код, ключи и программные настройки команда должна постоянно контролировать самостоятельно.
Изоляция на уровне устройства
Каждому заказу соответствует отдельный физический сервер. CPU, память и встроенный SSD не используются совместно с другими клиентами, поэтому команда может вести реестр активов, список доступа и записи о передаче для конкретного устройства.
Ответственность за доступ определена
Пользователь решает, кто может входить на устройство, какие учетные записи использовать и когда отзывать ключи. Не позволяйте нескольким людям постоянно пользоваться одним закрытым ключом или паролем и не записывайте данные подключения в документации проекта или журналах автоматизации.
Жизненный цикл данных под контролем
До начала задачи определите, когда код, кэш сборки, материалы подписи и результаты попадут на устройство, как долго будут храниться, каким образом резервироваться и удаляться. Окончание аренды не заменяет резервное копирование.
Каждое подключение должно иметь отдельную личность
До подключения команды определите учетные записи, ключи, права и частоту проверок. Не используйте одну общую учетную запись администратора, пытаясь затем восстановить по переписке, кто что сделал.
Один участник — один SSH-ключ
Зарегистрируйте отдельный открытый ключ для каждого участника, которому нужен доступ к командной строке. Закрытый ключ храните только на контролируемом устройстве участника или в одобренном командой менеджере ключей; не передавайте его по почте, через тикеты или репозиторий кода.
По умолчанию используйте учетную запись с минимальными правами
Для повседневного получения кода, запуска тестов и передачи результатов постоянные максимальные права не нужны. Повышайте привилегии временно и только для конкретных действий, например установки ПО или изменения системных настроек.
Разделяйте пароли и ключи
Для графической учетной записи используйте уникальный надежный пароль, а для SSH отдавайте приоритет аутентификации по ключу. Не используйте пароль устройства в кодохранилище, почте или других системах.
Регулярно проверяйте записи удаленных входов
Проверяйте время входа, источник, учетную запись и неудачные попытки. Если запись не соответствует рабочему времени команды или сети участника, сначала отзовите связанные учетные данные, затем сохраните необходимые журналы и отправьте отчет о безопасности.
Графический интерфейс тоже требует контролируемого подключения
VNC подходит для удаленной работы с графическим интерфейсом macOS, но длительно открытый доступ и общие учетные данные нельзя считать удобным решением. По возможности подключайтесь через контролируемую сеть или SSH-туннель.
До подключения
- Убедитесь, что цель подключения — имя устройства и узла из заказа.
- Сначала проверьте отпечаток SSH-хоста, затем настройте перенаправление порта.
- Ограничьте локальные устройства и участников команды, которым разрешено подключение.
Во время сеанса
- Блокируйте сеанс macOS, отходя от экрана, чтобы подключение не оставалось на доступном для действий рабочем столе.
- Не показывайте пароли, токены и закрытые ключи на общем экране, записи или в журналах.
- Перед передачей конфиденциальных файлов проверьте каталог назначения и права доступа.
После выхода участника из команды
- Немедленно отзовите открытый SSH-ключ и доступ этого участника к системной учетной записи.
- Смените пароли графического интерфейса и токены проекта, которыми пользовались совместно.
- Проверьте недавние записи удаленных входов и обновите список доступа.
Для совместной работы создавайте отдельные способы доступа, которые можно отзывать по отдельности. Общие учетные данные усложняют отзыв доступа, отслеживание действий и расследование инцидентов.
Передавайте секреты во время задачи, а не вместе с кодом
Сертификаты, файлы подписи, токены доступа и переменные окружения должны поступать из собственного процесса управления секретами команды. RunnerVPS предоставляет устройство и базовые возможности подключения, но не заменяет управление учетными данными проекта.
Не помещайте в репозиторий кода
Не отправляйте закрытые ключи, пароли сертификатов, файлы подписи, токены или конфигурационные файлы с секретами ни в одну ветку. Даже после удаления содержимое может сохраниться в истории.
Не помещайте в журналы сборки
Отключите вывод чувствительных значений в командах и удаляйте их из журналов, снимков экрана и отчетов об ошибках. При поиске неисправностей сохраняйте контекст ошибки, но не копируйте полные учетные данные.
Ограничивайте область действия задачей
Выдавайте токену только права, необходимые для текущего репозитория, конвейера и операций. Немедленно выполняйте ротацию после завершения задачи, выхода участника из команды или подозрения на раскрытие.
Сначала проверьте инструменты, затем обновляйте macOS и Xcode
Обновление системы может изменить SDK, инструменты командной строки, симуляторы и поведение подписи. Для узла непрерывной сборки проверка совместимости должна предшествовать изменению рабочей среды.
-
01
Зафиксируйте текущую базовую конфигурацию
Сохраните версии macOS, Xcode, инструментов командной строки, менеджера пакетов, ключевых зависимостей и runner. Запишите минимальную тестовую задачу, которая сейчас проходит, и способ проверки результатов.
-
02
Проверьте совместимость проекта
Сначала проверьте требования проекта, поддержку SDK, фиксацию зависимостей и настройки подписи. Для важных проектов используйте воспроизводимую задачу, проверяющую сборку, модульные тесты, подпись и экспорт результатов.
-
03
Подготовьте путь восстановления
До изменения создайте резервную копию необходимых проекту данных, списка конфигурации и результатов сборки. Убедитесь, что зависимости можно установить заново, а секреты снова передать через собственный процесс команды.
-
04
Выберите период с низким риском
Не обновляйте во время выполняющихся релизных задач и приостановите новые сборки на узле. После обновления повторно проверьте удаленный доступ, брандмауэр, состояние runner и свободное место на диске.
-
05
Проведите приемку минимальной задачей
Сначала запустите контролируемую проверочную задачу, затем восстановите полный конвейер. Если результат отличается от базового, сохраните журналы, версии и шаги воспроизведения перед дальнейшими действиями.
До окончания аренды заберите все необходимое
До окончания аренды экспортируйте результаты, удалите учетные записи и ключи, очистите файлы проекта. Не считайте локальное хранилище единственной резервной копией и не откладывайте очистку до момента, когда доступ к устройству уже невозможен.
Заберите результаты сборки, данные проекта, журналы и списки конфигурации, которые нужно сохранить.
В контролируемом хранилище команды убедитесь, что файлы открываются, контрольные суммы совпадают, а права установлены верно.
Удалите учетные записи участников, открытые SSH-ключи, токены проекта, сертификаты и материалы подписи.
Удалите каталоги проекта, кэш, временные файлы, загрузки и локальные копии результатов.
Проверьте статус аренды в консоли и сохраните необходимые записи о передаче, связанные с заказом.
Пользователь отвечает за экспорт и проверку необходимых данных до окончания аренды. После ее окончания нельзя рассчитывать, что устройство будет доступно для резервного копирования, восстановления файлов проекта или получения неэкспортированных результатов сборки.
Предоставьте достаточно данных, чтобы расследование началось с фактов
При обнаружении необычного входа, возможного раскрытия учетных данных, ошибочного расширения доступа или другой проблемы безопасности сначала отзовите необходимые учетные данные и ограничьте доступ, затем выберите категорию сообщения о безопасности на странице контактов.
Укажите идентификаторы устройства и узла, учетные записи, проекты и возможные типы затронутых данных; не отправляйте пароли, закрытые ключи или полные платежные реквизиты.
Укажите время обнаружения, период аномалии, уже выполненные действия по отзыву или изоляции и последний момент, когда состояние было подтверждено нормальным.
Опишите в фактическом порядке точку входа, действия, ожидаемый и полученный результат. Если проблема воспроизводится нестабильно, укажите частоту и условия срабатывания.
Предоставьте необходимые фрагменты журналов, сообщения об ошибках, время запросов и снимки экрана. Закройте токены, ключи, пароли, содержимое сертификатов и лишние персональные данные.
Начните с физического узла с четко определенными границами
Выберите Runner M4 или Runner M4 Plus, срок аренды и узел, а после передачи подключите его по собственным процессам команды для управления ключами и секретами.