docker secret inspect 명령으로 시크릿 정보 확인 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker secret inspect 명령을 사용하여 Docker 시크릿에 대한 자세한 정보를 확인하는 방법을 배우게 됩니다. 먼저 민감한 데이터를 관리하기 위해 Docker 시크릿을 생성하는 것으로 시작합니다. 그런 다음, 이름과 고유 ID 를 사용하여 이 시크릿을 검사하는 방법을 살펴봅니다. 마지막으로, 특정 정보를 추출하기 위해 Go 템플릿을 사용하여 inspect 명령의 출력을 형식화하는 방법을 배우게 됩니다. 이 실습 경험을 통해 Docker 시크릿을 효과적으로 관리하고 문제 해결하는 기술을 갖추게 될 것입니다.

Docker 시크릿 생성

이 단계에서는 Docker 시크릿을 생성하는 방법을 배우게 됩니다. Docker 시크릿은 비밀번호, SSH 키, TLS 인증서와 같은 민감한 데이터를 관리하는 데 사용됩니다. 시크릿은 저장 및 전송 중에 암호화되며, 액세스 권한이 부여된 서비스만 액세스할 수 있습니다.

Docker 시크릿을 생성하려면 docker secret create 명령을 사용합니다. 이 명령은 두 개의 인수를 받습니다: 시크릿의 이름과 시크릿 데이터를 포함하는 파일의 경로입니다.

"thisisasecret" 내용을 가진 my_secret이라는 간단한 시크릿을 생성해 보겠습니다. 먼저, 시크릿 내용을 사용하여 ~/project 디렉토리에 secret.txt라는 파일을 생성합니다.

echo "thisisasecret" > ~/project/secret.txt

이제 docker secret create 명령을 사용하여 Docker 시크릿을 생성합니다.

docker secret create my_secret ~/project/secret.txt

새로 생성된 시크릿의 ID 가 콘솔에 출력되는 것을 볼 수 있습니다. 이는 시크릿이 성공적으로 생성되었음을 나타냅니다.

이름으로 시크릿 검사

이 단계에서는 이름을 사용하여 Docker 시크릿을 검사하는 방법을 배우게 됩니다. docker secret inspect 명령을 사용하면 ID, 생성 날짜 및 레이블과 같은 시크릿에 대한 자세한 정보를 볼 수 있습니다.

이름으로 시크릿을 검사하려면 docker secret inspect 명령 다음에 시크릿의 이름을 사용합니다. 이전 단계에서 my_secret이라는 시크릿을 생성했습니다. 이 시크릿을 검사해 보겠습니다.

docker secret inspect my_secret

이 명령의 출력은 my_secret 시크릿에 대한 자세한 정보를 포함하는 JSON 객체입니다. ID, Name, CreatedAt, UpdatedAt, Spec과 같은 필드를 볼 수 있습니다.

이 명령은 시크릿을 생성한 후 시크릿의 세부 정보를 확인하거나 시크릿과 관련된 문제를 해결하는 데 유용합니다.

ID 로 시크릿 검사

이 단계에서는 ID 를 사용하여 Docker 시크릿을 검사하는 방법을 배우게 됩니다. 이름으로 검사하는 것이 편리하지만, 특히 자동화된 스크립트나 로그를 사용할 때는 시크릿의 ID 만 가지고 있는 경우가 있습니다.

ID 로 시크릿을 검사하려면 docker secret inspect 명령 다음에 시크릿의 ID 를 사용합니다. docker secret create 명령의 출력에서 또는 docker secret ls를 사용하여 시크릿을 나열하여 시크릿 ID 를 얻을 수 있습니다.

첫 번째 단계에서 생성한 my_secret의 ID 를 얻어보겠습니다.

docker secret ls

출력은 시크릿 ID 와 이름을 포함하는 테이블을 표시합니다. my_secret의 ID 를 복사합니다. ID 는 abcdef1234567890과 유사하게 보일 것입니다.

이제 YOUR_SECRET_ID를 복사한 실제 ID 로 바꾸고 검사 명령을 실행합니다.

docker secret inspect YOUR_SECRET_ID

이름으로 검사했을 때와 동일한 자세한 JSON 출력을 볼 수 있습니다. 이는 이름 또는 ID 를 사용하여 시크릿을 검사할 수 있음을 보여줍니다.

Go 템플릿을 사용하여 출력 형식 지정

이 단계에서는 Go 템플릿을 사용하여 docker secret inspect 명령의 출력 형식을 지정하는 방법을 배우게 됩니다. 이는 JSON 출력에서 특정 정보를 추출하여 사용자 지정 형식으로 표시할 수 있는 강력한 기능입니다.

Go 템플릿은 JSON 구조 내의 필드에 액세스하기 위해 간단한 구문을 사용합니다. 점 표기법을 사용하여 필드를 참조할 수 있습니다. 예를 들어, .ID는 ID 필드에 액세스하고, .Spec.NameSpec 객체 내의 이름에 액세스합니다.

출력 형식을 지정하려면 --format 플래그 다음에 Go 템플릿 문자열을 사용합니다. Go 템플릿을 사용하여 my_secret의 ID 와 이름만 추출해 보겠습니다.

docker secret inspect my_secret --format 'ID: {{.ID}}, Name: {{.Spec.Name}}'

출력은 다음과 같습니다.

ID: <secret_id>, Name: my_secret

<secret_id>를 실제 시크릿 ID 로 바꿉니다.

더 복잡한 출력 형식을 만들기 위해 Go 템플릿 내에서 다양한 함수와 제어 구조를 사용할 수 있습니다. 예를 들어, 레이블을 반복하거나 조건부로 정보를 표시할 수 있습니다.

이 형식 지정 기능은 스크립트에서 Docker 명령의 출력을 처리하거나 다른 도구와 통합해야 할 때 특히 유용합니다.

요약

이 랩에서는 시크릿을 사용하여 Docker 에서 민감한 데이터를 관리하는 방법을 배웠습니다. 파일에서 my_secret이라는 Docker 시크릿을 생성하는 것으로 시작하여 시크릿이 암호화되고 권한이 있는 서비스만 액세스할 수 있다는 것을 이해했습니다.

생성 후, docker secret inspect 명령을 사용하여 시크릿의 세부 정보를 확인하는 방법을 살펴보았습니다. 이름 (my_secret) 으로 시크릿을 검사하는 연습을 했으며, 시크릿의 ID, 생성 날짜 및 기타 사양과 같은 정보를 포함하는 JSON 출력을 제공했습니다. 이는 시크릿 세부 정보를 확인하기 위한 inspect 명령의 기본적인 사용법을 보여주었습니다.