docker trust key load 명령을 사용하여 서명 키 로드 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker trust key load 명령을 사용하여 Docker trust keystore 에 서명 키를 로드하는 방법을 배우게 됩니다. 먼저 openssl을 사용하여 Docker 이미지를 서명하기 위한 개인 키 파일을 준비하는 것으로 시작합니다.

키 생성 후, 이 개인 키를 암호화 키를 위한 안전한 위치인 Docker trust keystore 에 로드합니다. 마지막으로, keystore 내에서 특정 이름으로 개인 키를 로드하는 방법을 살펴봅니다.

서명을 위한 개인 키 파일 준비

이 단계에서는 Docker 이미지 서명을 위한 개인 키 파일을 준비하는 방법을 배우게 됩니다. Docker Content Trust 는 이미지의 무결성과 진위 여부를 확인하기 위해 암호화 키를 사용합니다. 개인 키는 이미지 서명에 필수적이며, 해당 공개 키는 다른 사용자가 서명을 확인하는 데 사용됩니다.

먼저, 이 랩의 작업 디렉토리인 ~/project 디렉토리로 이동합니다.

cd ~/project

이제 openssl 명령을 사용하여 새로운 RSA 개인 키를 생성합니다. 이 명령은 4096 비트 개인 키를 생성하고 현재 디렉토리의 my-signing-key.pem 파일에 저장합니다.

openssl genrsa -out my-signing-key.pem 4096

키 생성 프로세스를 나타내는 출력을 보게 됩니다. 이 명령은 PEM 형식의 개인 키를 생성합니다.

다음으로, my-signing-key.pem 파일이 ~/project 디렉토리에 생성되었는지 확인해 보겠습니다.

ls -l my-signing-key.pem

파일 권한, 소유자, 그룹, 크기 및 수정 시간이 표시됩니다. 이는 개인 키 파일이 성공적으로 생성되었음을 확인합니다.

Docker trust keystore 에 개인 키 로드

이 단계에서는 이전 단계에서 생성한 개인 키를 Docker trust keystore 에 로드합니다. Docker trust keystore 는 Docker 가 이미지 서명 및 확인에 사용하는 암호화 키를 저장하는 안전한 위치입니다.

Docker trust keystore 는 ~/.docker/trust/private 디렉토리에 위치합니다. 생성한 개인 키 파일 (my-signing-key.pem) 을 이 디렉토리로 복사해야 합니다.

먼저, 개인 키를 생성한 ~/project 디렉토리에 있는지 확인합니다.

cd ~/project

이제 my-signing-key.pem 파일을 Docker trust 개인 키 디렉토리로 복사합니다. 디렉토리가 존재하지 않는 경우 생성해야 할 수 있습니다.

mkdir -p ~/.docker/trust/private
cp my-signing-key.pem ~/.docker/trust/private/

mkdir -p 명령은 디렉토리와 필요한 상위 디렉토리가 존재하지 않는 경우 생성합니다. cp 명령은 개인 키 파일을 복사합니다.

파일을 복사한 후, ~/.docker/trust/private 디렉토리의 내용을 나열하여 개인 키가 Docker trust keystore 에 있는지 확인할 수 있습니다.

ls ~/.docker/trust/private/

출력에 my-signing-key.pem이 표시되어야 합니다. 이는 개인 키가 Docker trust keystore 에 성공적으로 로드되었음을 확인합니다.

특정 이름으로 개인 키 로드

이 단계에서는 Docker trust keystore 에 특정 이름으로 개인 키를 로드하는 방법을 배우게 됩니다. 이전 단계에서 했던 것처럼 단순히 키 파일을 복사할 수도 있지만, docker trust key load 명령을 사용하면 Docker trust 시스템 내에서 키와 특정 이름을 연결할 수 있습니다. 이는 여러 서명 키를 관리하는 데 유용할 수 있습니다.

먼저, 개인 키 파일 my-signing-key.pem을 생성한 ~/project 디렉토리에 있는지 확인합니다.

cd ~/project

이제 docker trust key load 명령을 사용하여 개인 키를 로드합니다. 키의 이름을 입력하라는 메시지가 표시됩니다. 이 키의 이름을 my-signer로 지정해 보겠습니다.

docker trust key load my-signing-key.pem --name my-signer

메시지가 표시되면 키의 이름으로 my-signer를 입력합니다.

Loading key from 'my-signing-key.pem'...
Enter name for new key: my-signer

이름을 입력한 후, 새 키의 암호를 입력하라는 메시지가 표시됩니다. 이 랩에서는 Enter 키를 눌러 암호를 비워둘 수 있습니다. 실제 시나리오에서는 개인 키를 보호하기 위해 강력한 암호를 사용하는 것이 좋습니다.

Enter passphrase for new key:
Repeat passphrase for new key:

키가 성공적으로 로드되었음을 나타내는 출력을 보게 됩니다.

Successfully loaded private key from 'my-signing-key.pem' with ID '...'

지정된 이름으로 키가 로드되었는지 확인하려면 docker trust key list 명령을 사용하여 Docker trust keystore 의 키를 나열할 수 있습니다.

docker trust key list

NAME 이 my-signer이고 해당 KEY ID 가 있는 항목이 표시되어야 합니다. 이는 특정 이름으로 개인 키를 성공적으로 로드했음을 확인합니다.

요약

이 랩에서는 openssl genrsa를 사용하여 Docker 이미지를 서명하기 위한 개인 키 파일을 준비하는 방법을 배웠습니다. 그런 다음 키 파일을 ~/.docker/trust/private 디렉토리에 복사하여 생성된 이 개인 키를 Docker trust keystore 에 로드하는 연습을 했습니다.