第3章 オフライン環境で署名されたアーティファクトを検証する
場合によっては、アーティファクトの信頼性を検証する必要がありますが、そのアーティファクトに署名した Red Hat Trusted Artifact Signer (RHTAS) サービスにアクセスできないことがあります。このような場合でも、オフライン検証を行うことでアーティファクトの署名を検証できます。
オフラインでのアーティファクト検証を開始する前に、RHTAS 署名環境とイメージレジストリーへのアクセスが必要です。オフライン環境では、署名環境と同じイメージレジストリーへのアクセスのみが必要です。
前提条件
- Red Hat OpenShift Container Platform 上、または Ansible 管理の Red Hat Enterprise Linux (RHEL) 上で実行される RHTAS のインストール。
-
cosign
、tuftool
、tar
、sha256sum
バイナリーがインストールされたワークステーション。 -
現在の署名環境での
cosign
の初期化。
手順
署名環境で、次の手順を実行します。
cosign
を使用してイメージに署名します。構文
cosign sign IMAGE_NAME:TAG
cosign sign IMAGE_NAME:TAG
Copy to Clipboard Copied! 例
cosign sign -y ttl.sh/rhtas/example-image:1h
cosign sign -y ttl.sh/rhtas/example-image:1h
Copy to Clipboard Copied! 信頼ルート URL を取得します。
Red Hat Enterprise Linux 上の RHTAS デプロイメントの場合:
例
export BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_SERVER_URL=https://tuf.${BASE_HOSTNAME}
export BASE_HOSTNAME=BASE_HOSTNAME_OF_RHTAS_SERVICE export TUF_SERVER_URL=https://tuf.${BASE_HOSTNAME}
Copy to Clipboard Copied! Red Hat OpenShift Container Platform 上の RHTAS デプロイメントの場合:
例
export TUF_SERVER_URL="$(oc get tuf -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer)"
export TUF_SERVER_URL="$(oc get tuf -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer)"
Copy to Clipboard Copied!
信頼ルートのクローンをローカルに作成します。
例
export TUF_REPOSITORY="${HOME}/repository" tuftool clone --allow-root-download --metadata-dir "${TUF_REPOSITORY}" --targets-dir "${TUF_REPOSITORY}/targets" --metadata-url "${TUF_SERVER_URL}" --targets-url "${TUF_SERVER_URL}/targets"
export TUF_REPOSITORY="${HOME}/repository" tuftool clone --allow-root-download --metadata-dir "${TUF_REPOSITORY}" --targets-dir "${TUF_REPOSITORY}/targets" --metadata-url "${TUF_SERVER_URL}" --targets-url "${TUF_SERVER_URL}/targets"
Copy to Clipboard Copied! 信頼ルートの圧縮アーカイブファイルを作成します。
例
tar -czvf repository.tar.gz "${TUF_REPOSITORY}" sha256sum repository.tar.gz
tar -czvf repository.tar.gz "${TUF_REPOSITORY}" sha256sum repository.tar.gz
Copy to Clipboard Copied! 後でオフライン環境で使用するために、チェックサムの出力をメモしておきます。
圧縮されたアーカイブファイルをオフライン環境にコピーします。
重要The Update Framework (TUF) メタデータファイルを更新するたび、または RHTAS コンポーネントキーと証明書をローテーションするたびに、Trust Root の圧縮アーカイブファイルをコピーする必要があります。
オフライン環境では、次の手順を実行します。
- 信頼ルートの圧縮アーカイブファイルをコピーしたディレクトリーに変更します。
署名環境のチェックサム値を使用してチェックサムを検証します。
例
echo "SHA256_CHECKSUM repository.tar.gz" > checksum.txt sha256sum --check checksum.txt || echo "Archive integrity compromised, don't continue with the procedure\!"
echo "SHA256_CHECKSUM repository.tar.gz" > checksum.txt sha256sum --check checksum.txt || echo "Archive integrity compromised, don't continue with the procedure\!"
Copy to Clipboard Copied! 重要整合性チェックが成功した場合のみ続行します。
圧縮されたアーカイブファイルを展開します。
例
tar -xzvf repository.tar.gz
tar -xzvf repository.tar.gz
Copy to Clipboard Copied!
cosign
を初期化します。例
cd repository/ cosign initialize --mirror=file://$(pwd)/ --root=$(pwd)/1.root.json
cd repository/ cosign initialize --mirror=file://$(pwd)/ --root=$(pwd)/1.root.json
Copy to Clipboard Copied! 署名されたアーティファクトを検証します。
例
export IMAGE="IMAGE_NAME:TAG" export SIGNING_EMAIL_ADDR=SIGNING_EMAIL_ADDRESS export SIGNING_OIDC_ISSUER=OIDC_ISSUER_URL cosign verify --certificate-identity="${SIGNING_EMAIL_ADDR}" --certificate-oidc-issuer="${SIGNING_OIDC_ISSUER}" "${IMAGE}"
export IMAGE="IMAGE_NAME:TAG" export SIGNING_EMAIL_ADDR=SIGNING_EMAIL_ADDRESS export SIGNING_OIDC_ISSUER=OIDC_ISSUER_URL cosign verify --certificate-identity="${SIGNING_EMAIL_ADDR}" --certificate-oidc-issuer="${SIGNING_OIDC_ISSUER}" "${IMAGE}"
Copy to Clipboard Copied!