1.3. 프라이빗 자동화 허브에서 콘텐츠 서명 컬렉션 및 콘텐츠 서명
조직의 자동화 관리자는 조직 내의 다양한 그룹에서 Ansible 콘텐츠 컬렉션에 서명하고 게시하도록 프라이빗 자동화 허브를 구성할 수 있습니다.
추가 보안을 위해 자동화 작성자는 Ansible-Galaxy CLI를 구성하여 자동화 허브에 업로드된 후 이러한 컬렉션이 변경되지 않았는지 확인할 수 있습니다.
1.3.1. 프라이빗 자동화 허브에서 콘텐츠 서명 구성
Ansible 인증 콘텐츠 컬렉션에 성공적으로 서명하고 게시하려면 서명을 위해 프라이빗 자동화 허브를 구성해야 합니다.
사전 요구 사항
- GnuPG 키 쌍은 조직에서 안전하게 설정 및 관리합니다.
- 공개-개인 키 쌍은 프라이빗 자동화 허브에서 콘텐츠 서명을 구성하기 위한 적절한 액세스 권한을 갖습니다.
프로세스
파일 이름만 허용하는 서명 스크립트를 생성합니다.
참고이 스크립트는 서명 서비스 역할을 하며
PULP_SIGNING_KEY_FINGERPRINT
환경 변수를 통해 지정된 키를 사용하여 해당 파일의 ascii-armored detachedgpg
서명을 생성해야 합니다.스크립트는 다음 형식을 사용하여 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
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
두 개의 새 키(automationhub_auto_sign_collections 및 Automation hub_require_content_approval)는 컬렉션이 프라이빗 자동화 허브에 업로드된 후 서명하고 승인되어야 함을 나타냅니다.
1.3.2. 프라이빗 자동화 허브에서 콘텐츠 서명 서비스 사용
프라이빗 자동화 허브에 콘텐츠 서명을 구성한 후 새 컬렉션에 수동으로 서명하거나 기존 서명을 새 서명으로 교체할 수 있습니다. 사용자가 특정 컬렉션을 다운로드할 때 이 서명은 컬렉션이 해당 컬렉션을 위한 것이며 인증 후 수정되지 않았음을 나타냅니다.
다음 시나리오에서 프라이빗 자동화 허브에서 콘텐츠 서명을 사용할 수 있습니다.
- 시스템에 자동 서명이 구성되지 않았으며 수동 서명 프로세스를 사용하여 컬렉션에 서명해야 합니다.
- 자동으로 구성된 컬렉션의 현재 서명이 손상되어 새 서명이 필요합니다.
- 이전에 서명된 콘텐츠에 대한 추가 서명이 필요합니다.
- 컬렉션에서 서명을 교체하려고 합니다.
프로세스
- Ansible Automation Platform에 로그인합니다.
-
탐색 패널에서
을 선택합니다. 승인 대시보드가 열리고 컬렉션 목록이 표시됩니다. - 승인할 컬렉션 옆에 있는 엄지백 아이콘을 클릭합니다. 표시되는 모달에서 컬렉션을 승인할지 확인하는 상자를 선택하고 컬렉션 을 클릭합니다.
검증
-
로 이동하여 서명된 컬렉션 및 승인된 컬렉션이 표시되는지 확인합니다.
1.3.3. 서명 공개 키 다운로드
컬렉션에 서명하고 승인한 후 Ansible Automation Platform UI에서 서명 공개 키를 다운로드합니다. 로컬 시스템 인증 키에 추가하기 전에 공개 키를 다운로드해야 합니다.
프로세스
- Ansible Automation Platform에 로그인합니다.
탐색 패널에서
를 선택합니다. 서명 키 대시보드에는 컬렉션 및 컨테이너 이미지 등 여러 키 목록이 표시됩니다. -
컬렉션을 확인하려면
collections-
접두사가 붙은 키를 다운로드합니다. -
컨테이너 이미지를 확인하려면
container-
접두사가 붙은 키를 다운로드합니다.
-
컬렉션을 확인하려면
공개 키를 다운로드하려면 다음 방법 중 하나를 선택합니다.
- 공개 키를 아이콘을 클릭합니다.
- 복사할 공개 키 옆에 있는 복사를 클릭합니다.
복사한 공개 키를 사용하여 설치 중인 콘텐츠 컬렉션을 확인합니다.
1.3.4. 컬렉션을 확인하도록 Ansible-Galaxy CLI 구성
컬렉션을 확인하도록 Ansible-Galaxy CLI를 구성할 수 있습니다. 이렇게 하면 다운로드한 컬렉션이 조직에서 승인되고 자동화 허브에 업로드된 후 변경되지 않았습니다.
컬렉션이 자동화 허브에 의해 서명된 경우 서버는 ASCII, GPG-detached 서명을 제공하여 컬렉션의 내용을 확인하기 전에 MANIFEST.json
의 진위 여부를 확인합니다. ansible-galaxy
의 인증 키를 구성하거나 --keyring
옵션을 사용하여 경로를 제공하여 서명 확인을 선택해야 합니다.
사전 요구 사항
- 서명된 컬렉션은 자동화 허브에서 서명을 확인하는 데 사용할 수 있습니다.
- 인증된 컬렉션은 조직 내에서 승인된 역할로 서명할 수 있습니다.
- 확인을 위한 공개 키가 로컬 시스템 인증 키에 추가되었습니다.
프로세스
ansible-galaxy
와 함께 사용할 기본이 아닌 인증 키로 공개 키를 가져오려면 다음 명령을 실행합니다.gpg --import --no-default-keyring --keyring ~/.ansible/pubring.kbx my-public-key.asc
참고자동화 허브에서 제공하는 서명 외에도 요구 사항 파일과 명령줄에서 서명 소스를 제공할 수도 있습니다. 서명 소스는 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
자동화 허브에서 컬렉션을 설치하면 서버에서 제공한 서명이 설치된 컬렉션과 함께 저장되므로 컬렉션의 진위 여부를 확인할 수 있습니다.
-
(선택 사항) Ansible Galaxy 서버를 쿼리하지 않고 컬렉션의 내부 일관성을 다시 확인해야 하는 경우
--offline
옵션을 사용하여 이전에 사용한 것과 동일한 명령을 실행합니다.
컬렉션 이름 지정에 대한 권장 사항이 있습니까?
company_name.product
형식으로 컬렉션을 생성합니다. 이 형식은 회사 네임스페이스 아래에 여러 제품이 서로 다른 컬렉션을 가질 수 있음을 의미합니다.
자동화 허브에 네임스페이스를 가져오려면 어떻게 해야 합니까?
기본적으로 Ansible Galaxy에 사용되는 네임스페이스는 Ansible 파트너 팀의 자동화 허브에도 사용됩니다. 모든 문의 및 설명이 필요한 경우 ansiblepartners@redhat.com.