Notation@0 - 表示法 v0 任务

用于设置表示法 CLI 的 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.1.0' # string. Required when command = install && isCustomVersion = false. Version. Default: 1.1.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.1.0' # string. Required when plugin = azureKeyVault && command = sign. Plugin Version. Default: 1.1.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.

输入

command - 要运行的命令
string. 必需。 允许的值:installsignverify。 默认值:install

指定任务的命令模式。

  • install - 命令 install 检测当前操作系统和体系结构,以从 GitHub 版本下载相应的表示法 CLI。 它还根据文件夹中的黄金文件验证已下载文件的校验和, ./data 并将表示法添加到 PATH。
  • sign - 命令 sign 下载所选的表示法插件,验证其校验和,然后在 Notation CLI 上调用 进行签名。
  • verify - 命令 verify 将信任存储和信任策略从用户的代码存储库传输到表示法配置文件夹,这是表示法 CLI 的要求。 然后调用表示法 CLI 来执行验证。

isCustomVersion - 自定义版本
boolean. 可选。 在 时 command = install使用 。 默认值:false

通过在 属性中url指定自定义版本的下载 URL,指定 true 为任务提供自定义版本的表示法。


version - 版本
string. 当 command = install && isCustomVersion = false 时,需要此选项。 默认值:1.1.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使用 。

用于签名的容器项目引用。 如果未指定,则任务将使用上一个 Docker 推送任务中的项目引用。 示例:<registry name>/<repository name>@<digest>。 多个项目引用必须以逗号分隔。


signatureFormat - 签名格式
string. 可选。 在 时 command = sign && command = sign || command = verify使用 。 允许的值:cosejws。 默认值:cose

签名信封格式。


allowReferrersAPI - [实验性]允许引用网站 API
boolean. 可选。 在 时 command = sign || command = verify使用 。 默认值:false

使用引用网站 API 对签名进行签名,如果不支持 (返回 404) ,则回退到引用网站标记架构。


plugin - 插件
string. 当 command = sign 时,需要此选项。 允许的值: azureKeyVault (Azure 密钥保管库 插件) 。 默认值:azureKeyVault


akvPluginVersion - 插件版本
string. 当 plugin = azureKeyVault && command = sign 时,需要此选项。 默认值:1.1.0

要安装的 Azure 密钥保管库 插件的版本。 有关可用版本,请参阅 notation-azure-kv 版本页


azurekvServiceConection - Azure 密钥保管库 服务连接
string. 可选。 在 时 plugin = azureKeyVault && command = sign使用 。

如果希望使用服务连接进行身份验证,请选择密钥保管库的 Azure 订阅。


keyid - 密钥 ID
string. 当 plugin = azureKeyVault && command = sign 时,需要此选项。

密钥 ID 是 Azure 密钥保管库的密钥或证书标识符。


caCertBundle - 证书捆绑包文件路径
string. 可选。 在 时 plugin = azureKeyVault && command = sign使用 。

包含根证书和所有中间证书的证书捆绑文件,从根证书开始,遵循证书链中的顺序。


selfSigned - 自签名证书
boolean. 可选。 在 时 plugin = azureKeyVault && command = sign使用 。 默认值:false

证书是否为自签名证书。


trustPolicy - 信任策略文件路径
string. 当 command = verify 时,需要此选项。

相对于存储库 的信任策略 文件的路径。 示例:./path/to/trust-policy.json


trustStore - 信任存储文件夹路径
string. 当 command = verify 时,需要此选项。

包含相对于存储库 的信任存储 的目录的路径。 示例:./path/to/truststore/


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

表示法任务调用表示法 CLI 来执行签名和验证操作。 表示法 CLI 是用于对 Docker 容器项目或映像进行签名和验证的工具。 对项目进行签名时,表示法对项目的唯一清单描述符进行签名,并将签名附加到同一存储库。 验证项目时,表示法从存储库检索签名,并对照信任存储中的证书对其进行验证。

先决条件

  • 此任务需要公用网络访问权限,以便从 Github 版本下载 Notation CLI 和 Notation Azure 密钥保管库 插件。
  • 支持的代理 OS:Linux x64/ARM64、Windows x64、macOS x64/ARM64

表示法安装命令

命令 install 检测当前操作系统和体系结构,以从 GitHub 版本下载相应的表示法 CLI。 它还根据文件夹中的黄金文件验证已下载文件的校验和, ./data 并将表示法添加到 PATH。

表示法符号命令

sign 命令下载所选的表示法插件,验证其校验和,然后在表示法 CLI 上调用 进行签名。

表示法验证命令

命令 verify 将信任存储和信任策略从用户的代码存储库传输到表示法配置文件夹,这是表示法 CLI 的要求。 然后调用表示法 CLI 来执行验证。

要求

要求 说明
管道类型 YAML,经典内部版本,经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 任意
代理版本 2.144.0 或更高版本
任务类别 实用工具