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

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

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

[アーティファクト構成証明](/ja/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations) を使用することで、ビルドするソフトウェアに対して証明不可能な起源と整合性の保証を作成できます。 さらに、ソフトウェアを使用するユーザーは、ソフトウェアがビルドされた場所と方法の確認ができます。

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

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

[コントローラーをインストールする](/ja/actions/how-tos/secure-your-work/use-artifact-attestations/enforce-artifact-attestations) ために、Sigstore ポリシー コントローラーをデプロイするためのチャートと、GitHub 信頼ルートと既定のポリシーを読み込むためのチャートの、[2 つの Helm チャート](https://github.com/github/artifact-attestations-helm-charts) が用意されています。

### イメージの検証について

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

イメージを検証可能にするには、レジストリに有効なプロバナンスアテステーションが必要です。これを行うには、`push-to-registry: true` アクションで `actions/attest` 属性を有効にします。 コンテナー イメージの構築実績を生成する方法の詳細については、「[コンテナー イメージの構築実績の生成](/ja/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations)」を参照してください。

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

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

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

## 次のステップ

アドミッション コントローラーを使う準備ができたら、「[Kubernetes アドミッション コントローラーを使用したアーティファクト証明の強制](/ja/actions/how-tos/secure-your-work/use-artifact-attestations/enforce-artifact-attestations)」をご覧ください。