Поделиться через


Notation@0 — задача Нотации v0

Задача Azure Pipepine для настройки интерфейса командной строки нотации, подписывания и проверки с помощью Нотации.

Синтаксис

# Notation v0
# Azure Pipepine Task for setting up Notation CLI, sign and verify with Notation.
- task: Notation@0
  inputs:
    command: 'install' # 'install' | 'sign' | 'verify'. Required. Command to run. Default: install.
  # Command Configuration
    #isCustomVersion: false # boolean. Optional. Use when command = install. Custom Version. Default: false.
    #version: '1.2.0' # string. Required when command = install && isCustomVersion = false. Version. Default: 1.2.0.
    #url: # string. Required when command = install && isCustomVersion = true. Download URL. 
    #checksum: # string. Required when command = install && isCustomVersion = true. Checksum. 
    #artifactRefs: # string. Optional. Use when command = verify || command = sign. Artifact references. 
    #trustPolicy: # string. Required when command = verify. Trust Policy File Path. 
    #trustStore: # string. Required when command = verify. Trust Store Folder Path. 
  # Advanced Configuration
    #signatureFormat: 'cose' # 'cose' | 'jws'. Optional. Use when command = sign && command = sign || command = verify. Signature Format. Default: cose.
    #allowReferrersAPI: false # boolean. Optional. Use when command = sign || command = verify. [Experimental] Allow Referrers API. Default: false.
  # Plugin Configuration
    #plugin: 'azureKeyVault' # 'azureKeyVault'. Required when command = sign. Plugin. Default: azureKeyVault.
    #akvPluginVersion: '1.2.0' # string. Required when plugin = azureKeyVault && command = sign. Plugin Version. Default: 1.2.0.
    #azurekvServiceConection: # string. Optional. Use when plugin = azureKeyVault && command = sign. Azure Key Vault service connection. 
    #keyid: # string. Required when plugin = azureKeyVault && command = sign. Key ID. 
    #caCertBundle: # string. Optional. Use when plugin = azureKeyVault && command = sign. Certificate Bundle File Path. 
    #selfSigned: false # boolean. Optional. Use when plugin = azureKeyVault && command = sign. Self-signed Certificate. Default: false.
  # Timestamp
    #timestampURL: # string. Optional. Use when command = sign. Timestamp URL. 
    #timestampRootCert: # string. Optional. Use when command = sign. Timestamp Root Certificate.

Входы

Команда command - для выполнения
string. Обязательно. Допустимые значения: install, sign, verify. Значение по умолчанию: install.

Задает режим команды задачи.

  • установить. Команда install обнаруживает текущую операционную систему и архитектуру, чтобы скачать соответствующий интерфейс командной строки нотации из выпусков GitHub. Он также проверяет контрольную сумму скачаемого файла с золотым файлом в папке ./data и добавляет нотацию в PATH.
  • знак . Команда sign скачивает выбранный подключаемый модуль нотации, проверяет ее контрольную сумму, а затем вызывает интерфейс командной строки нотации для входа.
  • убедитесь, что . Команда verify передает политику хранилища доверия и доверия из репозитория кода пользователя в папку конфигурации нотации, как требуется cli нотации. Затем он вызывает интерфейс командной строки нотации для выполнения проверки.

isCustomVersion - настраиваемую версию
boolean. Необязательный. Используется при command = install. Значение по умолчанию: false.

Укажите true для предоставления пользовательской версии нотации для задачи, указав URL-адрес скачивания для пользовательской версии в свойстве url.


version - версии
string. Требуется, если command = install && isCustomVersion = false. Значение по умолчанию: 1.2.0.

Версия нотации для установки. Пример: 1.0.0, 1, 1.0, 1.0.0.


url - URL-адрес скачивания
string. Требуется, если command = install && isCustomVersion = true.

URL-адрес пользовательской версии нотации, используемой, например, https://github.com/notaryproject/notation/releases/download/v1.0.0/notation_1.0.0_linux_amd64.tar.gz.


checksum - контрольной суммы
string. Требуется, если command = install && isCustomVersion = true.

