Kubernetes 클러스터를 배포하기 전에 플랫폼 바이너리를 검증하는 것은 매우 중요합니다. 이 글에서는 Kubernetes 바이너리를 다운로드하고, 안전하게 검증하는 방법을 단계별로 설명하겠습니다. 중간 공격자가 파일을 변경할 가능성이 있기 때문에 다운로드한 파일이 원본과 일치하는지를 확인하는 과정이 필수적입니다.
Kubernetes 플랫폼 바이너리는 Kubernetes GitHub 릴리스 페이지에서 다운로드할 수 있습니다. 원하는 버전의 바이너리를 선택하여 다운로드 합니다. 여기서는 예제로 kubectl
바이너리를 다운로드하는 과정을 보여드리겠습니다.
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
위 명령어는 최신 안정 버전의 kubectl 바이너리를 다운로드합니다.
Kubernetes GitHub 릴리스 페이지에서는 각 바이너리에 대한 체크섬 해시도 제공됩니다. 이 해시를 다운로드하여, 나중에 다운로드한 바이너리의 무결성을 검증하는 데 사용합니다.
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
이제 다운로드한 바이너리의 해시를 생성하고, 다운로드한 체크섬 해시와 비교하여 무결성을 확인합니다. 여기서는 macOS와 Linux에서 사용하는 명령어를 각각 보여드리겠습니다.
macOS에서는 shasum
명령어를 사용하여 해시를 생성합니다.
shasum -a 256 kubectl
이 명령어는 kubectl
바이너리의 256비트 해시를 생성합니다. 생성된 해시가 다운로드한 kubectl.sha256
파일의 해시와 일치하는지 확인합니다.
Linux에서는 sha256sum
명령어를 사용합니다.
sha256sum kubectl
이 명령어는 kubectl
바이너리의 256비트 해시를 생성합니다. 생성된 해시를 kubectl.sha256
파일의 내용과 비교합니다.
생성된 해시와 다운로드한 체크섬 해시가 정확히 일치해야 합니다. 일치하지 않는 경우, 다운로드한 파일이 손상되었거나 변경되었을 수 있습니다. 이 경우, 바이너리를 다시 다운로드하고 검증을 반복합니다.
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
Kubernetes 바이너리를 다운로드할 때는 항상 체크섬 해시를 사용하여 파일의 무결성을 검증하는 것이 중요합니다. 이를 통해 중간 공격자에 의한 악성 코드가 포함된 파일이 시스템에 설치되는 것을 방지할 수 있습니다.