Изменения бесплатных грантов в Azure Pipelines

Мы временно изменяем процесс получения бесплатных грантов Azure Pipelines для решения растущего злоупотребления размещенными агентами. По умолчанию новые организации, созданные в Azure DevOps, больше не могут получить бесплатное предоставление параллельных конвейеров. Новым пользователям потребуется отправить сообщение электронной почты и предоставить дополнительные сведения для получения бесплатной CI/CD.

Дополнительные сведения см. в списке компонентов ниже.

Azure Pipelines

Azure Repos

Azure Pipelines

Изменения бесплатных грантов в Azure Pipelines

Azure Pipelines предлагает бесплатные CI/CD для общедоступных и частных проектов в течение нескольких лет. Так как это суммы для предоставления бесплатных вычислений, он всегда был мишенью для злоупотреблений - особенно криптографический добыча. Минимизация этого злоупотребления всегда взяла энергию от команды. За последние несколько месяцев ситуация значительно ухудшится, с высоким процентом новых проектов в Azure DevOps, используемых для интеллектуального анализа криптографии и других действий, которые мы классифицируем как оскорбительные. Несколько инцидентов службы за последний месяц были вызваны этим злоупотреблением, что приводит к длительному времени ожидания для существующих клиентов.

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

  • По умолчанию новые организации, созданные в Azure DevOps, больше не получат бесплатное предоставление параллельных конвейеров. Это относится как к общедоступным, так и к частным проектам в новых организациях.
  • Чтобы запросить бесплатный грант, отправьте запрос и четко укажите следующие сведения:
    • Ваше имя
    • Организация Azure DevOps, для которой запрашивается бесплатный грант
    • Требуется ли бесплатный грант для государственных проектов или частных проектов
    • Ссылки на репозитории, которые планируется создать (только общедоступные проекты)
    • Краткое описание проекта (только для общедоступных проектов)

Мы рассмотрим ваш запрос и ответим в течение нескольких дней.

Примечание.

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

Мы извиняемся за какие-либо неудобства, что может привести к тому, что новые клиенты хотят использовать Azure Pipelines для CI/CD. Мы считаем, что это необходимо для продолжения предоставления высокого уровня обслуживания всем нашим клиентам. Мы будем продолжать изучать автоматизированные способы предотвращения злоупотреблений и восстановить предыдущую модель после того, как у нас есть надежный механизм для предотвращения злоупотреблений.

Удаление политик хранения для каждого конвейера в классических сборках

Теперь можно настроить политики хранения для классических сборок и конвейеров YAML в параметрах проекта Azure DevOps. Хотя это единственный способ настройки хранения для конвейеров YAML, вы также можете настроить хранение для классических конвейеров сборки на основе каждого конвейера. Мы удалим все правила хранения для классических конвейеров сборки в предстоящем выпуске.

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

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

Улучшения хранения сборки

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

Новые элементы управления переменными среды в конвейерах

Агент Azure Pipelines сканирует стандартные выходные данные для специальных команд ведения журнала и выполняет их. Команду setVariable можно использовать для задания переменной или изменения ранее определенной переменной. Это может быть использовано субъектом за пределами системы. Например, если в конвейере есть шаг, который печатает список файлов на ftp-сервере, то пользователь с доступом к ftp-серверу может добавить новый файл, имя которого содержит setVariable команду и привести конвейер к изменению его поведения.

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

  • Мы добавили новую конструкцию для авторов задач. Включив фрагмент кода, например приведенный ниже task.json, автор задачи может управлять, если какие-либо переменные задаются задачей.
{
    "restrictions": {
        "commands": {
            "mode": "restricted"
        },
        "settableVariables": {
            "allowed": [
                "myVar",
                "otherVar"
            ]
        }
    },
}​ 
  • Кроме того, мы обновляем ряд встроенных задач, таких как SSH, чтобы их нельзя было использовать.

  • Наконец, теперь можно использовать конструкции YAML для управления тем, может ли шаг задать переменные.

steps:
- script: echo hello
  target:
    settableVariables: none
steps:
- script: echo hello
  target:
    settableVariables:
    - things
    - stuff

Создание неограниченного маркера для сборок вилки

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

Те же ограничения применяются по умолчанию при создании вилок репозитория GitHub Enterprise Server. Это может быть более строгим, чем нужно в таких закрытых средах, где пользователи по-прежнему могут воспользоваться моделью совместной работы с внутренним источником. Хотя вы можете настроить параметр в конвейере, чтобы сделать секреты доступными для вилок, нет параметра для управления областью маркера доступа задания. С помощью этого выпуска мы предоставляем вам контроль над созданием регулярного маркера доступа к заданию даже для сборок вилок.

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

Создание неограниченного маркера для сборок вилки

Изменение модулей Az, Azure и Azure RM

Мы обновляем процесс предварительной установки модулей Az, Azure и AzureRM в Ubuntu и Windows для более эффективной поддержки и использования пространства изображений.

В течение недели 29 марта все версии, кроме последних и самых популярных, будут храниться в виде архивов и будут извлечены задачей Azure PowerShell по запросу. Ниже приведен подробный список изменений:

  1. Образы Windows

    • Все версии модуля Az, кроме последних версий (в настоящее время, 5.5.0) будут архивироваться

    • Все модули Azure, кроме последних (в настоящее время, 5.3.0) и 2.1.0 будут архивироваться.

    • Все модули AzureRM, кроме последних (в настоящее время, 6.13.1) и 2.1.0 будут архивироваться.

  2. Образы Ubuntu

    • Все модули Az, кроме последнего (в настоящее время, 5.5.0), будут архивироваться или удаляться полностью из образа и будут установлены задачей по запросу.

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

Примечание.

Эти обновления не влияют на конвейеры, работающие на локальных агентах.

Azure Repos

Отключение репозитория

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

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

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

  • Может перечислять репозиторий в списке репозиториев
  • Не удается прочитать содержимое репозитория
  • Не удается обновить содержимое репозитория
  • См. сообщение об отключении репозитория при попытке доступа к репозиторию в пользовательском интерфейсе Azure Repos.

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

Отключение репозитория

Следующие шаги

Примечание.

Эти функции будут развернуты в течение следующих двух-трех недель.

Перейдите к Azure DevOps и посмотрите.

Отправка отзыва

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

Внести предложение

Вы также можете получить советы и ваши вопросы, ответы сообщества на Stack Overflow.

Thanks,

Vijay Machiraju