# アーティファクト証明書

アーティファクトの証明書の使用とセキュリティ上の利点について理解します。

## 概要

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

ソフトウェアを使用してアーティファクトの証明を生成すると、ビルドの来歴を立証し、次の情報を含む暗号署名付きの主張が作成されます。

* 成果物に関連付けられているワークフローへのリンク
* 成果物のリポジトリ、組織、環境、コミット SHA、トリガーとなったイベント
* 証明の確立に使用する OIDC トークンからのその他の情報。 詳しくは、「[OpenID Connect](/ja/enterprise-cloud@latest/actions/concepts/security/openid-connect)」をご覧ください。

関連付けられたソフトウェア部品表（SBOM）を含むアーティファクトのアテステーションを生成することもできます。 ビルドを、その中で使用されるオープンソースの依存関係の一覧に関連付けることで、透明性は提供され、コンシューマーがデータ保護標準に準拠できるようになります。

## アーティファクト証明の SLSA レベル

SLSA フレームワークは、サプライ チェーンのセキュリティを評価に使用される業界標準です。 レベルごとに編成されています。 各レベルは、ソフトウェア サプライ チェーンのセキュリティと信頼性の程度を表します。 アーティファクトの証明そのものが、SLSA v1.0 ビルドレベル 2 を提供します。

これにより、アーティファクトとその構築命令間のリンクが提供されますが、既知の検査済みの構築命令を使用して構築を要求することで、この手順をさらに進めることができます。 これを実現するのに良い方法は、組織全体の多くのリポジトリが共有する再利用可能なワークフローで構築を実行することです。 再利用可能なワークフローは、SLSA v1.0 構築レベル 3 を満たすために、構築プロセスと呼び出し元のワークフローの間で分離を提供できます。 詳しくは、「[成果物の構成証明と再利用可能なワークフローを使用して SLSA v1 ビルド レベル 3 を実現する](/ja/enterprise-cloud@latest/actions/how-tos/secure-your-work/use-artifact-attestations/increase-security-rating)」をご覧ください。

SLSA レベルの詳細については、「[SLSA セキュリティ レベル](https://slsa.dev/spec/v1.0/levels)」を参照してください。

## GitHub がアーティファクトのアテステーションを生成する方法

成果物の構成証明を生成するために、GitHubは Sigstore を使用します。これは、構成証明を介してソフトウェア成果物の署名と検証を行う包括的なソリューションを提供するオープンソース プロジェクトです。

**アーティファクト構成証明を生成するパブリック リポジトリ** では、[Sigstore Public Good Instance](https://openssf.org/blog/2023/10/03/running-sigstore-as-a-managed-service-a-tour-of-sigstores-public-good-instance/) が使用されます。 生成された Sigstore バンドルのコピーは、GitHubと共に格納され、インターネット上でパブリックに読み取り可能な不変の透過性ログにも書き込まれます。

アーティファクト構成証明を生成する **Private リポジトリ**は、GitHubの Sigstore インスタンスを使用します。 GitHub の Sigstore インスタンスは Sigstore Public Good Instance と同じコードベースを使用しますが、透過性ログはなく、 GitHub Actionsとのフェデレーションのみを行います。

## アテステーションを生成するタイミング

構成証明を生成するだけではセキュリティ上の利点はありません。利点を実現するには、構成証明を検証する必要があります。 署名の対象と頻度について検討する方法に関するガイドラインを次に示します。

以下に署名する必要があります。

* ユーザーが `gh attestation verify ...` を実行することを期待しているリリース対象のソフトウェア。
* ユーザーが実行するバイナリ、ユーザーがダウンロードするパッケージ、または詳細な内容のハッシュを含むマニフェスト。

以下に**署名しないでください**。

* 自動テスト用の頻繁な構築。
* ソース コード、ドキュメント ファイル、埋め込みイメージなどの個々のファイル。

## アーティファクト証明書の検証

成果物アテステーションを公開するソフトウェアを利用している場合は、GitHub CLI を使用してそれらのアテステーションを検証できます。 構成証明ではソフトウェアの構築場所と方法に関する情報が提供されるため、その情報を使用して、サプライ チェーンのセキュリティを昇格させるセキュリティ ポリシーを作成して適用できます。

> \[!WARNING] アーティファクトの証明書は、アーティファクトが安全である保証\_ではない\_ことを忘れないことが重要です。 代わりに、アーティファクト構成証明はお客様を、ソース コードやそれらを生成したビルド手順にリンクします。 ポリシーの条件を定義し、コンテンツを評価してそのポリシーを評価して、ソフトウェアを使用する際に情報に基づいたリスクを判断するのは、ユーザーの責任です。

## 次のステップ

ビルドの成果物構成証明の生成と検証を始めるには、「[アーティファクトの構成証明を使用してビルドの出所を確立する](/ja/enterprise-cloud@latest/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations)」をご覧ください。