서명자 권한으로 태그 서명
이 단계에서는 지정된 "서명자 (signer)"가 Docker 이미지 태그에 서명하는 방법을 살펴봅니다. 실제 시나리오에서는 리포지토리에 여러 서명자가 있을 수 있으며, 각 서명자는 특정 태그 또는 릴리스를 서명하는 역할을 합니다. 이를 통해 보다 분산되고 안전한 서명 프로세스를 수행할 수 있습니다.
먼저 Docker Content Trust 가 활성화되어 있는지 확인합니다.
export DOCKER_CONTENT_TRUST=1
이제 이미지에 대한 새 태그를 생성하여 서명자가 담당할 수 있는 다른 버전 또는 릴리스를 시뮬레이션해 보겠습니다.
docker tag labexuser/my-signed-image:latest labexuser/my-signed-image:v1.0.0
이렇게 하면 동일한 이미지를 가리키는 새 태그 labexuser/my-signed-image:v1.0.0이 생성됩니다.
다른 "서명자"로 이 새 태그에 서명하려면 docker trust sign 명령을 사용합니다. 이 명령을 사용하면 특정 키로 특정 태그에 명시적으로 서명할 수 있습니다.
docker trust sign labexuser/my-signed-image:v1.0.0
이 명령을 실행하면 Docker 는 사용하려는 서명 키의 암호를 묻습니다. 2 단계에서 생성된 동일한 키를 사용하는 경우 해당 암호를 입력합니다. 다른 키를 가진 다른 서명자인 경우 해당 키의 암호를 사용합니다.
암호를 성공적으로 입력하면 Docker 는 labexuser/my-signed-image:v1.0.0 태그에 서명합니다. 서명 프로세스를 확인하는 출력을 볼 수 있습니다.
마지막으로 업데이트된 신뢰 데이터를 레지스트리로 푸시해야 합니다. 서명된 태그에 대한 docker push 명령에는 새 서명 정보가 포함됩니다.
docker push labexuser/my-signed-image:v1.0.0
이 명령은 v1.0.0 태그를 관련 서명과 함께 레지스트리로 푸시합니다.