# 変更不可リリース

変更不可リリースと、それらがソフトウェア サプライ チェーンの整合性を維持するためにどのように役立つかについて説明します。

**変更不可リリース**とは、公開後にアセットと関連する Git タグを変更できないリリースです。 この種のリリースを使用すると、サプライ チェーン攻撃をブロックすることでセキュリティが強化されます。 攻撃者は次のことはできません。

* 現在のプロジェクト リリースに脆弱性やマルウェアを挿入します。
* 開発者ワークフローを中断する可能性がある資産とタグを変更します。

## 変更できないリリースで保護されるもの

変更できないリリースを有効にすると、次の保護が適用されます。

* **Git タグは移動できません**。変更できないリリースが発行されると、その関連する Git タグは特定のコミットにロックされ、変更できず、リリースが存在する間は削除できません。 変更できないリリースを削除した場合は、タグを削除できますが、同じタグ名を再利用することはできません。
* **リリースアセットを変更または削除することはできません**:リリースにアタッチされているすべてのファイル (バイナリやアーカイブなど) は、変更または削除から保護されます。

さらに、変更不可リリースを作成すると、**リリース構成証明**が自動的に生成されます。これは、リリース タグ、コミット SHA、およびリリース アセットを含むリリースに関する、暗号で検証可能なレコードです。 コンシューマーは、この構成証明を使用して、使用しているリリースと成果物が公開された GitHub リリースと正確に一致することを確認できます。

> \[!NOTE]
> 不変リリースには、リポジトリの復活攻撃に対する保護が含まれます。 リポジトリを削除し、同じ名前の新しいリポジトリを作成した場合でも、元のリポジトリの変更できないリリースに関連付けられたタグを再利用することはできません。

リリースが変更できない場合は、リリース ページのタイトルの下に <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-lock" aria-label="lock icon" role="img"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>**Immutable**" と表示されます。

## 変更できないリリースを発行するためのベスト プラクティス

変更できないリリースを発行するには、次のワークフローを使用することをお勧めします。

1. 下書きとしてリリースを作成します。
2. 関連付けられているすべてのアセットをドラフト リリースにアタッチします。
3. ドラフト リリースを発行します。

これにより、リリースが不変になる前にすべての資産が確実に配置されるため、不変性の制限を回避する必要がなくなります。

## 次のステップ

リポジトリまたは organization の変更不可リリースを有効にする方法については、「[リリースに対する変更の防止](/ja/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/prevent-release-changes)」を参照してください。

リリースとローカル アセットが変更されていないことを確認する方法については、「[リリースの整合性の検証](/ja/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/verify-release-integrity)」を参照してください。