2.2. 验证 Trusted Artifact Signer 安装
作为系统管理员,您可以验证 Red Hat Trusted Artifact Signer (RHTAS)是否部署在 Red Hat Enterprise Linux 上。
您可以签署测试容器镜像,并验证该签名的真实性,以验证您环境中的 RHTAS 部署。
可以通过两种方式从代码管道验证构建工件。您可以使用 cosign
和 gitsign
签署和验证,但只能使用企业合同进行验证。
2.2.1. 使用命令行界面使用 Cosign 签名和验证容器
通过 cosign
工具,您可以使用红帽的Trusted Artifact Signer (RHTAS)服务签名和验证开放容器项目(OCI)容器镜像以及其他构建工件。
对于 RHTAS,您必须使用 cosign
版本 2.2 或更高版本。
先决条件
- 在 Red Hat Enterprise Linux 9.4 或更高版本上运行的 RHTAS 安装由 Ansible 管理。
-
安装了
podman
二进制文件的工作站。
流程
从本地命令行界面(CLI)工具下载
cosign
二进制文件到您的工作站。注意URL 地址是由
tas_single_node_base_hostname
变量定义的配置的节点。一个 URL 地址示例应为https://cli-server.example.com
,它赋予tas_single_node_base_hostname
值,如example.com
。- 在下载页面中,进入 cosign 下载部分,然后点击您的平台的链接。
在工作站上打开一个终端,解压缩二进制
.gz
文件,并设置执行位:Example
gunzip cosign-amd64.gz chmod +x cosign-amd64
Copy to clipboardCopiedgunzip cosign-amd64.gz chmod +x cosign-amd64
将二进制文件移到
$PATH
环境中的位置:Example
sudo mv cosign-amd64 /usr/local/bin/cosign
Copy to clipboardCopiedsudo mv cosign-amd64 /usr/local/bin/cosign
配置 shell 环境,以执行容器镜像签名和验证。
Example
export BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_URL="https://tuf.${BASE_HOSTNAME}" export OIDC_ISSUER_URL=OIDC_ISSUER_URL export COSIGN_FULCIO_URL="https://fulcio.${BASE_HOSTNAME}" export COSIGN_REKOR_URL="https://rekor.${BASE_HOSTNAME}" export COSIGN_MIRROR=$TUF_URL export COSIGN_ROOT=$TUF_URL/root.json export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_YES="true" export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
Copy to clipboardCopiedexport BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_URL="https://tuf.${BASE_HOSTNAME}" export OIDC_ISSUER_URL=OIDC_ISSUER_URL export COSIGN_FULCIO_URL="https://fulcio.${BASE_HOSTNAME}" export COSIGN_REKOR_URL="https://rekor.${BASE_HOSTNAME}" export COSIGN_MIRROR=$TUF_URL export COSIGN_ROOT=$TUF_URL/root.json export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_YES="true" export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
将 BASE_HOSTNAME_OF_RHTAS_SERVICE 替换为
tas_single_node_base_hostname 的
变量的值,并将 OIDC_ISSUER_URL 替换为您的 OpenID Connect (OIDC)供应商 URL 字符串。初始化更新框架(TUF)系统:
Example
cosign initialize
Copy to clipboardCopiedcosign initialize
为测试容器镜像签名。
创建一个空容器镜像:
Example
echo "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedecho "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
将空容器镜像推送到
ttl.sh
临时 registry:Example
podman push ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedpodman push ttl.sh/rhtas/test-image:1h
为容器镜像签名:
语法
cosign sign -y IMAGE_NAME:TAG
Copy to clipboardCopiedcosign sign -y IMAGE_NAME:TAG
Example
cosign sign -y ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedcosign sign -y ttl.sh/rhtas/test-image:1h
此时会打开一个 Web 浏览器,允许您使用电子邮件地址为容器镜像签名。
删除临时 Docker 文件:
Example
rm ./tmp.Dockerfile
Copy to clipboardCopiedrm ./tmp.Dockerfile
使用证书身份和签发者验证签名的容器镜像:
语法
cosign verify --certificate-identity=SIGNING_EMAIL_ADDR IMAGE_NAME:TAG
Copy to clipboardCopiedcosign verify --certificate-identity=SIGNING_EMAIL_ADDR IMAGE_NAME:TAG
Example
cosign verify --certificate-identity=jdoe@redhat.com ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedcosign verify --certificate-identity=jdoe@redhat.com ttl.sh/rhtas/test-image:1h
注意您还可以使用
cosign
命令--certificate-identity-regexp
和--certificate-oidc-issuer-regexp
的以下选项对证书身份和签发者使用正则表达式。从本地命令行界面(CLI)工具下载
rekor-cli
二进制文件,将页面下载到您的工作站。打开 Web 浏览器,再前往 CLI 服务器网页。
注意URL 地址是由
tas_single_node_base_hostname
变量定义的配置的节点。一个 URL 地址示例为https://cli-server.example.com
,因为tas_single_node_base_hostname
的值为example.com
。- 在下载页面中,进入 rekor-cli 下载部分,然后点击您的平台的链接。
在工作站上打开一个终端,解压缩二进制
.gz
文件,并设置执行位:Example
gunzip rekor-cli-amd64.gz chmod +x rekor-cli-amd64
Copy to clipboardCopiedgunzip rekor-cli-amd64.gz chmod +x rekor-cli-amd64
将二进制文件移到
$PATH
环境中的位置:Example
sudo mv rekor-cli-amd64 /usr/local/bin/rekor-cli
Copy to clipboardCopiedsudo mv rekor-cli-amd64 /usr/local/bin/rekor-cli
使用 Rekor 命令行界面查询透明日志。
根据日志索引进行搜索:
Example
rekor-cli get --log-index 0 --rekor_server $COSIGN_REKOR_URL --format json | jq
Copy to clipboardCopiedrekor-cli get --log-index 0 --rekor_server $COSIGN_REKOR_URL --format json | jq
搜索电子邮件地址以获取通用唯一标识符(UUID):
语法
rekor-cli search --email SIGNING_EMAIL_ADDR --rekor_server $COSIGN_REKOR_URL --format json | jq
Copy to clipboardCopiedrekor-cli search --email SIGNING_EMAIL_ADDR --rekor_server $COSIGN_REKOR_URL --format json | jq
Example
rekor-cli search --email jdoe@redhat.com --rekor_server $COSIGN_REKOR_URL --format json | jq
Copy to clipboardCopiedrekor-cli search --email jdoe@redhat.com --rekor_server $COSIGN_REKOR_URL --format json | jq
此命令返回用于下一步的 UUID。
使用 UUID 获取事务详情:
语法
rekor-cli get --uuid UUID --rekor_server $COSIGN_REKOR_URL --format json | jq
Copy to clipboardCopiedrekor-cli get --uuid UUID --rekor_server $COSIGN_REKOR_URL --format json | jq
Example
rekor-cli get --uuid 24296fb24b8ad77a71b9c1374e207537bafdd75b4f591dcee10f3f697f150d7cc5d0b725eea641e7 --rekor_server $COSIGN_REKOR_URL --format json | jq
Copy to clipboardCopiedrekor-cli get --uuid 24296fb24b8ad77a71b9c1374e207537bafdd75b4f591dcee10f3f697f150d7cc5d0b725eea641e7 --rekor_server $COSIGN_REKOR_URL --format json | jq
其他资源
- 自定义红帽受信任的应用程序管道.
- 更新框架 主页.
2.2.2. 使用命令行界面使用 Gitsign 签名和验证提交
gitsign
工具可让您使用红帽的 Trusted Artifact Signer (RHTAS)服务签名和验证 Git 存储库提交。
先决条件
- 在 Red Hat Enterprise Linux 9.4 或更高版本上运行的 RHTAS 安装由 Ansible 管理。
安装了
git
和cosign
二进制文件的工作站。-
您必须使用
cosign
版本 2.2 或更高版本。
-
您必须使用
流程
将
gitsign
二进制文件从本地命令行界面(CLI)工具下载页面到您的工作站。注意URL 地址是由
tas_single_node_base_hostname
变量定义的配置的节点。一个 URL 地址示例应为https://cli-server.example.com
,它赋予tas_single_node_base_hostname
值,如example.com
。- 在下载页面中,进入 gitsign 下载部分,然后单击您的平台的链接。
在工作站上打开一个终端,解压缩 .gz 文件,并设置执行位:
Example
gunzip gitsign-amd64.gz chmod +x gitsign-amd64
Copy to clipboardCopiedgunzip gitsign-amd64.gz chmod +x gitsign-amd64
将二进制文件移到
$PATH
环境中的位置:Example
sudo mv gitsign-amd64 /usr/local/bin/gitsign
Copy to clipboardCopiedsudo mv gitsign-amd64 /usr/local/bin/gitsign
配置您的 shell 环境,以进行提交签名和验证。
Example
export BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_URL="https://tuf.${BASE_HOSTNAME}" export OIDC_ISSUER_URL=OIDC_ISSUER_URL export COSIGN_FULCIO_URL="https://fulcio.${BASE_HOSTNAME}" export COSIGN_REKOR_URL="https://rekor.${BASE_HOSTNAME}" export COSIGN_MIRROR=$TUF_URL export COSIGN_ROOT=$TUF_URL/root.json export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_YES="true" export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
Copy to clipboardCopiedexport BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_URL="https://tuf.${BASE_HOSTNAME}" export OIDC_ISSUER_URL=OIDC_ISSUER_URL export COSIGN_FULCIO_URL="https://fulcio.${BASE_HOSTNAME}" export COSIGN_REKOR_URL="https://rekor.${BASE_HOSTNAME}" export COSIGN_MIRROR=$TUF_URL export COSIGN_ROOT=$TUF_URL/root.json export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_YES="true" export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
将 BASE_HOSTNAME_OF_RHTAS_SERVICE 替换为
tas_single_node_base_hostname 的
变量的值,并将 OIDC_ISSUER_URL 替换为您的 OpenID Connect (OIDC)供应商 URL 字符串。使用 RHTAS 服务配置本地存储库配置以签署您的提交:
Example
git config --local commit.gpgsign true git config --local tag.gpgsign true git config --local gpg.x509.program gitsign git config --local gpg.format x509 git config --local gitsign.fulcio $SIGSTORE_FULCIO_URL git config --local gitsign.rekor $SIGSTORE_REKOR_URL git config --local gitsign.issuer $SIGSTORE_OIDC_ISSUER git config --local gitsign.clientID trusted-artifact-signer
Copy to clipboardCopiedgit config --local commit.gpgsign true git config --local tag.gpgsign true git config --local gpg.x509.program gitsign git config --local gpg.format x509 git config --local gitsign.fulcio $SIGSTORE_FULCIO_URL git config --local gitsign.rekor $SIGSTORE_REKOR_URL git config --local gitsign.issuer $SIGSTORE_OIDC_ISSUER git config --local gitsign.clientID trusted-artifact-signer
将提交提交到本地存储库:
Example
git commit --allow-empty -S -m “Test of a signed commit”
Copy to clipboardCopiedgit commit --allow-empty -S -m “Test of a signed commit”
此时会打开一个 Web 浏览器,允许您使用电子邮件地址为提交签名。
初始化更新框架(TUF)系统:
Example
cosign initialize
Copy to clipboardCopiedcosign initialize
验证提交:
语法
gitsign verify --certificate-identity=SIGNING_EMAIL --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
Copy to clipboardCopiedgitsign verify --certificate-identity=SIGNING_EMAIL --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
Example
gitsign verify --certificate-identity=jdoe@redhat.com --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
Copy to clipboardCopiedgitsign verify --certificate-identity=jdoe@redhat.com --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
2.2.3. 使用企业合同验证容器镜像上的签名
企业合同(EC)是维护软件供应链安全性的工具,您可以使用它来定义和执行容器镜像的策略。您可以使用 ec
二进制文件来验证使用红帽的 Trusted Artifact Signer (RHTAS)签名框架的容器镜像的待测试和签名。
先决条件
- 在 Red Hat Enterprise Linux 9.4 或更高版本上运行的 RHTAS 安装由 Ansible 管理。
安装了
cosign
和podman
二进制文件的工作站。-
您必须使用
cosign
版本 2.2 或更高版本。
-
您必须使用
流程
从本地命令行界面(CLI)工具下载
ec
二进制文件到您的工作站。注意URL 地址是由
tas_single_node_base_hostname
变量定义的配置的节点。一个 URL 地址示例应为https://cli-server.example.com
,它赋予tas_single_node_base_hostname
值,如example.com
。- 在下载页面中,进入 ec 下载部分,再单击平台的链接。
在工作站上打开一个终端,解压缩二进制 .gz 文件,并设置执行位:
Example
gunzip ec-amd64.gz chmod +x ec-amd64
Copy to clipboardCopiedgunzip ec-amd64.gz chmod +x ec-amd64
将二进制文件移到
$PATH
环境中的位置:Example
sudo mv ec-amd64 /usr/local/bin/ec
Copy to clipboardCopiedsudo mv ec-amd64 /usr/local/bin/ec
配置 shell 环境,以执行容器镜像签名和验证。
Example
export BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_URL="https://tuf.${BASE_HOSTNAME}" export OIDC_ISSUER_URL=OIDC_ISSUER_URL export COSIGN_FULCIO_URL="https://fulcio.${BASE_HOSTNAME}" export COSIGN_REKOR_URL="https://rekor.${BASE_HOSTNAME}" export COSIGN_MIRROR=$TUF_URL export COSIGN_ROOT=$TUF_URL/root.json export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_YES="true" export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
Copy to clipboardCopiedexport BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_URL="https://tuf.${BASE_HOSTNAME}" export OIDC_ISSUER_URL=OIDC_ISSUER_URL export COSIGN_FULCIO_URL="https://fulcio.${BASE_HOSTNAME}" export COSIGN_REKOR_URL="https://rekor.${BASE_HOSTNAME}" export COSIGN_MIRROR=$TUF_URL export COSIGN_ROOT=$TUF_URL/root.json export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL export COSIGN_YES="true" export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
将 BASE_HOSTNAME_OF_RHTAS_SERVICE 替换为
tas_single_node_base_hostname 的
变量的值,并将 OIDC_ISSUER_URL 替换为您的 OpenID Connect (OIDC)供应商 URL 字符串。初始化更新框架(TUF)系统:
Example
cosign initialize
Copy to clipboardCopiedcosign initialize
为测试容器镜像签名。
创建一个空容器镜像:
Example
echo "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedecho "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
将空容器镜像推送到
ttl.sh
临时 registry:Example
podman push ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedpodman push ttl.sh/rhtas/test-image:1h
为容器镜像签名:
语法
cosign sign -y IMAGE_NAME:TAG
Copy to clipboardCopiedcosign sign -y IMAGE_NAME:TAG
Example
cosign sign -y ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedcosign sign -y ttl.sh/rhtas/test-image:1h
此时会打开一个 Web 浏览器,允许您使用电子邮件地址为容器镜像签名。
删除临时 Docker 文件:
Example
rm ./tmp.Dockerfile
Copy to clipboardCopiedrm ./tmp.Dockerfile
创建
predicate.json
文件:Example
{ "builder": { "id": "https://localhost/dummy-id" }, "buildType": "https://example.com/tekton-pipeline", "invocation": {}, "buildConfig": {}, "metadata": { "completeness": { "parameters": false, "environment": false, "materials": false }, "reproducible": false }, "materials": [] }
Copy to clipboardCopied{ "builder": { "id": "https://localhost/dummy-id" }, "buildType": "https://example.com/tekton-pipeline", "invocation": {}, "buildConfig": {}, "metadata": { "completeness": { "parameters": false, "environment": false, "materials": false }, "reproducible": false }, "materials": [] }
如需有关 schema 布局的更多信息,请参阅 SLSA provenance predicate 规格。
将
predicate.json
文件与容器镜像关联:语法
cosign attest -y --predicate ./predicate.json --type slsaprovenance IMAGE_NAME:TAG
Copy to clipboardCopiedcosign attest -y --predicate ./predicate.json --type slsaprovenance IMAGE_NAME:TAG
Example
cosign attest -y --predicate ./predicate.json --type slsaprovenance ttl.sh/rhtas/test-image:1h
Copy to clipboardCopiedcosign attest -y --predicate ./predicate.json --type slsaprovenance ttl.sh/rhtas/test-image:1h
验证容器镜像是否至少有一个测试和签名:
语法
cosign tree IMAGE_NAME:TAG
Copy to clipboardCopiedcosign tree IMAGE_NAME:TAG
Example
cosign tree ttl.sh/rhtas/test-image:1h 📦 Supply Chain Security Related artifacts for an image: ttl.sh/rhtas/test-image@sha256:7de5fa822a9d1e507c36565ee0cf50c08faa64505461c844a3ce3944d23efa35 └── 💾 Attestations for an image tag: ttl.sh/rhtas/test-image:sha256-7de5fa822a9d1e507c36565ee0cf50c08faa64505461c844a3ce3944d23efa35.att └── 🍒 sha256:40d94d96a6d3ab3d94b429881e1b470ae9a3cac55a3ec874051bdecd9da06c2e └── 🔐 Signatures for an image tag: ttl.sh/rhtas/test-image:sha256-7de5fa822a9d1e507c36565ee0cf50c08faa64505461c844a3ce3944d23efa35.sig └── 🍒 sha256:f32171250715d4538aec33adc40fac2343f5092631d4fc2457e2116a489387b7
Copy to clipboardCopiedcosign tree ttl.sh/rhtas/test-image:1h 📦 Supply Chain Security Related artifacts for an image: ttl.sh/rhtas/test-image@sha256:7de5fa822a9d1e507c36565ee0cf50c08faa64505461c844a3ce3944d23efa35 └── 💾 Attestations for an image tag: ttl.sh/rhtas/test-image:sha256-7de5fa822a9d1e507c36565ee0cf50c08faa64505461c844a3ce3944d23efa35.att └── 🍒 sha256:40d94d96a6d3ab3d94b429881e1b470ae9a3cac55a3ec874051bdecd9da06c2e └── 🔐 Signatures for an image tag: ttl.sh/rhtas/test-image:sha256-7de5fa822a9d1e507c36565ee0cf50c08faa64505461c844a3ce3944d23efa35.sig └── 🍒 sha256:f32171250715d4538aec33adc40fac2343f5092631d4fc2457e2116a489387b7
使用企业联系人验证容器镜像:
语法
ec validate image --image IMAGE_NAME:TAG --certificate-identity-regexp 'SIGNER_EMAIL_ADDR' --certificate-oidc-issuer-regexp 'keycloak-keycloak-system' --output yaml --show-successes
Copy to clipboardCopiedec validate image --image IMAGE_NAME:TAG --certificate-identity-regexp 'SIGNER_EMAIL_ADDR' --certificate-oidc-issuer-regexp 'keycloak-keycloak-system' --output yaml --show-successes
Example
ec validate image --image ttl.sh/rhtas/test-image:1h --certificate-identity-regexp 'jdoe@example.com' --certificate-oidc-issuer-regexp 'keycloak-keycloak-system' --output yaml --show-successes success: true successes: - metadata: code: builtin.attestation.signature_check msg: Pass - metadata: code: builtin.attestation.syntax_check msg: Pass - metadata: code: builtin.image.signature_check msg: Pass ec-version: v0.1.2427-499ef12 effective-time: "2024-01-21T19:57:51.338191Z" key: "" policy: {} success: true
Copy to clipboardCopiedec validate image --image ttl.sh/rhtas/test-image:1h --certificate-identity-regexp 'jdoe@example.com' --certificate-oidc-issuer-regexp 'keycloak-keycloak-system' --output yaml --show-successes success: true successes: - metadata: code: builtin.attestation.signature_check msg: Pass - metadata: code: builtin.attestation.syntax_check msg: Pass - metadata: code: builtin.image.signature_check msg: Pass ec-version: v0.1.2427-499ef12 effective-time: "2024-01-21T19:57:51.338191Z" key: "" policy: {} success: true
企业合同生成 pass-fail 报告,其中包含有关任何安全违反情况的详细信息。添加
--info
标志时,报告包括所有找到违反情况的详情和可能的解决方案。
其他资源
- 企业合同现在被称为 Conforma。
- 使用企业合同管理合规性.
其它资源
- 如需更多信息,请参阅 Enterprise Contract 网站。