docker scout policy 명령어를 사용하여 이미지 정책 평가 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker scout policy 명령을 사용하여 이미지 정책을 평가하는 방법을 배우게 됩니다. 특정 이미지에 대한 정책 평가, 특정 조직에 대한 정책 평가, 특정 플랫폼을 가진 이미지에 대한 정책 평가, 그리고 특정 환경의 저장소에 대한 정책 결과를 비교하는 등 다양한 정책 평가 시나리오를 탐구할 것입니다.

실습을 통해 정의된 정책을 기반으로 Docker 이미지의 규정 준수 및 보안 상태를 평가하기 위해 docker scout policy를 사용하는 실질적인 경험을 얻게 될 것입니다.

특정 이미지에 대한 정책 평가

이 단계에서는 특정 Docker 이미지에 대한 정책을 평가하는 방법을 배우게 됩니다. 이는 이미지 보안 및 규정 준수와 관련하여 작업할 때 기본적인 작업입니다. 이 과정을 시연하기 위해 간단한 예제 이미지를 사용하겠습니다.

먼저, 평가에 사용할 샘플 이미지를 가져와 보겠습니다. Docker Hub 에서 hello-world 이미지를 사용합니다. 이 이미지는 "Hello from Docker!"를 출력하고 종료하는 매우 작은 이미지입니다.

docker pull hello-world

이미지가 가져와 다운로드되고 있음을 나타내는 출력을 볼 수 있습니다.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

이제 이미지가 있으므로 이에 대한 정책을 평가할 수 있습니다. 정책 평가에 대한 특정 명령 및 도구는 사용 중인 정책 엔진에 따라 달라집니다. 이 랩에서는 policy-eval이라는 가상의 정책 평가 도구를 사용한다고 가정하겠습니다.

hello-world 이미지에 대한 정책을 평가하려면 일반적으로 다음과 유사한 명령을 실행합니다.

## This is a hypothetical command and will not work in this environment.
## It is shown here for illustrative purposes only.
## policy-eval evaluate --image hello-world:latest

이 환경에는 특정 정책 평가 도구가 설치되어 있지 않으므로, 평가의 전제 조건인 이미지가 로컬에 존재하는지 확인하여 프로세스를 시뮬레이션합니다.

hello-world 이미지가 시스템에 있는지 확인하려면 docker images 명령을 사용하고 출력을 필터링할 수 있습니다.

docker images | grep hello-world

이미지가 성공적으로 가져와졌다면, 저장소, 태그, 이미지 ID, 생성 시간 및 hello-world 이미지의 크기를 보여주는 다음과 유사한 출력을 볼 수 있습니다.

hello-world   latest    <image_id>   <creation_time>   <size>

이는 이미지가 정책 평가에 사용할 수 있음을 확인합니다. 실제 시나리오에서는 선택한 도구를 사용하여 실제 정책 평가 명령을 실행하는 것이 다음 단계가 됩니다.

특정 조직의 이미지에 대한 정책 평가

이 단계에서는 특정 조직에 속한 Docker 이미지에 대한 정책을 평가하는 방법을 배우게 됩니다. Docker Hub 및 기타 컨테이너 레지스트리의 맥락에서 이미지는 종종 사용자 또는 조직 네임스페이스 아래에 구성됩니다. 이를 통해 더 나은 관리 및 접근 제어가 가능합니다.

이를 시연하기 위해 Docker Hub 의 특정 조직에서 이미지를 가져오겠습니다. library 조직 (공식 이미지) 에서 유지 관리하는 ubuntu 이미지를 사용해 보겠습니다.

docker pull ubuntu

다운로드 진행 상황을 나타내는 출력을 볼 수 있습니다.

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

이미지 이름은 ubuntu이지만 가져올 때는 종종 library/ubuntu로 참조된다는 점에 유의하십시오. 이 library 부분은 조직을 나타냅니다. 특정 조직의 이미지에 대한 정책을 평가할 때는 일반적으로 조직 이름을 포함한 전체 이미지 이름을 지정합니다.

