Использование защитных файлов

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

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

  • сертификаты для подписи;
  • профили подготовки Apple;
  • файлы хранилища ключей Android.
  • Ключи SSH

Эти файлы можно хранить на сервере, не зафиксировав их в репозитории.

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

Ограничение размера для каждого защищенного файла составляет 10 МБ.

Добавление защищенного файла

  1. Перейдите в безопасные файлы библиотеки>конвейеров>.

    Перейдите на вкладку

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

    Отправьте файл.

  3. Добавьте разрешения в файл.

    1. Примените ограничения ролей безопасности для всех файлов на вкладке "Безопасность" в библиотеке конвейеров>.
    2. Чтобы добавить разрешения для отдельного файла, в представлении редактирования файла выберите разрешения конвейера, чтобы задать разрешения для каждого конвейера. Или выберите "Безопасность" , чтобы задать роли безопасности.
      • Вы также можете задать Утверждения и проверить наличие файла. Дополнительные сведения см. в Утверждения и проверка.

    Задайте безопасность конвейера для безопасных файлов.

Использование защищенного файла в конвейере

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

Следующий пример конвейера YAML загружает файл защищенного сертификата и устанавливает его в среде Linux.

- task: DownloadSecureFile@1
  name: caCertificate
  displayName: 'Download CA certificate'
  inputs:
    secureFile: 'myCACertificate.pem'

- script: |
    echo Installing $(caCertificate.secureFilePath) to the trusted CA directory...
    sudo chown root:root $(caCertificate.secureFilePath)
    sudo chmod a+r $(caCertificate.secureFilePath)
    sudo ln -s -t /etc/ssl/certs/ $(caCertificate.secureFilePath)

Вопросы и ответы

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

Ответ. Создание собственных задач, использующих безопасные файлы с помощью входных данных с типом secureFile в .task.json Узнайте, как создать пользовательскую задачу.

Задача "Установка профиля подготовки Apple" — это простой пример задачи с помощью безопасного файла. См. справочную документацию и исходный код.

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

Вопрос. Моя задача не может получить доступ к защищенным файлам. Что делать?

Ответ. Убедитесь, что агент работает с версией 2.116.0 или более поздней. Ознакомьтесь с версией агента и обновлениями.

Вопрос. Разделы справки авторизовать безопасный файл для использования в определенном конвейере?

Ответ.

  1. В Azure Pipelines перейдите на вкладку "Библиотека ".
  2. Выберите вкладку "Безопасные файлы " в верхней части.
  3. Выберите безопасный файл, который требуется авторизовать.
  4. Нажмите кнопку "Разрешения конвейера".
  5. Просмотрите и измените доступ для каждого доступного конвейера.

Вопрос. Почему при Invalid Resource скачивании безопасного файла с помощью Azure DevOps Server или TFS в локальной среде возникает ошибка?

Ответ. Убедитесь, что на сервере TFS или Azure DevOps Server отключена обычная проверка подлинности IIS.

Вопрос. Как защищены защищенные файлы?

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

Секреты шифруются и хранятся в базе данных. Ключи для расшифровки секретов хранятся в Azure Key Vault. Ключи зависят от каждого единицы масштабирования. Таким образом, два региона не используют одинаковые ключи. Ключи также поворачиваются при каждом развертывании Azure DevOps.

Права на получение безопасных ключей предоставляются только субъектам-службам Azure DevOps и (в особых случаях) для диагностики проблем. Безопасное хранилище не имеет сертификатов.

Azure Key Vault — это еще один, более безопасный вариант защиты конфиденциальной информации. Если вы решите использовать Azure Key Vault, его можно использовать с группами переменных.