Создание ключа подписи контента#
Ключи подписи обеспечивают проверку подлинности и целостности контента, который загружается в Private Automation Hub и используется для выполнения автоматизации. Приватный ключ применяется для подписания коллекций, а соответствующий публичный ключ – для проверки подписи системой Private Automation Hub и другими узлами.
Предупреждение
Приватный ключ должен храниться только на сервере, выполняющем подпись. Его компрометация позволит злоумышленникам выпускать доверенные (подписанные) пакеты. Никогда не передавайте приватный ключ третьим лицам.
Для создания ключа выполните следующие действия:
На любой машине создайте пару ключей GPG с помощью команды:
gpg --full-generate-keyВ результате выполнения команды запускается мастер создания ключа, который задает несколько интерактивных вопросов.
При ответе на вопросы придерживайтесь следующих рекомендаций:
тип ключа –
RSA and RSA;длина –
4096бит;срок действия – ограниченный, например, 2 года;
используйте пароль для дополнительной защиты.
После генерации ключа убедитесь, что он появился в локальном хранилище с помощью команды:
gpg --list-keysЭкспортируйте публичный и приватный ключи:
gpg --armor --export <your_email> > public_key.asc \ gpg --armor --export-secret-keys <your_email> > private_key.asc
Скопируйте файл
public_key.ascна установочный узел.В секцию
[all:vars]файлаinventoryдобавьте следующие параметры:automationhub_create_default_collection_signing_service='true' automationhub_auto_sign_collections='true' automationhub_require_content_approval='true' automationhub_collection_signing_service_key='/home/<user>/public_key.asc' automationhub_collection_signing_service_script='/home/<user>/collection_signing.sh'
Создайте файл
/home/<user>/collection_signing.shсо следующим содержимым:#!/usr/bin/env bash FILE_PATH=$1 SIGNATURE_PATH="$1.asc" ADMIN_ID="$PULP_SIGNING_KEY_FINGERPRINT" PASSWORD="<your_gpg_password>" GPG_OUTPUT=$(gpg --quiet --batch --pinentry-mode loopback --yes --passphrase \ "$PASSWORD" --homedir ~/.gnupg/ --detach-sign --default-key "$ADMIN_ID" \ --armor --output "$SIGNATURE_PATH" "$FILE_PATH" 2>&1) STATUS=$? if [ $STATUS -eq 0 ]; then echo "{\"file\": \"$FILE_PATH\", \"signature\": \"$SIGNATURE_PATH\"}" else echo "GPG signing failed: $GPG_OUTPUT" >&2 exit $STATUS fi
Сделайте файл исполняемым:
chmod +x /home/<user>/collection_signing.sh
Скопируйте файл
private_key.ascна узел Private Automation Hub и выполните следующую команду, чтобы импортировать его в хранилище ключей GPG, используемое Private Automation Hub:sudo -iu pulp gpg --import /tmp/private_key.asc
На установочном узле платформы в каталоге
/opt/rbta/aa/astra-automation-setup/выполните команду:sudo ./aa-setup