2.2. 信頼できるアーティファクト署名のインストールの確認
システム管理者として、Red Hat Enterprise Linux 上で実行されている Red Hat Trusted Artifact Signer (RHTAS) のデプロイメントを確認できます。
テストコンテナーイメージに署名し、その署名の信頼性を検証して、環境内での RHTAS のデプロイメントを検証できます。
コードパイプラインからアーティファクトビルドに署名する方法は 2 つ、検証する方法は 3 つあります。cosign
と gitsign
を使用して署名および検証できますが、検証できるのは Enterprise Contract のみです。
2.2.1. コマンドラインインターフェイスから Cosign を使用したコンテナーの署名と検証
cosign
ツールを使用すると、Red Hat の Trusted Artifact Signer (RHTAS) サービスを使用して、Open Container Initiative (OCI) コンテナーイメージや他のビルドアーティファクトに署名し、検証する機能が提供されます。
RHTAS の場合、cosign
バージョン 2.2 以降を使用する必要があります。
前提条件
- Ansible によって管理される Red Hat Enterprise Linux 9.4 以降で実行される RHTAS のインストール。
-
podman
バイナリーがインストールされたワークステーション。
手順
ローカルのコマンドラインインターフェイス (CLI) ツールのダウンロードページから
cosign
バイナリーをワークステーションにダウンロードします。注記URL アドレスは、
tas_single_node_base_hostname
変数によって定義された設定済みノードです。tas_single_node_base_hostname
の値がexample.com
の場合、URL アドレスの例はhttps://cli-server.example.com
です。- ダウンロードページから、cosign ダウンロードセクションに移動し、プラットフォームのリンクをクリックします。
ワークステーションでターミナルを開き、バイナリー
.gz
ファイルを展開し、実行ビットを設定します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gunzip cosign-amd64.gz chmod +x cosign-amd64
gunzip cosign-amd64.gz chmod +x cosign-amd64
バイナリーを
$PATH
環境内の場所に移動し、名前を変更します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo mv cosign-amd64 /usr/local/bin/cosign
sudo mv cosign-amd64 /usr/local/bin/cosign
コンテナーイメージの署名と検証を行うためにシェル環境を設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
BASE_HOSTNAME_OF_RHTAS_SERVICE は
tas_single_node_base_hostname
変数の値に置き換え、OIDC_ISSUER_URL は OpenID Connect (OIDC) プロバイダーの URL 文字列に置き換えます。The Update Framework (TUF) システムを初期化します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign initialize
cosign initialize
テストコンテナーイメージに署名します。
空のコンテナーイメージを作成します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
echo "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
空のコンテナーイメージを
ttl.sh
一時レジストリーにプッシュします。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman push ttl.sh/rhtas/test-image:1h
podman push ttl.sh/rhtas/test-image:1h
コンテナーイメージに署名します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign sign -y IMAGE_NAME:TAG
cosign sign -y IMAGE_NAME:TAG
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign sign -y ttl.sh/rhtas/test-image:1h
cosign sign -y ttl.sh/rhtas/test-image:1h
Web ブラウザーが開いて、コンテナーイメージをメールアドレスで署名できます。
一時的な Docker ファイルを削除します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm ./tmp.Dockerfile
rm ./tmp.Dockerfile
証明書 ID と発行者を使用して、署名済みコンテナーイメージを確認します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign verify --certificate-identity=SIGNING_EMAIL_ADDR IMAGE_NAME:TAG
cosign verify --certificate-identity=SIGNING_EMAIL_ADDR IMAGE_NAME:TAG
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign verify --certificate-identity=jdoe@redhat.com ttl.sh/rhtas/test-image:1h
cosign verify --certificate-identity=jdoe@redhat.com ttl.sh/rhtas/test-image:1h
注記cosign
コマンドと--certificate-identity-regexp
および--certificate-oidc-issuer-regexp
オプションを使用して、証明書の ID と発行者に正規表現を使用することもできます。ローカルのコマンドラインインターフェイス (CLI) ツールのダウンロードページから
rekor-cli
バイナリーをワークステーションにダウンロードします。Web ブラウザーを開き、CLI サーバーの Web ページに移動します。
注記URL アドレスは、
tas_single_node_base_hostname
変数によって定義された設定済みノードです。tas_single_node_base_hostname
の値がexample.com
の場合、URL アドレスの例はhttps://cli-server.example.com
です。- ダウンロードページから rekor-cli ダウンロードセクションに移動し、プラットフォームのリンクをクリックします。
ワークステーションでターミナルを開き、バイナリー
.gz
ファイルを展開し、実行ビットを設定します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gunzip rekor-cli-amd64.gz chmod +x rekor-cli-amd64
gunzip rekor-cli-amd64.gz chmod +x rekor-cli-amd64
バイナリーを
$PATH
環境内の場所に移動し、名前を変更します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo mv rekor-cli-amd64 /usr/local/bin/rekor-cli
sudo mv rekor-cli-amd64 /usr/local/bin/rekor-cli
Rekor コマンドラインインターフェイスを使用して透明性ログをクエリーします。
ログインデックスに基づき検索します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rekor-cli get --log-index 0 --rekor_server $COSIGN_REKOR_URL --format json | jq
rekor-cli get --log-index 0 --rekor_server $COSIGN_REKOR_URL --format json | jq
ユニバーサルユニーク ID (UUID) を取得するために、メールアドレスを検索します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rekor-cli search --email SIGNING_EMAIL_ADDR --rekor_server $COSIGN_REKOR_URL --format json | jq
rekor-cli search --email SIGNING_EMAIL_ADDR --rekor_server $COSIGN_REKOR_URL --format json | jq
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rekor-cli search --email jdoe@redhat.com --rekor_server $COSIGN_REKOR_URL --format json | jq
rekor-cli search --email jdoe@redhat.com --rekor_server $COSIGN_REKOR_URL --format json | jq
このコマンドは、次の手順で使用する UUID を返します。
UUID を使用してトランザクションの詳細を取得します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rekor-cli get --uuid UUID --rekor_server $COSIGN_REKOR_URL --format json | jq
rekor-cli get --uuid UUID --rekor_server $COSIGN_REKOR_URL --format json | jq
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rekor-cli get --uuid 24296fb24b8ad77a71b9c1374e207537bafdd75b4f591dcee10f3f697f150d7cc5d0b725eea641e7 --rekor_server $COSIGN_REKOR_URL --format json | jq
rekor-cli get --uuid 24296fb24b8ad77a71b9c1374e207537bafdd75b4f591dcee10f3f697f150d7cc5d0b725eea641e7 --rekor_server $COSIGN_REKOR_URL --format json | jq
関連情報
- Red Hat Trusted Application Pipeline のカスタマイズ
- The Update Framework の ホームページ
2.2.2. コマンドラインインターフェイスから Gitsign を使用したコミットの署名および検証
gitsign
ツールを使用すると、Red Hat の Trusted Artifact Signer (RHTAS) サービスを使用して、Git リポジトリーのコミットに署名し、検証することができます。
前提条件
- Ansible によって管理される Red Hat Enterprise Linux 9.4 以降で実行される RHTAS のインストール。
git
およびcosign
バイナリーがインストールされたワークステーション。-
cosign
バージョン 2.2 以降を使用する必要があります。
-
手順
ローカルのコマンドラインインターフェイス (CLI) ツールのダウンロードページから
gitsign
バイナリーをワークステーションにダウンロードします。注記URL アドレスは、
tas_single_node_base_hostname
変数によって定義された設定済みノードです。tas_single_node_base_hostname
の値がexample.com
の場合、URL アドレスの例はhttps://cli-server.example.com
です。- ダウンロードページから、gitsign ダウンロードセクションに移動し、プラットフォームのリンクをクリックします。
ワークステーションでターミナルを開き、.gz ファイルを展開して、実行ビットを設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gunzip gitsign-amd64.gz chmod +x gitsign-amd64
gunzip gitsign-amd64.gz chmod +x gitsign-amd64
バイナリーを
$PATH
環境内の場所に移動し、名前を変更します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo mv gitsign-amd64 /usr/local/bin/gitsign
sudo mv gitsign-amd64 /usr/local/bin/gitsign
コミットの署名と検証を行うためにシェル環境を設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
BASE_HOSTNAME_OF_RHTAS_SERVICE は
tas_single_node_base_hostname
変数の値に置き換え、OIDC_ISSUER_URL は OpenID Connect (OIDC) プロバイダーの URL 文字列に置き換えます。RHTAS サービスを使用してコミットに署名するようにローカルリポジトリー設定を指定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 Clipboard Copied! Toggle word wrap Toggle overflow git commit --allow-empty -S -m “Test of a signed commit”
git commit --allow-empty -S -m “Test of a signed commit”
Web ブラウザーが開いて、メールアドレスでコミットに署名できます。
The Update Framework (TUF) システムを初期化します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign initialize
cosign initialize
コミットを確認します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gitsign verify --certificate-identity=SIGNING_EMAIL --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
gitsign verify --certificate-identity=SIGNING_EMAIL --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gitsign verify --certificate-identity=jdoe@redhat.com --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
gitsign verify --certificate-identity=jdoe@redhat.com --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
2.2.3. エンタープライズコントラクトを使用したコンテナーイメージの署名の検証
Enterprise Contract (EC) は、ソフトウェアサプライチェーンのセキュリティーを維持するためのツールであり、これを使用してコンテナーイメージのポリシーを定義および適用できます。ec
バイナリーを使用すると、Red Hat の Trusted Artifact Signer (RHTAS) 署名フレームワークを使用するコンテナーイメージのアテステーションと署名を検証できます。
前提条件
- Ansible によって管理される Red Hat Enterprise Linux 9.4 以降で実行される RHTAS のインストール。
cosign
およびpodman
バイナリーがインストールされたワークステーション。-
cosign
バージョン 2.2 以降を使用する必要があります。
-
手順
ローカルのコマンドラインインターフェイス (CLI) ツールのダウンロードページから
ec
バイナリーをワークステーションにダウンロードします。注記URL アドレスは、
tas_single_node_base_hostname
変数によって定義された設定済みノードです。tas_single_node_base_hostname
の値がexample.com
の場合、URL アドレスの例はhttps://cli-server.example.com
です。- ダウンロードページから、ec ダウンロードセクションに移動し、プラットフォームのリンクをクリックします。
ワークステーションでターミナルを開き、バイナリー .gz ファイルを展開し、実行ビットを設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gunzip ec-amd64.gz chmod +x ec-amd64
gunzip ec-amd64.gz chmod +x ec-amd64
バイナリーを
$PATH
環境内の場所に移動し、名前を変更します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo mv ec-amd64 /usr/local/bin/ec
sudo mv ec-amd64 /usr/local/bin/ec
コンテナーイメージの署名と検証を行うためにシェル環境を設定します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
BASE_HOSTNAME_OF_RHTAS_SERVICE は
tas_single_node_base_hostname
変数の値に置き換え、OIDC_ISSUER_URL は OpenID Connect (OIDC) プロバイダーの URL 文字列に置き換えます。The Update Framework (TUF) システムを初期化します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign initialize
cosign initialize
テストコンテナーイメージに署名します。
空のコンテナーイメージを作成します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
echo "FROM scratch" > ./tmp.Dockerfile podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
空のコンテナーイメージを
ttl.sh
一時レジストリーにプッシュします。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman push ttl.sh/rhtas/test-image:1h
podman push ttl.sh/rhtas/test-image:1h
コンテナーイメージに署名します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign sign -y IMAGE_NAME:TAG
cosign sign -y IMAGE_NAME:TAG
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign sign -y ttl.sh/rhtas/test-image:1h
cosign sign -y ttl.sh/rhtas/test-image:1h
Web ブラウザーが開いて、コンテナーイメージをメールアドレスで署名できます。
一時的な Docker ファイルを削除します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm ./tmp.Dockerfile
rm ./tmp.Dockerfile
predicate.json
ファイルを作成します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow { "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": [] }
{ "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": [] }
スキーマレイアウトの詳細は、SLSA provenance predicate specifications を参照してください。
predicate.json
ファイルをコンテナーイメージに関連付けます。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign attest -y --predicate ./predicate.json --type slsaprovenance IMAGE_NAME:TAG
cosign attest -y --predicate ./predicate.json --type slsaprovenance IMAGE_NAME:TAG
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign attest -y --predicate ./predicate.json --type slsaprovenance ttl.sh/rhtas/test-image:1h
cosign attest -y --predicate ./predicate.json --type slsaprovenance ttl.sh/rhtas/test-image:1h
コンテナーイメージにアテステーションと署名が 1 つ以上含まれていることを確認します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cosign tree IMAGE_NAME:TAG
cosign tree IMAGE_NAME:TAG
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
Enterprise Contact を使用してコンテナーイメージを確認します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ec validate image --image IMAGE_NAME:TAG --certificate-identity-regexp 'SIGNER_EMAIL_ADDR' --certificate-oidc-issuer-regexp 'keycloak-keycloak-system' --output yaml --show-successes
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 Clipboard Copied! Toggle word wrap Toggle overflow 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
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
エンタープライズコントラクトは、セキュリティー違反の詳細を含む pass-fail レポートを生成します。
--info
フラグを追加すると、レポートには、検出された違反に対する詳細と考えられる解決策が含まれます。
関連情報
- Enterprise Contract は現在 Conforma と呼ばれています。
- Enterprise Contract によるコンプライアンス管理
関連情報
- 詳細は、Enterprise Contract の Web サイト を参照してください。