Skip to main content

Применение политик для GitHub Actions в вашем предприятии

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

Кто может использовать эту функцию?

Enterprise owners

Для GitHub Actionsчего нужны полисы?

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

Если вы не применяете корпоративные политики, владельцы организаций и пользователи с разрешением «Управление действиями организации» имеют полный контроль над GitHub Actions своими организациями.

Примечание.

GitHub Actions необходимо включить репозитории в организации, чтобы CodeQLcode scanning настройка по умолчанию и GitHub Code Quality рабочие процессы работали. Однако настройка по умолчанию CodeQL не зависит от других code scanning политик (например, ограничения доступа к публичным действиям или повторно используемым рабочим процессам).GitHub Actions

Применение политик

  1. В правом верхнем углу GitHub Enterprise Serverщелкните рисунок профиля, а затем выберите параметры Enterprise.
  2. В верхней части страницы нажмите «Политики».
  3. В разделе " Policies", нажмите кнопку "Действия".
  4. После настройки каждой политики нажмите кнопку "Сохранить".

Дополнительные сведения о каждом разделе страницы "Политики" см. в разделе "Политики".

Политики

В разделе «Политики» вы можете контролировать, какие организации внутри вашего предприятия могут использовать GitHub Actions, с помощью следующих опций:

  • Enable GitHub Actions для всех организаций
  • Поддержка GitHub Actions для конкретных организаций
  • Отключён GitHub Actions для всех организаций

Примечание.

Если вы отключите GitHub Actionsили не включите функцию для одной или нескольких организаций, это блокирует использование code scanning и GitHub Code Quality анализ затронутых организаций.

Контроль доступа к публичным действиям

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

Вы можете применять строгие контроли без определения исключений или дополнительной конфигурации для code scanning и GitHub Code Quality, с помощью следующих опций:

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

  • Разрешить корпоративные действия рабочие процессы: Можно использовать только действия , определённые в репозитории внутри предприятия.

  • Allow select actions: Любое действие , определённый в репозитории внутри предприятия, может использоваться, а также любой действие , соответствующий указанным вами критериям.

  • Требовать, чтобы действия были закреплены на полной длине фиксации SHA: все действия должны быть закреплены на полной длине фиксации SHA для использования. Это включает действия вашего бизнеса и действия, GitHubсозданные . Дополнительные сведения см. в разделе Справочник по безопасному использованию.

Allow select actions

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

  • Разрешить действия, созданные : GitHub Разрешает все действия, созданные GitHub, расположенные actions в и github организациях.

  • Разрешить действия Marketplace проверенным создателям: Разрешает все GitHub Marketplace действия, созданные проверенными создателями, помеченными .

    Доступно только если у вас включён GitHub Connect и настроен с GitHub Actions. См. Включение автоматического доступа к GitHub.com действиям с помощью GitHub Connect.

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

