RSS DEV コミュニティ
フォロー
ルート権限で実行する前にセルフホストインストーラーを検証する
インストーラーを直接rootとして実行すると、アーティファクトの選択、整合性チェック、実行承認が単一のリスクの高いステップに統合されます。これらの決定を個別のステージに分離することで、レビュー可能性、再現性、回復性が向上します。具体的なソースレビュー境界には、ダウンロード前にアーキテクチャを確認し、基本的なシステムチェックを実行することが含まれます。しかし、レビューされたテンプレートは、curl -k を使用して証明書検証を無効にし、バージョン指定のないファイルをダウンロードしており、ピン留めされたバージョン、ダイジェスト、または署名の明示的なチェックが行われていません。これを改善するために、バージョン、アーキテクチャ、ファイル名、SHA-256ハッシュ、ロールバック情報などの不変メタデータを含むマニフェストを別途公開する必要があります。このマニフェストは、セキュアなリリースプロセスによって保護され、TLSまたはデジタル署名を使用して検証できます。検証は、特権のないステージングステップとして行う必要があります。コンパニオンスクリプトは、マニフェストに対してファイル名、正確なサイズ、ダイジェスト、バージョン、アーキテクチャ、およびロールバックメタデータをチェックできます。この検証プロセスでは、ダウンロードされたファイルを決して実行してはなりません。本番フローでは、アーティファクトをダウンロードし、マニフェストに対して検証し、その後、明示的なメンテナンスの決定を経て、昇格された権限で実行する必要があります。証明書エラーは、検証を -k でバイパスするのではなく、トラストストアまたはデプロイメントの問題を修正することで対処する必要があります。ロールバックは、以前のアーティファクト、そのマニフェスト、互換性、サービスコマンド、ヘルスチェック、元に戻せるマイグレーション、およびクリーンアップ手順の詳細を含む、明確に定義された実行可能な計画である必要があります。本番デプロイメントの前に、ロールバックは、シミュレートされた障害を伴うカナリア環境でリハーサルする必要があります。特権実行は、TLS検証が成功し、不変バージョンが指定され、信頼できるマニフェストがダウンロードされたファイルと一致し、署名検証が適用可能な場合はパスし、カナリアヘルスチェックが良好で、ロールバック手順が検証されている場合にのみ許可されるべきです。この構造化されたアプローチは、盲目的なネットワークからrootへの操作を、検査可能で自動化可能なプロセスに変えます。