第3章 The Update Framework のメタデータファイルの更新


デフォルトでは、The Update Framework (TUF) メタデータファイルは、Securesign インスタンスのデプロイメント日から 52 週間後に期限切れになります。少なくとも、有効期限が切れる前に 52 週間ごとに 1 回は TUF メタデータファイルを更新する必要があります。Red Hat では、メタデータファイルを 1 年に 1 回以上更新することを推奨しています。

この手順では、ルートメタデータファイルと非ルートメタデータファイルを更新する手順を説明します。

前提条件

  • Red Hat OpenShift Container Platform 上で実行される RHTAS Operator をインストールする。
  • Securesign インスタンスを実行する。
  • oc バイナリーがインストールされているワークステーション。

手順

  1. OpenShift クラスターからワークステーションに tuftool バイナリーをダウンロードします。

    重要

    tuftool バイナリーは Linux オペレーティングシステムでのみ使用できます。

    1. ホームページから ? アイコンをクリックして、Command line tools をクリックし、tuftool ダウンロードセクションに移動し、プラットフォームのリンクをクリックします。
    2. ワークステーションでターミナルを開き、バイナリー .gz ファイルを展開し、実行ビットを設定します。

      $ gunzip tuftool-amd64.gz
      $ chmod +x tuftool-amd64

    3. バイナリーを $PATH 環境内の場所に移動し、名前を変更します。

      $ sudo mv tuftool-amd64 /usr/local/bin/tuftool

  2. コマンドラインから OpenShift にログインします。

    構文

    oc login --token=TOKEN --server=SERVER_URL_AND_PORT

    $ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443

    注記

    OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。入力を求められた場合はユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。

  3. RHTAS プロジェクトに切り替えます。

    $ oc project trusted-artifact-signer

  4. シェル環境を設定します。

    $ export WORK="${HOME}/trustroot-example"
    $ export ROOT="${WORK}/root/root.json"
    $ export KEYDIR="${WORK}/keys"
    $ export INPUT="${WORK}/input"
    $ export TUF_REPO="${WORK}/tuf-repo"
    $ export TUF_SERVER_POD="$(oc get pod --selector=app.kubernetes.io/component=tuf --no-headers -o custom-columns=":metadata.name")"
    
    $ export TIMESTAMP_EXPIRATION="in 10 days"
    $ export SNAPSHOT_EXPIRATION="in 26 weeks"
    $ export TARGETS_EXPIRATION="in 26 weeks"
    $ export ROOT_EXPIRATION="in 26 weeks"

    要件に応じて有効期限を設定します。

  5. 一時的な TUF ディレクトリー構造を作成します。

    $ mkdir -p "${WORK}/root/" "${KEYDIR}" "${INPUT}" "${TUF_REPO}"

  6. TUF コンテンツを一時的な TUF ディレクトリー構造にダウンロードします。

    $ oc extract --to "${KEYDIR}/" secret/tuf-root-keys
    $ oc cp "${TUF_SERVER_POD}:/var/www/html" "${TUF_REPO}"
    $ cp "${TUF_REPO}/root.json" "${ROOT}"

  7. タイムスタンプ、スナップショット、ターゲットのメタデータをすべて 1 つのコマンドで更新できます。

    $ tuftool update \
      --root "${ROOT}" \
      --key "${KEYDIR}/timestamp.pem" \
      --key "${KEYDIR}/snapshot.pem" \
      --key "${KEYDIR}/targets.pem" \
      --timestamp-expires "${TIMESTAMP_EXPIRATION}" \
      --snapshot-expires "${SNAPSHOT_EXPIRATION}" \
      --targets-expires "${TARGETS_EXPIRATION}" \
      --outdir "${TUF_REPO}" \
      --metadata-url "file://${TUF_REPO}"

    注記

    TUF メタデータファイルのサブセットに対して TUF メタデータ更新を実行することもできます。たとえば、timestamp.json メタデータファイルは、他のメタデータファイルよりも頻繁に期限切れになります。したがって、次のコマンドを実行するだけで、タイムスタンプメタデータファイルを更新できます。

    $ tuftool update \
      --root "${ROOT}" \
      --key "${KEYDIR}/timestamp.pem" \
      --timestamp-expires "${TIMESTAMP_EXPIRATION}" \
      --outdir "${TUF_REPO}" \
      --metadata-url "file://${TUF_REPO}"
  8. ルートの有効期限が切れそうな場合にのみ、有効期限を更新します。

    $ tuftool root expire "${ROOT}" "${ROOT_EXPIRATION}"

    注記

    ルートファイルの有効期限がまだ先の場合は、この手順をスキップできます。

  9. ルートバージョンを更新します。

    $ tuftool root bump-version "${ROOT}"

  10. ルートメタデータファイルに再度署名します。

    $ tuftool root sign "${ROOT}" -k "${KEYDIR}/root.pem"

  11. 新しいルートバージョンを設定し、ルートメタデータファイルを所定の場所にコピーします。

    $ export NEW_ROOT_VERSION=$(cat "${ROOT}" | jq -r ".signed.version")
    $ cp "${ROOT}" "${TUF_REPO}/root.json"
    $ cp "${ROOT}" "${TUF_REPO}/${NEW_ROOT_VERSION}.root.json"

  12. これらの変更を TUF サーバーにアップロードします。

    $ oc rsync "${TUF_REPO}/" "${TUF_SERVER_POD}:/var/www/html"

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.