1.3. Tekton Chains でデータに署名するための秘密
				クラスター管理者は、キーペアを生成し、Tekton Chains を使用して、Kubernetes シークレットでアーティファクトに署名できます。Tekton Chains が機能するには、暗号化されたキーの秘密鍵とパスワードが、openshift-pipelines namespace の signing-secrets シークレットの一部として存在している必要があります。
			
				現在、Tekton Chains は x509 および cosign 署名スキームをサポートしています。
			
使用できるのは、サポートされている署名スキームのいずれか 1 つのみです。
x509 署名スキーム
					Tekton Chains で x509 署名スキームを使用するには、次の要件を満たす必要があります。
				
- 
						
x509.pem構造を使用してsigning-secretsに秘密鍵を保存します。 - 
						秘密鍵を暗号化されていない 
PKCS #8PEM ファイルとして保存します。 - 
						鍵は 
ed25519またはecdsaタイプです。 
cosign 署名スキーム
					Tekton Chains で cosign 署名スキームを使用するには、次の要件を満たす必要があります。
				
- 
						秘密鍵を 
cosign.key構造を使用してsigning-secretsに保存します。 - 
						パスワードを 
cosign.password構造でsigning-secretsに保存します。 - 
						秘密鍵を 
ENCRYPTED COSIGN PRIVATE KEYタイプの暗号化された PEM ファイルとして保存します。 
1.3.1. TektonConfig CR を使用した cosign キーペアの生成 リンクのコピーリンクがクリップボードにコピーされました!
					Tekton Chains シークレットの cosign 署名スキームを使用するには、TektonConfig カスタムリソース (CR) の generateSigningSecret フィールドを true に設定して、ECDSA 暗号化を使用する cosign キーペアを生成します。
				
前提条件
- 
							OpenShift CLI (
oc) ユーティリティーがインストールされている。 - 
							
openshift-pipelinesnamespace の管理者権限で OpenShift Container Platform クラスターにログインしている。 
手順
次のコマンドを実行して、
TektonConfigCR を編集します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigCR で、generateSigningSecretの値をtrueに設定します。TektonConfig CR を使用した ECDSA cosign キーペアの作成例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - デフォルト値は
falseです。値をtrueに設定すると、ecdsaキーペアが生成されます。 
数分経過してから、アーティファクトアテステーションの検証に使用できるように、シークレットから公開鍵を抽出して保存します。キーを抽出するには、次のコマンドを使用します。
oc extract -n openshift-pipelines secret/signing-secrets --keys=cosign.pub
$ oc extract -n openshift-pipelines secret/signing-secrets --keys=cosign.pubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
結果
						OpenShift Pipelines Operator は、ecdsa タイプの cosign キーペアを生成し、それを openshift-pipelines namespace の signing-secrets シークレットに保存します。シークレットには次のファイルが含まれます。
					
- 
							
cosign.key: 秘密鍵 - 
							
cosign.password: 秘密鍵を復号するためのパスワード - 
							
cosign.pub: 公開鍵 
					signing-secrets シークレットがすでに存在する場合、Operator はそのシークレットを上書きしません。
				
					カレントディレクトリー内の cosign.pub ファイルには、シークレットから抽出された公開鍵が含まれています。
				
						generateSigningSecret フィールドを true から false に設定すると、Red Hat OpenShift Pipelines Operator は signing-secrets シークレットの値をオーバーライドおよび空にします。
					
Red Hat OpenShift Pipelines Operator は、以下のセキュリティー機能を提供しません。
- キーのローテーション
 - 鍵の使用の監査
 - 鍵への適切なアクセス制御
 
1.3.2. cosign ツールを使用した署名シークレットの手動生成 リンクのコピーリンクがクリップボードにコピーされました!
					cosign 署名ツールを使用すると、Tekton Chains で cosign スキームを使用できます。
				
前提条件
- Cosign ツールをインストールしている。Cosign ツールのインストールは、Cosign の Sigstore ドキュメント を参照してください。
 
手順
次のコマンドを実行して、
cosign.keyとcosign.pubキーのペアを生成します。cosign generate-key-pair k8s://openshift-pipelines/signing-secrets
$ cosign generate-key-pair k8s://openshift-pipelines/signing-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cosign はパスワードの入力を求め、Kubernetes シークレットを作成します。
- 
							暗号化された 
cosign.key秘密鍵とcosign.password復号化パスワードを、signing-secretsKubernetes シークレットに保存します。秘密鍵がENCRYPTED COSIGN PRIVATE KEY型の暗号化された PEM ファイルとして保存されていることを確認します。 
1.3.3. skopeo ツールを使用した署名シークレットの手動生成 リンクのコピーリンクがクリップボードにコピーされました!
					skopeo ツールを使用して鍵を生成し、Tekton Chains で cosign 署名スキームで使用できます。
				
前提条件
- 
							Linux システムに 
skopeoパッケージをインストールした。 
手順
次のコマンドを実行して、公開鍵と秘密鍵のペアを生成します。
skopeo generate-sigstore-key --output-prefix <mykey>
$ skopeo generate-sigstore-key --output-prefix <mykey>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 <mykey>を選択した鍵名に置き換えます。
Skopeo は秘密鍵のパスフレーズの入力を求め、
<mykey>.privateおよび<mykey>.pubという名前の鍵ファイルを作成します。次のコマンドを実行し、
base64ツールを使用して<mykey>.pubファイルをエンコードします。base64 -w 0 <mykey>.pub > b64.pub
$ base64 -w 0 <mykey>.pub > b64.pubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行し、
base64ツールを使用して<mykey>.privateファイルをエンコードします。base64 -w 0 <mykey>.private > b64.private
$ base64 -w 0 <mykey>.private > b64.privateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行し、
base64ツールを使用してパスフレーズをエンコードします。echo -n '<passphrase>' | base64 -w 0 > b64.passphrase
$ echo -n '<passphrase>' | base64 -w 0 > b64.passphrase1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 <passphrase>を鍵ペアに使用したパスフレーズに置き換えます。
次のコマンドを実行して、
openshift-pipelinesnamespace にsigning-secretsシークレットを作成します。oc create secret generic signing-secrets -n openshift-pipelines
$ oc create secret generic signing-secrets -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
signing-secretsシークレットを編集します。oc edit secret -n openshift-pipelines signing-secrets
$ oc edit secret -n openshift-pipelines signing-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の方法で、エンコードされた鍵をシークレットのデータに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
1.3.4. "secret already exists" エラーの解決 リンクのコピーリンクがクリップボードにコピーされました!
					signing-secret シークレットがすでに入力されている場合、このシークレットを作成するコマンドは次のエラーメッセージを出力する可能性があります。
				
Error from server (AlreadyExists): secrets "signing-secrets" already exists
Error from server (AlreadyExists): secrets "signing-secrets" already exists
このエラーは、シークレットを削除することで解決できます。
手順
次のコマンドを実行して、
signing-secretシークレットを削除します。oc delete secret signing-secrets -n openshift-pipelines
$ oc delete secret signing-secrets -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 鍵ペアを再作成し、任意の署名スキームを使用してシークレットに保存します。