このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンスでパッケージ検証に使用されるルート認証局をローテーションする方法について説明します。
GDC パッケージの検証では、ルート認証局(CA)を使用してリリースキー証明書を検証します。そのため、ルート CA 証明書を定期的にローテーションすることが重要になります。リリース通知またはアップグレードの実行時に表示される可能性のある警告メッセージで指示された場合は、ルート CA をローテーションする必要があります。
始める前に
パッケージ検証証明書をローテーションするには、必要な ID とアクセスロールが必要です。
package-validation-root-certs ConfigMapへの書き込みアクセス権があることを確認します。- セキュリティ管理者に、アップグレード デバッガ(
upgrade-debugger-cp)ロールを付与するよう依頼します。
証明書のローテーションが必要かどうかを確認する
オペレーションを実行する前に、パッケージ検証証明書のローテーションが必要かどうかを確認します。
KUBECONFIG環境変数を設定します。$ KUBECONFIG=PATH_TO_KUBECONFIG_FILEPATH_TO_KUBECONFIG_FILEは、ルート管理クラスタでgdcloud auth loginを実行して取得したkubeconfigファイルのパスに置き換えます。現在のトラスト アンカーと最新のトラスト アンカーを比較して、アップグレードが必要かどうかを判断します。
harbor-system/package-validation-root-certsのConfigMapデータは、ローカル トラスト アンカーと比較されます。$ CURRENT_TRUST_ANCHOR=$(kubectl --kubeconfig=$KUBECONFIG get cm package-validation-root-certs -n harbor-system -o jsonpath='{.data.ca\.crt}') $ LATEST_TRUST_ANCHOR=$(cat /root/release/staging_root_ca_certificate.crt) $ diff <( echo "$CURRENT_TRUST_ANCHOR" ) <( echo "$LATEST_TRUST_ANCHOR" ) && echo trust anchors are same || echo trust anchors are different, upgrade required!
アプライアンスで証明書のローテーションとアップグレードを行う
次の手順に沿って、ルート管理クラスタの harbor-system/package-validation-root-certs にある ConfigMap オブジェクトをローテーションします。インフラストラクチャ オペレーターには、ConfigMap への書き込みアクセス権が必要です。
次の変数を作成して値を割り当てます。
USERNAME=USER_NAME #IO TARGET_FOLDER=/tmp/${USERNAME} OUTPUT="${TARGET_FOLDER}/package-validation-root-certs.yaml" LATEST_TRUST_ANCHOR_CA_FILE=/root/release/staging_root_ca_certificate.crt CONFIGMAP_NAME=package-validation-root-certs NAMESPACE=harbor-systemUSER_NAMEは、IO ユーザー名に置き換えます。証明書のローテーション プロセスの出力ファイルを含むターゲット フォルダを作成します。
mkdir -p "${TARGET_FOLDER}"LATEST_TRUST_ANCHORの値を更新して置き換えます。cat <<EOF > "${OUTPUT}" apiVersion: v1 kind: ConfigMap metadata: name: ${CONFIGMAP_NAME} namespace: ${NAMESPACE} data: ca.crt: | $(sed 's/^/ /' "${LATEST_TRUST_ANCHOR_CA_FILE}") EOFkubectlを使用して新しい構成を適用します。kubectl apply -f ${OUTPUT}新しく適用された ca.crt が
ConfigMap内に存在することを確認します。kubectl describe configmap package-validation-root-certs -n harbor-system
これにより、package-validation-root-cert で新しい証明書がローテーションされます。