이전 단계와 마찬가지로 정책 평가에 대한 정확한 명령은 정책 엔진에 따라 달라집니다. 가상의 명령은 다음과 같습니다.

## This is a hypothetical command and will not work in this environment.
## It is shown here for illustrative purposes only.
## policy-eval evaluate --image library/ubuntu:latest --organization library

다시 말하지만, 특정 정책 평가 도구가 없으므로 library 조직의 ubuntu 이미지가 로컬에 있는지 확인합니다.

docker images 명령을 사용하고 ubuntu를 필터링합니다.

docker images | grep ubuntu

ubuntu 이미지의 존재를 확인하는 다음과 유사한 출력을 볼 수 있습니다.

ubuntu        latest    <image_id>   <creation_time>   <size>

이는 library 조직의 이미지가 정책 평가에 사용할 수 있음을 나타냅니다. 조직을 기반으로 정책을 평가하는 것은 조직별 보안 및 규정 준수 요구 사항을 적용하는 데 중요합니다.

특정 플랫폼을 가진 이미지에 대한 정책 평가

이 단계에서는 특정 플랫폼용으로 빌드된 Docker 이미지에 대한 정책을 평가하는 방법을 배우게 됩니다. Docker 이미지는 linux/amd64, linux/arm64, windows/amd64 등과 같은 다양한 아키텍처 및 운영 체제 (플랫폼) 용으로 빌드될 수 있습니다. 정책을 평가할 때는 취약점 및 규정 준수 요구 사항이 플랫폼에 따라 다를 수 있으므로 이미지의 대상 플랫폼을 고려하는 것이 중요합니다.

이를 시연하기 위해 특정 플랫폼의 이미지를 가져오려고 시도합니다. 경량 Linux 배포판인 alpine 이미지를 사용하고 linux/arm64 플랫폼을 지정합니다.

docker pull --platform linux/arm64 alpine

지정된 플랫폼에 대한 다운로드 프로세스를 나타내는 출력을 볼 수 있습니다.

Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

linux/arm64을 지정했음에도 불구하고, 다중 아키텍처 이미지를 사용할 수 있고 지정된 플랫폼에 특정 매니페스트가 없는 경우 Docker 는 호스트의 아키텍처에 대한 이미지를 가져올 수 있습니다. 그러나 이 명령은 특정 플랫폼에 대해 가져오기를 시도하는 방법을 보여줍니다.

특정 플랫폼에 대한 정책을 평가할 때 정책 평가 도구에는 일반적으로 대상 플랫폼을 지정하는 옵션이 있습니다. 가상의 명령은 다음과 같습니다.

## This is a hypothetical command and will not work in this environment.
## It is shown here for illustrative purposes only.
## policy-eval evaluate --image alpine:latest --platform linux/arm64

Docker 에서 가져온 특정 아키텍처에 관계없이 로컬에서 alpine 이미지를 사용할 수 있는지 확인하려면 docker images 명령을 사용하고 alpine을 필터링할 수 있습니다.

docker images | grep alpine

alpine 이미지의 존재를 확인하는 다음과 유사한 출력을 볼 수 있습니다.

alpine        latest    <image_id>   <creation_time>   <size>

이미지 플랫폼을 기반으로 정책을 평가하는 것은 이미지가 배포될 특정 환경에 대해 규정 준수 및 보안을 보장하는 데 필수적입니다. 서로 다른 플랫폼은 서로 다른 시스템 라이브러리 및 구성을 가질 수 있으며, 이는 플랫폼별 취약점으로 이어질 수 있습니다.

특정 환경의 레포지토리 정책 결과 비교