Контрольная сумма SHA-256 скачаемого файла.


ссылки на артефакты artifactRefs -
string. Необязательный. Используется при command = verify || command = sign.

Ссылки на артефакты контейнера для подписывания. Если это не указано, задача использует ссылку на артефакт из предыдущей задачи push-отправки Docker. Пример: <registry name>/<repository name>@<digest>. Несколько ссылок артефактов должны быть разделены запятыми.


signatureFormat - формат подписи
string. Необязательный. Используется при command = sign && command = sign || command = verify. Допустимые значения: cose, jws. Значение по умолчанию: cose.

Формат конверта подписи.


allowReferrersAPI - [Экспериментальный] Разрешить API ссылок
boolean. Необязательный. Используется при command = sign || command = verify. Значение по умолчанию: false.

Используйте API ссылок для подписи подписей, если не поддерживается (возвращается 404), резервный возврат к схеме тегов ссылок.


подключаемого модуля
string. Требуется, если command = sign. Допустимые значения: azureKeyVault (подключаемый модуль Azure Key Vault). Значение по умолчанию: azureKeyVault.


akvPluginVersion - версия подключаемого модуля
string. Требуется, если plugin = azureKeyVault && command = sign. Значение по умолчанию: 1.2.0.

Версия установленного подключаемого модуля Azure Key Vault. На странице выпусков нотации azure-kv доступных версий.


azurekvServiceConection - подключение службы Azure Key Vault
string. Необязательный. Используется при plugin = azureKeyVault && command = sign.

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


идентификатор ключа
string. Требуется, если plugin = azureKeyVault && command = sign.

Идентификатор ключа — это ключ или идентификатор сертификата для Azure Key Vault.


пути к файлу пакета сертификатов
string. Необязательный. Используется при plugin = azureKeyVault && command = sign.

Файл пакета сертификатов с корневыми и всеми промежуточными сертификатами, начиная с корневого сертификата, следуя порядку в цепочке сертификатов.


selfSigned - самозаверяющий сертификат
boolean. Необязательный. Используется при plugin = azureKeyVault && command = sign. Значение по умолчанию: false.

Указывает, является ли сертификат самозаверяющий сертификат.


timestampURL - URL-адрес метки времени
string. Необязательный. Используется при command = sign.

URL-адрес сервера rfC 3161 Timestamping Authority (TSA). (Требовать нотацию версии 1.2.0 или более поздней версии).


корневого сертификата метки времени
string. Необязательный. Используется при command = sign.

файл пути корневого сертификата центра метки времени. (Требовать нотацию версии 1.2.0 или более поздней версии).


trustPolicy - пути к файлу политики доверия
string. Требуется, если command = verify.

Путь к политике доверия файла относительно репозитория. Пример: ./path/to/trust-policy.json.


trustStore - Путь к папке хранилища доверия
string. Требуется, если command = verify.

Путь к каталогу, содержащему хранилище доверия доверия, относительно репозитория. Пример: ./path/to/truststore/.


Параметры управления задачами

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

Выходные переменные

Никакой.

Замечания

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

Необходимые условия

  • Для этой задачи требуется доступ к общедоступной сети для скачивания интерфейса командной строки нотации и подключаемого модуля Azure Key Vault из выпусков Github.
  • Поддерживаемая ОС агента: Linux x64/ARM64, Windows x64, macOS x64/ARM64

Команда установки нотации

Команда install обнаруживает текущую операционную систему и архитектуру, чтобы скачать соответствующий интерфейс командной строки нотации из выпусков GitHub. Он также проверяет контрольную сумму скачаемого файла с золотым файлом в папке ./data и добавляет нотацию в PATH.

Команда подписи нотации

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

Команда проверки нотации

Команда verify передает политику хранилища доверия и доверия из репозитория кода пользователя в папку конфигурации нотации в соответствии с требованиями cli нотации. Затем он вызывает интерфейс командной строки нотации для выполнения проверки.

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
требования Никакой
возможностей Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любой
переменные settable Любой
Версия агента 2.144.0 или более поздней версии
Категория задач Полезность