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.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.

输入

用于运行 的 命令
string。 必填。 允许的值:installsignverify。 默认值:install

指定任务的命令模式。

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

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

通过指定 url 属性中自定义版本的自定义版本来指定 true 为任务提供自定义版本的表示法。


version - 版本
stringcommand = install && isCustomVersion = false时是必需的。 默认值:1.2.0

要安装的表示法版本。 示例:1.0.0、1、1.0、1.0.0。


url - 下载 URL
stringcommand = install && isCustomVersion = true时是必需的。

要使用的自定义表示法版本的 URL,例如:https://github.com/notaryproject/notation/releases/download/v1.0.0/notation_1.0.0_linux_amd64.tar.gz


checksum - 校验和
stringcommand = 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 - 插件
stringcommand = sign时是必需的。 允许的值:azureKeyVault(Azure Key Vault 插件)。 默认值:azureKeyVault


akvPluginVersion - 插件版本
stringplugin = azureKeyVault && command = sign时是必需的。 默认值:1.2.0

要安装的 Azure Key Vault 插件的版本。 有关可用版本,请参阅 表示法-azure-kv 版本页


Azure Key Vault 服务连接
string。 自选。 当 plugin = azureKeyVault && command = sign时使用。

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


keyid - 密钥 ID
stringplugin = azureKeyVault && command = sign时是必需的。

密钥 ID 是 Azure Key Vault 的密钥或证书标识符。


caCertBundle - 证书捆绑文件路径
string。 自选。 当 plugin = azureKeyVault && command = sign时使用。

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


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

证书是否为自签名证书。


timestampURL - 时间戳 URL
string。 自选。 当 command = sign时使用。

RFC 3161 时间戳颁发机构 (TSA) 服务器 URL。 (需要表示法 v1.2.0 或更高版本)。


timestampRootCert - 时间戳根证书
string。 自选。 当 command = sign时使用。

时间戳颁发机构根证书的文件路径。 (需要表示法 v1.2.0 或更高版本)。


trustPolicy - 信任策略文件路径
stringcommand = verify时是必需的。

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


trustStore - 信任存储文件夹路径
stringcommand = verify时是必需的。

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


任务控制选项

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

输出变量

没有。

言论

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

先决条件

  • 此任务需要公共网络访问权限,以便从 Github 版本下载表示法 CLI 和表示法 Azure Key Vault 插件。
  • 支持的代理 OS:Linux x64/ARM64、Windows x64、macOS x64/ARM64

表示法安装命令

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

表示法符号命令

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

表示法验证命令

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

要求

要求 描述
管道类型 YAML,经典版本,经典版本
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 2.144.0 或更高版本
任务类别 效用