1.3. Private Automation Hub のコレクションおよびコンテンツ署名


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

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

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

Ansible Certified Content Collections に正常に署名して公開するには、署名する Private Automation Hub を設定する必要があります。

前提条件

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

手順

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

    注記

    このスクリプトは署名サービスとして機能し、PULP_SIGNING_KEY_FINGERPRINT 環境変数で指定された鍵を使用して、そのファイルの ASCII アーマー形式の 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

    署名を有効にして Private 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 にアップロードされた後に署名および承認される必要があることを示します。

1.3.2. Private Automation Hub でのコンテンツ署名サービスの使用

Private Automation Hub でコンテンツ署名を設定した後、新しいコレクションに手動で署名したり、既存の署名を新しい署名に置き換えたりできます。この署名は、ユーザーが特定のコレクションをダウンロードする際に、そのコレクションがユーザー向けであり、認定後に変更されていないことを示すものとなります。

次のシナリオでは、Private Automation Hub でコンテンツ署名を使用できます。

  • システムに自動署名が設定されていないため、手動署名プロセスを使用してコレクションに署名する必要がある場合。
  • 自動的に設定されたコレクションの現在の署名が壊れているため、新しい署名が必要な場合。
  • 以前に署名されたコンテンツに追加の署名が必要な場合。
  • コレクションで署名をローテーションする必要がある場合。

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation Content Collection Approvals を選択します。Approval ダッシュボードが開き、コレクションのリストが表示されます。
  3. 承認するコレクションの横にあるサムズアップアイコンをクリックします。表示されるモーダルで、コレクションを承認することを確認するチェックボックスをオンにし、Approve and sign collections をクリックします。

検証

  • Automation Content Collections に移動して、署名して承認したコレクションが表示されていることを確認します。

1.3.3. 署名公開鍵のダウンロード

コレクションに署名して承認したら、Ansible Automation Platform UI から署名公開鍵をダウンロードします。公開鍵は、ローカルシステムのキーリングに追加する前にダウンロードする必要があります。

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation Content Signature Keys を選択します。署名キーダッシュボードには、複数のキー (コレクションとコンテナーイメージ) のリストが表示されます。

    • コレクションを確認するには、collections- で始まるキーをダウンロードします。
    • コンテナーイメージを確認するには、container- で始まるキーをダウンロードします。
  3. 次のいずれかの方法を選択して、公開鍵をダウンロードします。

    • Download Key アイコンをクリックして、公開鍵をダウンロードします。
    • コピーする公開鍵の横にある Copy to clipboard をクリックします。

コピーした公開鍵を使用して、インストールするコンテンツコレクションを確認します。

1.3.4. コレクションを検証するための Ansible-Galaxy CLI の設定

Ansible-Galaxy CLI を設定して、コレクションを検証することができます。これにより、ダウンロードしたコレクションが組織によって承認されたものであり、Automation Hub へのアップロード後に変更されていないことを確認できます。

コレクションが Automation Hub によって署名されている場合、サーバーは、コレクションのコンテンツの検証に MANIFEST.json を使用する前に、その信頼性を検証するために、ASCII アーマー形式の GPG デタッチ署名を提供します。ansible-galaxyキーリングを設定する か、--keyring オプションでパスを指定して、署名検証をオプトインする必要があります。

前提条件

  • 署名付きコレクションが Automation Hub で署名を検証するために利用できる。
  • 認定コレクションが組織内の承認済みのロールによって署名できる。
  • 検証用の公開鍵がローカルシステムキーリングに追加されている。

手順

  1. ansible-galaxy で使用するデフォルト以外のキーリングに公開鍵をインポートするには、以下のコマンドを実行します。

    gpg --import --no-default-keyring --keyring ~/.ansible/pubring.kbx my-public-key.asc
    注記

    Automation Hub が提供する署名のほかに、署名ソースを要件ファイルとコマンドラインで指定することもできます。署名ソースは URI である必要があります。

  2. 追加の署名を使用して CLI で指定されたコレクション名を確認するには、次のコマンドを実行します。

    ansible-galaxy collection install namespace.collection
    --signature https://examplehost.com/detached_signature.asc
    --signature file:///path/to/local/detached_signature.asc --keyring ~/.ansible/pubring.kbx

    このオプションを複数回使用して、複数の署名を指定できます。

  3. 以下の例のように、要件ファイルのコレクションに、コレクションの署名キーの後に追加の署名ソースが表示されていることを確認します。

    # requirements.yml
    collections:
      - name: ns.coll
        version: 1.0.0
        signatures:
          - https://examplehost.com/detached_signature.asc
          - file:///path/to/local/detached_signature.asc
    
    ansible-galaxy collection verify -r requirements.yml --keyring ~/.ansible/pubring.kbx

    Automation Hub からコレクションをインストールすると、サーバーが提供する署名はインストールされたコレクションと共に保存され、コレクションの信頼性を検証します。

  4. (オプション) Ansible Galaxy サーバーにクエリーを実行せずにコレクションの内部整合性を再度確認する必要がある場合は、--offline オプションを使用して、以前に使用したのと同じコマンドを実行します。

コレクションの命名に関する推奨事項

company_name.product 形式でコレクションを作成します。この形式は、複数の製品が会社の名前空間の下に異なるコレクションを持つことができることを示しています。

Automation Hub で名前空間を取得する方法

デフォルトでは、Ansible Galaxy で使用される名前空間は、Ansible パートナーチームによって Automation Hub でも使用されます。質問や説明については、ansiblepartners@redhat.com までお問い合わせください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.