이 단계에서는 잠재적으로 서로 다른 환경에서 저장소 내의 이미지에 대한 정책 결과를 비교하는 개념에 대해 배우게 됩니다. 전용 정책 엔진 없이는 실제 정책 비교를 수행할 수 없지만, 프로세스 및 필수 조건을 이해할 수 있습니다.

Docker 에서 "저장소 (repository)"는 관련 이미지 모음을 의미하며, 종종 latest, 1.0, dev 등과 같은 서로 다른 태그 (tag) 를 갖습니다. 예를 들어, Docker Hub 의 ubuntu 저장소에는 다양한 버전의 Ubuntu 이미지가 포함되어 있습니다.

특정 환경의 저장소에 대한 정책 결과를 비교하는 것은 일반적으로 다음을 포함합니다.

  1. 해당 저장소 내의 여러 이미지에 대한 정책 평가.
  2. 이미지가 배포될 환경 고려(예: 개발, 스테이징, 프로덕션). 서로 다른 환경은 서로 다른 정책 요구 사항을 가질 수 있습니다.
  3. 대상 환경의 맥락에서 이미지에 대한 정책 평가 보고서 분석 및 비교.

저장소에서 여러 이미지를 갖는 것을 시뮬레이션하기 위해 ubuntu 이미지의 다른 태그를 가져오겠습니다. 20.04 태그를 가져오겠습니다.

docker pull ubuntu:20.04

ubuntu:20.04 이미지의 다운로드를 나타내는 출력을 볼 수 있습니다.

20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

이제 ubuntu 저장소에서 두 개의 이미지를 갖게 되었습니다: ubuntu:latest (이전 단계에서 가져온 이미지) 및 ubuntu:20.04.

두 이미지를 모두 보려면 모든 ubuntu 이미지를 나열할 수 있습니다.

docker images | grep ubuntu

다음과 유사한 출력을 볼 수 있으며, 두 태그가 모두 표시됩니다.

ubuntu        latest    <image_id_latest>   <creation_time_latest>   <size_latest>
ubuntu        20.04     <image_id_20.04>    <creation_time_20.04>    <size_20.04>

실제 정책 비교 시나리오에서는 ubuntu:latestubuntu:20.04에 대해 모두 정책을 평가합니다. 정책 평가 도구는 각 이미지에 대한 보고서를 생성합니다. 그런 다음 이러한 보고서를 비교하고, 특정 환경 (예: "프로덕션 환경 정책") 의 요구 사항에 따라 결과를 필터링하거나 분석할 수 있습니다.

정책 결과를 비교하는 가상의 명령은 다음과 같습니다.

## This is a hypothetical command and will not work in this environment.
## It is shown here for illustrative purposes only.
## policy-eval compare --repository ubuntu --environment production

실제 비교를 수행할 수 없으므로, 이 단계에 대한 확인은 이러한 비교에 필요한 이미지인 ubuntu:latestubuntu:20.04 이미지를 로컬에서 사용할 수 있는지 확인하는 데 중점을 둡니다.

요약

이 랩에서는 특정 Docker 이미지에 대한 정책을 평가하는 기본적인 프로세스를 배웠습니다. 정책 평가 전에 이미지를 로컬에 갖는 필수 조건을 시연하기 위해 샘플 이미지인 hello-world를 가져오는 것으로 시작했습니다. 그런 다음 docker images를 사용하여 이미지의 존재를 확인하여 정책 평가 프로세스를 시뮬레이션했습니다. 이 초기 단계는 정책 검사를 위해 특정 이미지를 대상으로 지정하는 방법을 이해하기 위한 기반을 마련했습니다.

기본 평가를 기반으로, 이미지가 속한 조직 및 이미지가 빌드된 특정 플랫폼과 같은 요소를 고려하여 정책 검사를 개선하는 방법을 탐구했습니다. 마지막으로, 서로 다른 환경에서 저장소에 대한 정책 평가 결과를 비교하는 방법을 배우면서 정책 시행 및 규정 준수에서 컨텍스트의 중요성을 강조했습니다.