Skip to main content

Kubernetes アドミッション コントローラー

アドミッション コントローラーを使って Kubernetes クラスターで成果物の構成証明を適用する方法について説明します。

Kubernetes アドミッション コントローラーについて

アーティファクト構成証明 を使用することで、ビルドするソフトウェアに対して証明不可能な起源と整合性の保証を作成できます。 さらに、ソフトウェアを使用するユーザーは、ソフトウェアがビルドされた場所と方法の確認ができます。

Kubernetes アドミッション コントローラーは、Kubernetes API サーバーの動作を制御するプラグインです。 これらは一般的に、Kubernetes クラスターでセキュリティ ポリシーとベスト プラクティスを適用するために使用されます。

オープンソース Sigstore ポリシー コントローラー プロジェクトを使用すると、アーティファクト構成証明を適用できる Kubernetes クラスターにアドミッション コントローラーを追加できます。 これにより、有効な構成証明を持つアーティファクトのみを確実にデプロイできます。

コントローラーをインストールする ために、Sigstore ポリシー コントローラーをデプロイするためのチャートと、GitHub 信頼ルートと既定のポリシーを読み込むためのチャートの、2 つの Helm チャート が用意されています。

イメージの検証について

ポリシー コントローラーをインストールすると、すべてのイメージの pull request がインターセプトされ、イメージの構成証明が検証されます。 Sigstore バンドル (構成証明と、構成証明の検証に使われる暗号化素材 (証明書、シグネチャなど) を含むもの) をまとめた OCI アタッチ成果物という形式で、構成証明をイメージ レジストリに格納する必要があります。 次に、イメージが、指定した構築実績を使ってビルドされていること、クラスター管理者によって有効にされたポリシーと一致することを確認する検証プロセスが実行されます。

イメージを検証できるようにするには、レジストリに有効な構築実績構成証明が存在する必要があります。これを実現するには、actions/attest-build-provenance アクションで push-to-registry: true 属性を有効にします。 コンテナー イメージの構築実績を生成する方法の詳細については、「コンテナー イメージの構築実績の生成」を参照してください。

信頼のルートとポリシーについて

Sigstore ポリシー コントローラーは、主に、カスタム リソース TrustRootClusterImagePolicyによって表される信頼ルートとポリシーで構成されます。 TrustRoot は、構成証明の検証に使用されるパブリック キー マテリアルの信頼された配布チャネルを表します。 ClusterImagePolicy は、イメージに構成証明を適用するためのポリシーを表します。

また、TrustRoot には TUF リポジトリのルートが含まれている場合があるため、クラスターは、その信頼されたパブリック キー マテリアルの更新を継続的かつ安全に受信できます。 指定しないでおく場合は、ClusterImagePolicy は既定で オープンソース Sigstore Public Good Instance のキー マテリアルを使用します。 プライベート リポジトリ用に生成された構成証明を確認する場合、ClusterImagePolicy は GitHub TrustRoot を参照する必要があります。

次のステップ

アドミッション コントローラーを使う準備ができたら、「Enforcing artifact attestations with a Kubernetes admission controller」をご覧ください。