{"meta":{"title":"成果物の構成証明と再利用可能なワークフローを使用して SLSA v1 ビルド レベル 3 を実現する","intro":"再利用可能なワークフローと成果物の構成証明を使用してソフトウェアを構築することで、サプライ チェーンのセキュリティを合理化し、SLSA v1.0 ビルド レベル 3 を達成するのに役立ちます。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/actions","title":"GitHub Actions"},{"href":"/ja/actions/how-tos","title":"方法"},{"href":"/ja/actions/how-tos/secure-your-work","title":"作業をセキュリティで保護する"},{"href":"/ja/actions/how-tos/secure-your-work/use-artifact-attestations","title":"アーティファクト検証証明の使用"},{"href":"/ja/actions/how-tos/secure-your-work/use-artifact-attestations/increase-security-rating","title":"セキュリティ レベルを引き上げる"}],"documentType":"article"},"body":"# 成果物の構成証明と再利用可能なワークフローを使用して SLSA v1 ビルド レベル 3 を実現する\n\n再利用可能なワークフローと成果物の構成証明を使用してソフトウェアを構築することで、サプライ チェーンのセキュリティを合理化し、SLSA v1.0 ビルド レベル 3 を達成するのに役立ちます。\n\n## 前提条件\n\nこのガイドを開始する前に、以下について理解しておく必要があります。\n\n* 成果物証明の使用とセキュリティ上の利点。 「[アーティファクト証明書](/ja/actions/concepts/security/artifact-attestations)」を参照してください。\n* 成果物証明の生成 「[アーティファクトの構成証明を使用してビルドの出所を確立する](/ja/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations)」を参照してください。\n* 再利用可能なワークフローの作成と使用。 「[ワークフローを再利用する](/ja/actions/how-tos/reuse-automations/reuse-workflows)」を参照してください。\n\n## 手順 1: ビルドを構成する\n\nまず、アーティファクト証明と再利用可能なワークフローの両方を使用してビルドを行います。\n\n### 再利用可能なワークフローを使用するビルド\n\n再利用可能なワークフローを使用してソフトウェアをビルドしていない場合は、ビルド手順を実行し、再利用可能なワークフローに移動する必要があります。\n\n### 成果物の構成証明と組み合わせてビルド\n\nソフトウェアのビルドに使用する再利用可能なプロセスでは、ビルドの出所を確立するためにアーティファクトの証明書も生成する必要があります。\n\n再利用可能なワークフローを使用して成果物の構成証明を生成する場合、呼び出し元のワークフローと再利用可能なワークフローの両方に次のアクセス許可が必要です。\n\n```yaml copy\npermissions:\n  attestations: write\n  contents: read\n  id-token: write\n```\n\nコンテナー イメージをビルドする場合は、`packages: write` アクセス許可も含める 必要があります。\n\n## 手順 2: 再利用可能なワークフローで構築された成果物の構成証明の確認\n\nビルドで生成された成果物構成証明を確認するには、GitHub CLI から [`gh attestation verify`](https://cli.github.com/manual/gh_attestation_verify) を使用できます。\n\nこの `gh attestation verify` コマンドでは、`--owner` または `--repo` フラグを使用する必要があります。 これらのフラグは 2 つのことを行います。\n\n* それらは `gh attestation verify` に対して、どこから構成証明を取得するかを伝えます。 これが常にあなたのコール元のワークフローになります。\n* 署名を行ったワークフローの発信元を `gh attestation verify` に伝えます。 これは常に、再利用可能なワークフローである可能性がある [`attest` アクション](https://github.com/actions/attest)を使用するワークフローになります。\n\n`gh attestation verify` コマンドにオプションのフラグを使用できます。\n\n* 再利用可能なワークフローが呼び出し元ワークフローと同じリポジトリにない場合は、`--signer-repo` フラグを使用して、再利用可能なワークフローを含むリポジトリを指定します。\n* 特定のワークフローで成果物の構成証明に署名する必要がある場合は、`--signer-workflow` フラグを使用して、使用するワークフロー ファイルを指定します。\n\nたとえば、呼び出し元のワークフローが `ORGANIZATION_NAME/REPOSITORY_NAME/.github/workflows/calling.yml` で `REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml` を使用する場合、次のようにすることができます。\n\n```bash copy\ngh attestation verify -o ORGANIZATION_NAME --signer-repo REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME PATH/TO/YOUR/BUILD/ARTIFACT-BINARY\n```\n\nまたは、正確なワークフローを指定する場合は、次のようにします。\n\n```bash copy\ngh attestation verify -o ORGANIZATION_NAME --signer-workflow REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml PATH/TO/YOUR/BUILD/ARTIFACT-BINARY\n```"}