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 でコンテンツ署名を設定するのに適切なアクセス権がある。
手順
ファイル名のみを受け入れる署名スクリプトを作成します。
注記このスクリプトは署名サービスとして機能し、
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 が追加されたことがコレクションに表示されます。
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 でコンテンツ署名を使用できます。
- システムに自動署名が設定されていないため、手動署名プロセスを使用してコレクションに署名する必要がある場合。
- 自動的に設定されたコレクションの現在の署名が壊れているため、新しい署名が必要な場合。
- 以前に署名されたコンテンツに追加の署名が必要な場合。
- コレクションで署名をローテーションする必要がある場合。
手順
- Ansible Automation Platform にログインします。
-
ナビゲーションパネルから、
を選択します。Approval ダッシュボードが開き、コレクションのリストが表示されます。 - 承認するコレクションの横にあるサムズアップアイコンをクリックします。表示されるモーダルで、コレクションを承認することを確認するチェックボックスをオンにし、 をクリックします。
検証
-
に移動して、署名して承認したコレクションが表示されていることを確認します。
1.3.3. 署名公開鍵のダウンロード
コレクションに署名して承認したら、Ansible Automation Platform UI から署名公開鍵をダウンロードします。公開鍵は、ローカルシステムのキーリングに追加する前にダウンロードする必要があります。
手順
- Ansible Automation Platform にログインします。
ナビゲーションパネルから、
を選択します。署名キーダッシュボードには、複数のキー (コレクションとコンテナーイメージ) のリストが表示されます。 -
コレクションを確認するには、
collections-
で始まるキーをダウンロードします。 -
コンテナーイメージを確認するには、
container-
で始まるキーをダウンロードします。
-
コレクションを確認するには、
次のいずれかの方法を選択して、公開鍵をダウンロードします。
- アイコンをクリックして、公開鍵をダウンロードします。
- コピーする公開鍵の横にある をクリックします。
コピーした公開鍵を使用して、インストールするコンテンツコレクションを確認します。
1.3.4. コレクションを検証するための Ansible-Galaxy CLI の設定
Ansible-Galaxy CLI を設定して、コレクションを検証することができます。これにより、ダウンロードしたコレクションが組織によって承認されたものであり、Automation Hub へのアップロード後に変更されていないことを確認できます。
コレクションが Automation Hub によって署名されている場合、サーバーは、コレクションのコンテンツの検証に MANIFEST.json
を使用する前に、その信頼性を検証するために、ASCII アーマー形式の GPG デタッチ署名を提供します。ansible-galaxy
の キーリングを設定する か、--keyring
オプションでパスを指定して、署名検証をオプトインする必要があります。
前提条件
- 署名付きコレクションが Automation Hub で署名を検証するために利用できる。
- 認定コレクションが組織内の承認済みのロールによって署名できる。
- 検証用の公開鍵がローカルシステムキーリングに追加されている。
手順
ansible-galaxy
で使用するデフォルト以外のキーリングに公開鍵をインポートするには、以下のコマンドを実行します。gpg --import --no-default-keyring --keyring ~/.ansible/pubring.kbx my-public-key.asc
注記Automation Hub が提供する署名のほかに、署名ソースを要件ファイルとコマンドラインで指定することもできます。署名ソースは URI である必要があります。
追加の署名を使用して 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
このオプションを複数回使用して、複数の署名を指定できます。
以下の例のように、要件ファイルのコレクションに、コレクションの署名キーの後に追加の署名ソースが表示されていることを確認します。
# 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 からコレクションをインストールすると、サーバーが提供する署名はインストールされたコレクションと共に保存され、コレクションの信頼性を検証します。
-
(オプション) Ansible Galaxy サーバーにクエリーを実行せずにコレクションの内部整合性を再度確認する必要がある場合は、
--offline
オプションを使用して、以前に使用したのと同じコマンドを実行します。
コレクションの命名に関する推奨事項
company_name.product
形式でコレクションを作成します。この形式は、複数の製品が会社の名前空間の下に異なるコレクションを持つことができることを示しています。
Automation Hub で名前空間を取得する方法
デフォルトでは、Ansible Galaxy で使用される名前空間は、Ansible パートナーチームによって Automation Hub でも使用されます。質問や説明については、ansiblepartners@redhat.com までお問い合わせください。