Docker Notary : Docker Content Trust ( DCT )
[Container image 인증 관련 글 목록]
Docker Notary : Docker Content Trust (DCT)
DCT를 사용해서 Dcoker Hub에 서명된 Trust Image Push 하기
Notary와 DCT를 사용해서 Private Registry에 서명된 Trust Image Push하기
개인 인증서를 사용해서 Notary Service 구동
kubernetes image인증 - Portieris
Docker Contents Trust 란?
Notary Service 를 기반으로 만들어진 Docker Content Trust (DCT)가 있음.
DCT는 Docker Registry(이미지 저장소)에 송수신되는 데이터에 대한 디지털 서명 기능을 제공함.
Docker에서 사용되는 Image를 서명/검증해주어 Image에 대한 신뢰를 제공하는 기술.
DCT를 통해서 Image를 Push 하는 사람은 Image를 서명할 수 있고
Pull 받은 사용자는 Image가 서명되어 있음을 보장할 수 있음.
또한 Image의 tag를 통해 Image의 무결성을 검증할 수 있음.
[기존의 Docker image Pull 과정]
[DCT가 활성화 된 상태에서 Docker image Pull 과정 ]
DCT를 직접 구축해보겠음.
[주의]
Docker Content Trust 및 Notary를 사용해서
신뢰할 수 있는 Contents의 Images에 서명하려면
Docker Version 18.03-ce 이상이 설치되어 있어야함
[version 1.13.? 형식과 19.0? 차이]
기존 1.13.1 과 같은 version 표기법에서
(19.03)YY.MM 버전 관리 체계로 변경함
참고 : https://docs.docker.com/engine/release-notes/18.03/
[Test환경]
OS : CentOS 7
리눅스 커널 버전 : Linux 3.10.0-1062.el7.x86_64
docker version : 19.03.12
api verison : 1.40
Docker 가 설치되어있는 환경에서 DCT 활성화
Docker 에서 DCT는 Default 설정으로 Disable 되어있지만
DOCKER_CONTENT_TRUST 환경변수가 설정되면
DCT가 해당 환경변수를 읽어서 On/Off가 됨.
[DCT Enable 설정]
export DOCKER_CONTENT_TRUST=1
[DCT Disable 설정]
export DOCKER_CONTENT_TRUST=0
일반적으로 docker pull 명령으로 image를 받아오면
아래의 그림과 같이 정상적으로 받아오지만
DCT를 Enable 시킨 후 서명되어있지 않은 상위와 동일한 image를 Pull 하게 되면
remote trust data does not exist 오류가 발생하면서
해당 파일에는 서명이 안되어있다고 하면서 Pull이 안됨.
[ 절차 ]
기존에 다운받은 peksoon/iksoon_mysql:1.0.1 이미지를 삭제
DCT 를 Enable 시킴
다시 image pull 시도.
DCT를 Enable 하게되면
서명 설정이 되어있는 Trusted 된 Image 파일만 pull, run, build 할 수 있고
서명되지 않은 Image 파일은 자동으로 차단 됨.
또한 Image Registry에서도
서명 설정이 되어있는 Trusted image 만 보이게 되고
서명되지 않은 Untrusted image는 보이지 않음.
제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!
참고
[DCT]
https://docs.docker.com/notary/
https://docs.docker.com/engine/security/trust/content_trust/
https://docs.docker.com/notary/running_a_service/
https://pjh3749.tistory.com/253
https://gruuuuu.github.io/cloud/docker-notary2/#
https://cloud.ibm.com/docs/Registry?topic=Registry-registry_trustedcontent&locale=ko
https://docs.docker.com/engine/reference/commandline/trust_inspect/
https://help.sonatype.com/repomanager3/formats/docker-registry/docker-content-trust
'클라우드 > Docker' 카테고리의 다른 글
13. Notary와 DCT를 사용해서 Private Registry에 서명된 Trust Image Push 하기 (3) | 2020.11.08 |
---|---|
12. DCT를 사용해서 Docker Hub에 서명된 Trust Image Push 하기 (0) | 2020.11.08 |
10. Notary Service 란? (0) | 2020.11.08 |
09. Docker Version Update (0) | 2020.09.21 |
08. Docker htpasswd 명령 실패 오류 (0) | 2020.09.15 |