1.5. 追加認証なしでタスク実行の署名を作成および検証する
追加認証を使用して Tekton Chains でタスク実行の署名を検証するには、次のタスクを実行します。
- 暗号化された x509 キーペアを作成し、Kubernetes シークレットとして保存します。
- Tekton Chains バックエンドストレージを設定します。
- タスク実行を作成して署名し、署名とペイロードをタスク実行自体にアノテーションとして保存します。
- 署名されたタスクの実行から署名とペイロードを取得します。
- タスク実行の署名を確認します。
前提条件
次のコンポーネントがクラスターにインストールされていることを確認する。
- Red Hat OpenShift Pipelines Operator
- Tekton Chains
- Cosign
手順
- 暗号化された x509 キーペアを作成し、Kubernetes シークレットとして保存します。鍵ペアの作成とシークレットとしての保存の詳細は、「Tekton Chains でのシークレットの署名」を参照してください。
Tekton Chains 設定で、OCI ストレージを無効にし、タスク実行ストレージとフォーマットを
tekton
に設定します。TektonConfig
カスタムリソースで次の値を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfig
カスタムリソースを使用した Tekton チェーンの設定の詳細は、「Tekton チェーンの設定」を参照してください。Tekton Chains コントローラーを再起動して、変更した設定が確実に適用されるようにするには、次のコマンドを入力します。
oc delete po -n openshift-pipelines -l app=tekton-chains-controller
$ oc delete po -n openshift-pipelines -l app=tekton-chains-controller
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してタスク実行を作成します。
oc create -f https://raw.githubusercontent.com/tektoncd/chains/main/examples/taskruns/task-output-image.yaml
$ oc create -f https://raw.githubusercontent.com/tektoncd/chains/main/examples/taskruns/task-output-image.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- サンプル URI を、タスクの実行を指す URI またはファイルパスに置き換えます。
出力例
taskrun.tekton.dev/build-push-run-output-image-qbjvh created
taskrun.tekton.dev/build-push-run-output-image-qbjvh created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ステップのステータスを確認します。プロセスが完了するまで待ちます。
tkn tr describe --last
$ tkn tr describe --last
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Base64
でエンコードされたアノテーションとして保存されたオブジェクトから署名を取得するには、次のコマンドを入力します。tkn tr describe --last -o jsonpath="{.metadata.annotations.chains\.tekton\.dev/signature-taskrun-$TASKRUN_UID}" | base64 -d > sig
$ tkn tr describe --last -o jsonpath="{.metadata.annotations.chains\.tekton\.dev/signature-taskrun-$TASKRUN_UID}" | base64 -d > sig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export TASKRUN_UID=$(tkn tr describe --last -o jsonpath='{.metadata.uid}')
$ export TASKRUN_UID=$(tkn tr describe --last -o jsonpath='{.metadata.uid}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成した公開鍵を使用して署名を検証するには、次のコマンドを入力します。
cosign verify-blob-attestation --insecure-ignore-tlog --key path/to/cosign.pub --signature sig --type slsaprovenance --check-claims=false /dev/null
$ cosign verify-blob-attestation --insecure-ignore-tlog --key path/to/cosign.pub --signature sig --type slsaprovenance --check-claims=false /dev/null
- 1
path/to/cosign.pub
を公開鍵ファイルのパス名に置き換えます。出力例
Verified OK
Verified OK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow