3.6. 서명된 컨테이너 작업
자동화 실행 환경은 Ansible 자동화 컨트롤러에서 작업을 실행하는 데 사용하는 컨테이너 이미지입니다. 이 콘텐츠를 프라이빗 자동화 허브로 다운로드하여 조직 내에 게시할 수 있습니다.
3.6.1. 컨테이너 서명을 위해 시스템 배포 링크 복사링크가 클립보드에 복사되었습니다!
Automation Hub는 이미지 서명을 구현하여 실행 환경 컨테이너 이미지에 대한 보안을 개선합니다.
컨테이너 서명이 준비되도록 시스템을 배포하려면 서명 스크립트를 생성합니다.
설치 프로그램은 설치 프로그램이 있는 동일한 서버에서 스크립트와 키를 찾습니다.
프로세스
터미널에서 서명 스크립트를 생성하고 설치 프로그램 매개 변수로 스크립트 경로를 전달합니다.
예:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow automationhub_*로 시작하는 컨테이너 서명 옵션을 보려면 Ansible Automation Platform 설치 프로그램 인벤토리 파일을 검토하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 설치가 완료되면 자동화 허브로 이동합니다.
- 탐색 패널에서 선택합니다.
- container-default 또는 컨테이너-anyname 이라는 키가 있는지 확인합니다.
container-default 서비스는 Ansible Automation Platform 설치 프로그램에서 생성합니다.
3.6.2. 자동화 허브에 원격으로 컨테이너 추가 링크 복사링크가 클립보드에 복사되었습니다!
다음 두 가지 방법 중 하나로 자동화 허브에 원격으로 컨테이너를 추가할 수 있습니다.
- 원격 생성
- 실행 환경
프로세스
- 자동화 허브에 로그인합니다.
- 탐색 패널에서 를 선택합니다.
클릭합니다.
- 이름 필드에 컨테이너가 있는 레지스트리의 이름을 입력합니다.
- URL 필드에 컨테이너가 있는 레지스트리의 URL을 입력합니다.
- 필요한 경우 Username 필드에 사용자 이름을 입력합니다.
- 필요한 경우 암호 필드에 암호를 입력합니다.
- 을 클릭합니다.
3.6.3. 실행 환경 추가 링크 복사링크가 클립보드에 복사되었습니다!
자동화 실행 환경은 시스템 수준의 종속성 및 컬렉션 기반 콘텐츠를 통합할 수 있는 컨테이너 이미지입니다. 각 실행 환경을 사용하면 작업을 실행할 수 있는 사용자 지정 이미지를 사용할 수 있으며, 각 실행 환경에는 작업을 실행할 때 필요한 항목만 포함됩니다.
프로세스
- 탐색 패널에서 .
- 클릭합니다.
- 실행 환경의 이름을 입력합니다.
- 선택 사항: 업스트림 이름을 입력합니다.
- 레지스트리 의 드롭다운 메뉴에서 레지스트리 이름을 선택합니다.
- Add tag(s) to include 필드에 태그를 입력합니다. 필드가 비어 있으면 모든 태그가 전달됩니다. 전달할 리포지토리별 태그를 지정해야 합니다.
나머지 필드는 선택 사항입니다.
- 현재 포함된 태그
- 제외할 태그 추가
- 현재 제외된 태그
- description
- 을 클릭합니다.
- 이미지를 동기화합니다.
3.6.4. 로컬 환경에서 컨테이너 이미지 푸시 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 로컬 시스템의 이미지에 서명하고 서명된 이미지를 자동화 허브 레지스트리로 푸시합니다.
프로세스
터미널에서 Podman 또는 현재 사용 중인 컨테이너 클라이언트에 로그인합니다.
> podman pull <container-name>
> podman pull <container-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 가져온 후 태그를 추가합니다(예: latest, rc, beta 또는 버전 번호(예: 1.0; 2.3 등):
> podman tag <container-name> <server-address>/<container-name>:<tag name>
> podman tag <container-name> <server-address>/<container-name>:<tag name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항이 적용된 후 이미지에 서명하고 자동화 허브 레지스트리로 다시 푸시합니다.
> podman push <server-address>/<container-name>:<tag name> --tls-verify=false --sign-by <reference to the gpg key on your local>
> podman push <server-address>/<container-name>:<tag name> --tls-verify=false --sign-by <reference to the gpg key on your local>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지에 서명되지 않은 경우 현재 서명을 포함하는 경우에만 푸시할 수 있습니다. 또는 다음 스크립트를 사용하여 서명하지 않고 이미지를 내보낼 수 있습니다.
> podman push <server-address>/<container-name>:<tag name> --tls-verify=false
> podman push <server-address>/<container-name>:<tag name> --tls-verify=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 이미지를 푸시한 후 자동화 허브로 이동합니다.
- 탐색 패널에서 .
- 새 실행 환경을 표시하려면 새로 고침 아이콘을 클릭합니다.
- 내보낸 이미지를 보려면 이미지의 이름을 클릭합니다.
문제 해결
자동화 허브의 세부 정보 페이지는 이미지에 서명되었는지 여부를 나타냅니다. 세부 정보 페이지에 이미지가 Unsigned 임을 나타내는 경우 다음 단계를 사용하여 자동화 허브의 이미지에 서명할 수 있습니다.
- 이미지 이름을 클릭하여 세부 정보 페이지로 이동합니다.
아이콘 Cryostat를 클릭합니다. 세 가지 옵션을 사용할 수 있습니다.
- 컨트롤러에서 사용
- delete
- 서명
- 드롭다운 메뉴에서 Sign 을 클릭합니다.
서명 서비스는 이미지에 서명합니다. 이미지에 서명되면 상태가 "signed"로 변경됩니다.
3.6.5. 서명된 이미지가 있는 정책 링크 복사링크가 클립보드에 복사되었습니다!
podman 또는 기타 이미지 클라이언트에서 해당 서명에 특정 정책을 할당하여 이미지의 유효성을 보장하기 위해 정책을 사용할 수 있습니다.
3.6.6. podman을 사용하여 특정 서명으로 이미지에 서명되었는지 확인 링크 복사링크가 클립보드에 복사되었습니다!
서명이 특정 서명으로 서명되었는지 확인하는 경우 서명이 로컬 환경에 있어야 합니다.
프로세스
- 탐색 패널에서 선택합니다.
- 사용 중인 서명 옆에 있는 아이콘을 클릭합니다.
- 드롭다운 메뉴에서 다운로드 키를 선택합니다. 새 창이 열립니다.
- 이름 필드에 키 이름을 입력합니다.
- 을 클릭합니다.
3.6.7. 서명을 확인하도록 클라이언트 구성 링크 복사링크가 클립보드에 복사되었습니다!
원격 레지스트리에서 가져온 컨테이너 이미지가 올바르게 서명되었는지 확인하려면 먼저 정책 파일에서 적절한 공개 키를 사용하여 이미지를 구성해야 합니다.
사전 요구 사항
- 클라이언트에는 서명을 확인하도록 sudo 권한이 구성되어 있어야 합니다.
프로세스
터미널을 열고 다음 명령을 사용합니다.
> sudo <name of editor> /etc/containers/policy.json
> sudo <name of editor> /etc/containers/policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 표시되는 파일은 다음과 유사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 파일은
quay.io또는docker.io가 모두 확인을 수행하지 않음을 보여줍니다. 유형은거부의 기본 유형을 재정의하는insecureAcceptAnything이기 때문입니다. 그러나 매개변수유형은"signedBy"로 설정되어 있으므로 <server-address>는 확인을 수행합니다.참고현재 지원되는 유일한
keyType은 GPG 키입니다.<
;server-address> 항목에서 키 파일의 이름을 포함하도록keyPath<1>를 수정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 파일을 저장하고 닫습니다.
검증
- Podman을 사용하여 파일을 가져오거나 선택한 클라이언트를 가져옵니다.
> podman pull <server-address>/<container-name>:<tag name> --tls-verify=false
> podman pull <server-address>/<container-name>:<tag name> --tls-verify=false
이 응답은 이미지가 오류 없이 서명되었는지 확인합니다. 이미지에 서명되지 않은 경우 명령이 실패합니다.
추가 리소스
- policy.json에 대한 자세한 내용은 containers-policy.json 설명서 를 참조하십시오.