第4章 Private Automation Hub のコレクションおよびコンテンツ署名

組織の自動化管理者は、組織内の異なるグループから Ansible コンテンツコレクションの署名および公開用にPrivate Automation Hub を設定できます。

セキュリティーを強化するために、自動化作成者は Ansible-Galaxy CLI を設定してこのコレクションを検証し、Automation Hub へのアップロード後に変更されていないことを確認できます。

4.1. Private Automation Hub でのコンテンツ署名の設定

Ansible 認定コンテンツコレクションを正常に署名して公開するには、署名する Private Automation Hub を設定する必要があります。

前提条件

  • GnuPG キーペアがセキュアに設定され、組織で管理されている。
  • 公開鍵と秘密鍵のペアには、Private Automation Hub でコンテンツ署名を設定するのに適切なアクセスがある。

手順

  1. ファイル名のみを受け入れる署名スクリプトを作成します。

    注記

    このスクリプトは署名サービスとして機能し、PULP_SIGNING_KEY_FINGERPRINT 環境変数で指定されたキーを使用して、そのファイルの ascii-armored 分離 gpg 署名を生成する必要があります。

    次に、スクリプトは、以下の形式で JSON 構造を出力します。

    {"file": "filename", "signature": "filename.asc"}

    すべてのファイル名は、現在の作業ディレクトリー内の相対パスです。ファイル名は、以下に示すようにデタッチされた署名と同じである必要があります。

    以下の例は、コンテンツの署名を生成するスクリプトを示しています。

    #!/usr/bin/env bash
    
    FILE_PATH=$1
    SIGNATURE_PATH="$1.asc"
    
    ADMIN_ID="$PULP_SIGNING_KEY_FINGERPRINT"
    PASSWORD="password"
    
    # Create a detached signature
    gpg --quiet --batch --pinentry-mode loopback --yes --passphrase \
       $PASSWORD --homedir ~/.gnupg/ --detach-sign --default-key $ADMIN_ID \
       --armor --output $SIGNATURE_PATH $FILE_PATH
    
    # Check the exit status
    STATUS=$?
    if [ $STATUS -eq 0 ]; then
       echo {\"file\": \"$FILE_PATH\", \"signature\": \"$SIGNATURE_PATH\"}
    else
       exit $STATUS
    fi

    署名が有効なプライベート Automation Hub を Ansible Automation Platform クラスターにデプロイした後、コレクションを操作すると、新しい UI が追加されたことが表示されます。

  2. automationhub_* で始まるオプションについては、Ansible Automation Platform インストーラーのインベントリーファイルを確認してください。

    [all:vars]
    .
    .
    .
    automationhub_create_default_collection_signing_service = True
    automationhub_auto_sign_collections = True
    automationhub_require_content_approval = True
    automationhub_collection_signing_service_key = /abs/path/to/galaxy_signing_service.gpg
    automationhub_collection_signing_service_script = /abs/path/to/collection_signing.sh

    2 つの新しいキー (automationhub_auto_sign_collections および automationhub_require_content_approval) は、コレクションに署名する必要があり、Private Automation Hub へのアップロード後に承認が必要であることを示しています。