Certified Kubernetes Security Specialist (CKS) 試験のFeedback
合格までのみちのり
TL;DR
記念すべき2020年12月16日、2度目の試験でCKS試験に合格した。合格ラインは67%、一度目の試験は45%。二度目の試験は78%でクリアした。試験の準備、特に試験のフィードバックや試験に対する準備などを共有していこうと思う。

試験のフォーマット
CKA/CKADと同じくリモート/ハンズオン/Webターミナル/試験監督にカメラ越しに見守られながらの試験ということは変わらない。
ただ今回の試験でこれまでのCKA/CKADなどと違うなと感じたのは以下の点。
- 英語のみ、日本語化未対応(2020/12/16時点)
- 参照可能なドキュメントにTrivy、Sysdig、Falco、AppArmorなどが増えてる。試験用、Kubernetes公式用とあわせて合計3つタブが開けるようになった。
source <(kubectl completion bash)
,alias k=kubectl
などはあらかじめ~/.bashrc
に設定されている。
今回は自宅から受験。ドアが閉め切れる部屋であれば多少の家具などがあっても大丈夫な模様(私の部屋の場合は子供用ベッドやおもちゃタンスみたいなのがあったけど特に問題なし)。公式のインストラクションはこちら。
試験準備に役立つサイト
- 公表されているカリキュラムと、それに対応するkubernetes.ioページの内容を理解する。リンク集を作ろうかとおもったら既に先人がきれいにまとめていたのでこちらを読むと良い。
https://github.com/walidshaari/Certified-Kubernetes-Security-Specialist
(2021/02/02追記)
試験のカリキュラムとそれに対応する学習コンテンツという意味ではStackRoxのGitHubページにもStudy Guideとしてまとめられているのでこちらも。
https://github.com/stackrox/Kubernetes_Security_Specialist_Study_Guide - Kim Wuestkamp氏のBlogおよびUdemyコンテンツ。私も1度目の試験に落ちたあとこのUdemyコンテンツで学習(1か月くらい)およびシミュレータを試験前日に実施。コンテンツはデモもふんだんにあって試験中のターミナル操作をイメージできるのと、シミュレータが本番の雰囲気を味わいながら精度の高い模擬試験を受けることができる。短期間で試験に受かりたい人には特におすすめしたい。
Blog : https://medium.com/faun/cks-certified-kubernetes-security-specialist-418d55c86465
Udemy: https://www.udemy.com/course/certified-kubernetes-security-specialist/
※Udemyは忘れずにディスカウントコード入れましょうDISCOUNT CODE: CKS-KILLER-SHELL
- 最近CKSに受かった人のページ。タイミング的に私は試験準備には使わなかったが↑のページよりも凝縮してまとめられている。このページの内容はさらっとできるようにしておく必要があると思う。
https://jihadbenabra.medium.com/my-feedback-about-kubernetes-security-specialist-exam-a82b1af1a08c
書籍
1回目の試験時に購入。この本がないと今の私はいません。というくらい名著。広範囲なトピックに対して要点を非常によくまとめてくれていてテーマの割りにさらっと読めるしあとで細かいところ読み返しても学びがある。「Kubernetesはさわったけどセキュリティ?」って人はここから始めると良いと思う。
分量が多くなくさほど時間がかからずに読める。カリキュラムをほどよくカバーしていてかつ実務的な対策(Yamlファイルの内容やコマンド等)も載っている。公式サイトの補足的に使ったりすると理解が深まる。
Aquasecurityのサイト経由でユーザ情報等を提供すると無料で読めるようである。
https://info.aquasec.com/kubernetes-security
試験までにやったこと
- まず書籍を一通り読んでそもそもKubernetesのセキュリティってなんぞみたいなところの概要把握をした。
- 試験勉強用のクラスタを用意して、公式のチュートリアルをなぞりながら実際の設定方法などを確認した。
- 上記のUdemyや書籍をやりながら先の環境で確認を繰り返しやった。
- Udemyのシミュレータを前日にやった後、できなかったとこの解説を試験前まで確認した。
試験勉強用のクラスタ
何の変哲もないシングルマスターの1台クラスタだけど一応書いておく。APIサーバの設定を色々と変えることが多いのでマネージドのK8sクラスタよりもkubeadmで作ったクラスタの方が良いと思う。個人的には試験勉強に際してはマスターの冗長化は不要かと。
$ k get node -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
kubeadm-k8s-1 Ready master 65d v1.19.2 10.0.1.132 <none> Ubuntu 18.04.2 LTS 4.15.0-123-generic containerd://1.3.7
試験中に気を付けた方がいいこと
- 自宅から受けたからなのか試験監督の問題なのか、試験前のチェック(PCやカメラで部屋をチェックするなど)にだいぶ時間がかかった。ログインから実際の試験開始(Start Examをクリックするまで)25分くらいかかった。試験時間は当然Start Examしてからカウントされるので問題ないが、前後の時間には余裕をもって臨んだ方が良い。
- 途中残り30分くらいのところで何等かの理由でターミナルが反応しなくなったため、Reset Terminal的なリンクをクリックしたところ画面がに“Start Exam”が表示され顔面蒼白した。がデータはちゃんと残っていたので慌てなくても大丈夫。
- 試験のUIが多分今年の夏過ぎくらいから変わっている。大した問題にはならないが不安な人はこちらを見ておくとよいかも。
- CKS特有の話ではないがWebターミナルに慣れておくこと。(公式ページ参照)特にCopy/Pasteは試験中よく使うので使用法を正しく把握しておくのが良い。私の場合公式に載っている以外でもCnt+Shift+Vで貼り付けができたが、Cnt+Shift+CではコピーができずChromeのデバッグモードが立ち上がってしまい何度か時間をロスしてしまった。
- 2020年12月時点試験環境はv1.19だが公式ドキュメントを普通に開くと最新のv1.20が開く。たまにAPIバージョン上がっているリソースなどがあるので注意。(試験環境はそのうちアップグレードされる見込み)
最後に
低レイヤの話も含めて学ぶことができたこと、Kubernetesのセキュリティ対策について一定の基準を持てるようになったことが試験を通じて得た大事なことだなと実感している。またセキュリティは終わりのないテーマなのでオッサンのライフワークにぴったりです。ちょっと早いけど2021年も引き続きやっていく所存。