Введение
Аттестации артефактов — отличный способ создания нефиксируемых подтверждений и гарантий целостности создаваемого программного обеспечения.
По умолчанию аттестации хранятся в API аттестации GitHub, который gh attestation verify
будет запрашивать при проверке аттестации. Эта команда также свяжется с серверами GitHub, чтобы проверить наличие обновленного материала ключа для проверки аттестации.
Эта команда может работать без подключения к Интернету, но необходимо указать пакет аттестации и материал ключа в доверенном корневом каталоге вручную.
Перед началом работы с этим руководством необходимо создать с помощью создания аттестаций артефактов. См. раздел "Использование аттестаций артефактов для установления происхождения сборок".
Шаг 1. Скачивание пакета аттестации
Сначала получите пакет аттестации из API аттестации.
Это можно сделать с помощью следующей команды на компьютере, который находится в сети:
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
Ниже приведен пример выходных данных из этой команды:
Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten
The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl
Шаг 2. Скачивание доверенных корней
Затем получите ключевой материал из доверенных корней.
Аттестации артефактов используют общедоступный экземпляр Sigstore для общедоступных репозиториев и экземпляр Sigstore GitHub для частных репозиториев. Для получения обоих доверенных корней можно использовать одну команду:
gh attestation trusted-root > trusted_root.jsonl
gh attestation trusted-root > trusted_root.jsonl
Обновление доверенных корневых данных в автономной среде
Рекомендуется создать новый файл при импорте нового trusted_root.jsonl
подписанного материала в автономную среду.
В ключевом материале trusted_root.jsonl
нет встроенной даты окончания срока действия, поэтому перед созданием доверенного корневого файла все будет успешно проверено. Все, подписанное после создания файла, будет проверять, пока экземпляр Sigstore не сменит свой ключевой материал, который обычно происходит несколько раз в год. Вы не узнаете, был ли отозван материал ключа с момента последнего создания доверенного корневого файла.
Шаг 3. Выполнение автономной проверки
Теперь вы готовы проверить артефакт в автономном режиме.
Вы должны импортировать в автономную среду:
- GitHub CLI
- Артефакт
- Файл пакета
- Доверенный корневой файл
Затем можно выполнить автономную проверку с помощью следующей команды:
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
Заключение
Теперь вы проверяете аттестации артефактов в автономной среде. Мы рекомендуем импортировать новый доверенный корневой каталог всякий раз, когда вы вводите новые подписанные артефакты в автономную среду.