При указании действий рабочих процессов используйте следующий синтаксис:

  • Чтобы ограничить доступ к определённым тегам или закрепить SHA действия процесса, используйте тот же синтаксис, что и в этом рабочем процессе, для выбора действия.
    • Для действия используется синтаксис OWNER/REPOSITORY@TAG-OR-SHA. Например, используйте actions/javascript-action@v1.0.1, чтобы выбрать тег или actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f для выбора SHA.
  • Чтобы указать шаблон, используйте подстановочный знак. *
    • Чтобы разрешить все действия рабочие процессы в организациях, начинающихся с space-org, используйте space-org*/*.
    • Чтобы разрешить все действия рабочие процессы в репозиториях, начинающихся с octocat, используйте */octocat**@*.
  • Чтобы указать несколько шаблонов, используйте , для разделения шаблонов.
    • Чтобы разрешить все действия рабочие процессы от octocat организаций octokit , используйте octocat/*, octokit/*.
  • Чтобы заблокировать определенные шаблоны, используйте ! префикс.
    • Чтобы разрешить все действия рабочие процессы организации space-org , но заблокировать конкретное действие, например space-org/action, использовать space-org/*, !space-org/action@*.
    • По умолчанию разрешены только действия рабочие процессы, указанные в списке. Чтобы разрешить все действия рабочие процессы, одновременно блокируя конкретные действия, используйте *, !space-org/action@*.

Политики никогда не ограничивают доступ к локальным действиям в файловой системе runner (где uses: начинается ./путь).

Средства выполнения

По умолчанию любой пользователь с доступом администратора к репозиторию может добавить локального runner для репозитория, а локальные runners могут столкнуться с рисками:

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

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

Примечание.

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

Отключение стандартных ведущих бегунов

Вы можете отключить стандартные GitHub-hosted runners на корпоративном уровне. Эта настройка требует рабочих процессов для таргетирования раннеров через группы раннеров и помогает обеспечивать единый контроль доступа и управление.

Для информации о ограничениях по параллельности профессий для GitHub-hosted runners см. Ограничения действий.

  1. В правом верхнем углу GitHub Enterprise Serverщелкните рисунок профиля, а затем выберите параметры Enterprise.
  2. В верхней части страницы нажмите «Политики».
  3. В разделе " Policies", нажмите кнопку "Действия".
  4. Прокрутите до раздела «Стандартные размещённые бегуны» и нажмите «Отключить для всех организаций».
  5. Нажмите кнопку Сохранить.

Пользовательские образы

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

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

Политики хранения пользовательских образов

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

  • Максимальное количество версий на изображение: ограничивает количество сохраняемых версий каждого образа. При превышении этого лимита самые старые неиспользуемые версии образа автоматически удаляются.
    • По умолчанию: 20 версий
    • Конфигурируемый диапазон: от 1 до 100 версий
  • Хранение неиспользуемых версий: удаляет версии образов, которые не использовались в течение указанного количества дней. Версии образов, назначенные пулу средств выполнения, но не используемые активно, также считаются неиспользуемыми.
    • По умолчанию: 30 дней
    • Настраиваемый диапазон: от 1 до 90 дней
  • Maximum version age: Отключает версии образов, которые были созданы ранее указанного количества дней. Отключенные версии образов не могут использоваться средствами выполнения тестов до тех пор, пока ограничение политики не будет увеличено.
    • По умолчанию: 60 дней
    • Настраиваемый диапазон: 7–90 дней

Настройки

Эти политики управляют хранилищем артефактов, журналов и кэшей.

Хранение артефактов и журналов

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

Изменения применяются только к новым артефактам и файлам журналов.

Максимальный и стандартный размер кэша

По умолчанию:

  • Общее объём кэша, используемого GitHub Actions на внешнем хранилище ваш экземпляр GitHub Enterprise Server , ограничен максимум 10 ГБ на репозиторий.
  • Максимальный допустимый размер, который можно задать для репозитория, составляет 25 ГБ.

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

Можно настроить общий размер кэша по умолчанию для каждого репозитория и максимальный общий размер кэша, разрешенный для репозитория. Например, может потребоваться, чтобы общий размер кэша по умолчанию для каждого репозитория составил 5 ГБ, но также позволяет администраторам настраивать общий размер кэша до 15 ГБ для отдельных репозиториев.

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

Рабочие процессы запроса на вытягивание в частных репозиториях

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

  • Выполнение рабочих процессов из запросов на вытягивание вилки. Пользователи могут запускать рабочие процессы из запросов на вытягивание вилки. По умолчанию рабочие процессы будут использовать GITHUB_TOKEN разрешение только для чтения, без доступа к секретам.
  • Отправка маркеров записи в рабочие процессы из запросов на вытягивание. Рабочие процессы будут использовать GITHUB_TOKEN разрешение на запись.
  • Отправка секретов в рабочие процессы из запросов на вытягивание. Все секреты доступны для запроса на вытягивание.
  • Требовать утверждения для рабочих процессов запроса на вытягивание вилки. Рабочие процессы по запросу на вытягивание от сотрудников без разрешения на запись потребуют утверждения от кого-либо с разрешением на запись перед их выполнением.

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

Разрешения рабочего процесса

В разделе "Разрешения рабочего процесса" можно задать разрешения по умолчанию , предоставленные параметру GITHUB_TOKEN.

  • Разрешения на чтение и запись: разрешения по умолчанию зависят GITHUB_TOKEN от того, когда была создана организация или организация:

    • Создано или после 2 февраля 2023 г. — по умолчанию используется доступ только для чтения для всех областей.
    • Создано до 2 февраля 2023 г. — по умолчанию используется доступ для чтения и записи для всех областей.
  • Разрешения на чтение содержимого и пакетов репозитория: по умолчанию GITHUB_TOKEN имеет только доступ на чтение для contents областей и packages областей. Более разрешительный параметр нельзя выбрать в качестве значения по умолчанию для отдельных организаций или репозиториев.

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

Разрешить GitHub Actions создавать и одобрять pull request по умолчанию отключен. Если этот параметр включен, GITHUB_TOKEN можно создать и утвердить запросы на вытягивание.