Необходимые компоненты
Перед началом работы с этим руководством необходимо ознакомиться со следующими сведениями:
- Преимущества использования и безопасности аттестаций артефактов. См . раздел AUTOTITLE.
- Создание аттестаций артефактов. См . раздел AUTOTITLE.
- Написание и использование повторно используемых рабочих процессов. См . раздел AUTOTITLE.
Шаг 1. Настройка сборок
Во-первых, необходимо создать сборку как с аттестациями артефактов, так и с повторно используемым рабочим процессом.
Создание с помощью повторно используемых рабочих процессов
Если вы еще не используете повторно используемые рабочие процессы для сборки программного обеспечения, вам потребуется выполнить шаги сборки и переместить их в повторно используемый рабочий процесс.
Создание с аттестациями артефактов
Повторно используемый рабочий процесс, используемый для сборки программного обеспечения, также должен создавать аттестации артефактов для установления подтверждения сборки.
При использовании повторно используемого рабочего процесса для создания аттестаций артефактов вызов рабочий процесс и повторно используемый рабочий процесс должны иметь следующие разрешения.
permissions: attestations: write contents: read id-token: write
permissions:
attestations: write
contents: read
id-token: write
Если вы создаете образы контейнеров, вам также потребуется включить packages: write
разрешение.
Шаг 2. Проверка аттестаций артефактов, созданных с помощью повторно используемых рабочих процессов
Чтобы проверить аттестации артефактов, созданных с помощью сборок, можно использовать gh attestation verify
из интерфейса командной строки GitHub.
Для gh attestation verify
выполнения команды требуется --owner
использовать с ней флаги или --repo
флаги. Эти флаги выполняют две действия.
- Они говорят
gh attestation verify
, откуда получить аттестацию. Это всегда будет рабочий процесс вызывающего объекта. - Они говорят
gh attestation verify
, откуда пришел рабочий процесс, из которого была подписана подпись. Это всегда будет рабочий процесс, использующийattest-build-provenance
действие, которое может быть повторно используемым рабочим процессом.
С помощью команды можно использовать необязательные флаги gh attestation verify
.
- Если повторно используемый рабочий процесс не находится в том же репозитории, что и рабочий процесс вызывающего объекта, используйте
--signer-repo
флаг, чтобы указать репозиторий, содержащий повторно используемый рабочий процесс. - Если требуется подписать аттестацию артефактов с определенным рабочим процессом, используйте
--signer-workflow
флаг, чтобы указать файл рабочего процесса, который следует использовать.
Например, если ваш вызывающий рабочий процесс и ORGANIZATION_NAME/REPOSITORY_NAME/.github/workflows/calling.yml
используется REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml
, можно сделать следующее:
gh attestation verify -o ORGANIZATION_NAME --signer-repo REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME PATH/TO/YOUR/BUILD/ARTIFACT-BINARY
gh attestation verify -o ORGANIZATION_NAME --signer-repo REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME PATH/TO/YOUR/BUILD/ARTIFACT-BINARY
Или если вы хотите указать точный рабочий процесс:
gh attestation verify -o ORGANIZATION_NAME --signer-workflow REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml PATH/TO/YOUR/BUILD/ARTIFACT-BINARY
gh attestation verify -o ORGANIZATION_NAME --signer-workflow REUSABLE_ORGANIZATION_NAME/REUSABLE_REPOSITORY_NAME/.github/workflows/reusable.yml PATH/TO/YOUR/BUILD/ARTIFACT-BINARY