以下のドキュメントを読んでいたら kubectl
コマンド(バイナリファイル)をダウンロードした後に checksum を使って検証(改ざんなし)をする手順が載っていた.kubectl
に限定する必要はなく kube-apiserver
などにも適用できる.さっそく試していく!
ちなみに Certified Kubernetes Security Specialist (CKS) の出題範囲には「Verify platform binaries before deploying」と書いてあり,内容としては関連していると思う.
checksum を取得する
checksum (SHA-256) は公開されているため curl
コマンドを使って取得できる.例えば kubectl
と kube-apiserver
を例にすると以下のようになる.最新バージョン(今日時点では v1.22.2
)は https://dl.k8s.io/release/stable.txt
で確認できるし,具体的にバージョンを指定することもできる.バイナリファイルとしては,他にも kube-scheduler
や kubelet
や kube-proxy
なども指定できる.
kubectl
コマンド- 最新
https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256
aeca0018958c1cae0bf2f36f566315e52f87bdab38b440df349cd091e9f13f36
v1.22.2
https://dl.k8s.io/v1.22.2/bin/linux/amd64/kubectl.sha256
aeca0018958c1cae0bf2f36f566315e52f87bdab38b440df349cd091e9f13f36
v1.20.11
https://dl.k8s.io/v1.20.11/bin/linux/amd64/kubectl.sha256
3a2bf981939df89f807858a481f6f5f2e33a7b9708bd029c8bece434db228efe
- 最新
kube-apiserver
コマンド- 最新
https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kube-apiserver.sha256
1887dcff21492cd4fe83682ad22908c8614e732dead927f3af2e5f8fada9a089
v1.22.2
https://dl.k8s.io/v1.22.2/bin/linux/amd64/kube-apiserver.sha256
1887dcff21492cd4fe83682ad22908c8614e732dead927f3af2e5f8fada9a089
v1.20.11
https://dl.k8s.io/v1.20.11/bin/linux/amd64/kube-apiserver.sha256
bec4c071f6b75b478fd679ec01115f118ba0bcb49131a9011b29a8c53275b3cd
- 最新
checksum を使って検証をする
以下のように sha256sum --check
コマンドを使って検証をすることができる.結果的に OK もしくは WARNING と表示される.
$ curl -LO "https://dl.k8s.io/v1.22.2/bin/linux/amd64/kubectl.sha256" $ echo "$(<kubectl.sha256) /usr/local/bin/kubectl" | sha256sum --check kubectl: OK $ echo "$(<kubectl.sha256) /usr/local/bin/kubectl" | sha256sum --check /usr/local/bin/kubectl: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
おまけ : macOS で sha256sum
コマンドを使う
macOS だと sha256sum
コマンドが使えなかった.今回は Homebrew で使えるようにした.
$ which sha256sum
sha256sum not found
$ brew install coreutils
$ which sha256sum
/usr/local/bin/sha256sum