Certified Kubernetes Security Specialist(CKS) 合格体験記

概要

  • 約1.5ヶ月程度の勉強期間を経てCKS(v1.22)にスコア89%で合格
  • LFS260(Killer.sh含む)とKodeKloudで学習

f:id:encry1024:20220110091649p:plain
Credly

教材

Kubernetes Security Essentials(lfs260)

training.linuxfoundation.org

Cyber Monday Sale 2021で安くなっていたため、CKSと対応トレーニングである本トレーニングが一緒になったパックを約23,000円で購入して利用しました。本トレーニングは、環境自体自分で用意しなくてはいけないため少し大変です。試験に直結する話題以外にも、CloudNative初心者にとっては勉強になる内容もあり個人的にはまだまだ復習したいぐらいです。また最近では、Killer.shと呼ばれる、本番に似た内容の模擬試験が2回受けることができるものも付与されてきますので、こちらも活用しました。最初どこから利用できるのか、いまいちわからなかったのですが、試験スケジュールを申し込むところに、小さくリンクが貼られていました。

KodeKloud

kodekloud.com

CKAの受験の際にお世話になった人が多いであろう、KodeKloudのトレーニングコースを以前格安で購入していたので利用しました。Udemyでは、本コースは提供されていないため、直接KodeKloudから買うしかありません。Kubernetesクラスタのバージョンが、v1.20と古いためカバーしきれていない分野があります。2022年1月現在の本トレーニングだけだと合格は厳しいように思います。

Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド (Compass Booksシリーズ)

amzn.to 比較的新しい、この分野のセキュリティ本。非常に質が高くて、まだまだ何回も読みたくなるスルメのような本です。試験は終わりましたが、引き続き読み返したりすると思います。CKSより高度な内容も含まれていますが、第5章Kubernetesクラスタのセキュリティだけでも読んでおくと、LFS260やKodeKloudなど英語教材が苦手な人にとっては、いい準備になるかもしれません。

Kubernetes完全ガイド(第2版)

amzn.to 言わずとしれたKubernetesの名著。CKA/CKADだけにとどまらず、CKSにも通じるような話が混ざっています。ただ、僕自身はCKAの復習という側面で読んだりした部分が多かったように思います。辞書的に持っておくには非常に良い本だと思います。そろそろ第3版来るかな?

勉強方法

主な勉強方法としては、下記の通りです。CKA合格後、約半年のブランクがあるため、最初の方はkubectlコマンドの使い方や感覚を呼び戻すのに時間を費やして大変でした。

  1. 試験勉強用にKubernetesクラスタを作成する
  2. KodeKloudをやる
  3. 並行してLFS260を読む(あまり演習はしっかりやらなかった、気になったところだけ)
  4. CKAの復習
  5. Killer.sh(1回目)を受けて、できなかった問題や出題傾向を把握
  6. LFS260/KodeKloudの復習
  7. 受験(1回目)

受験戦略

ここでは、オススメの受験戦略を共有します。Killer.shでも言われているような話もありますが、一応記載しておきます。

Namespace指定忘れ対策

k -n dev get podのようにして、必ずNamespaceの指定をコマンド冒頭で行うように訓練する。

aliasの設定

下記を$HOME/.bashrcに記載して反映させる。前者は、Manifestファイルを作成するときに使うやつで、後者はPod削除の時間を短縮するためのもの。

export do="--dry-run=client -oyaml"
export fg="--force --grace-period 0"

下記を$HOME/.vimrcに記載する。EmacserなのでVimのことはよくわからないが、おそらくYAMLなどをコピペしたり書いたりするときに有効なんだと思う。これを記憶しておくことが本試験の対策で一番むずかしいと思われる。

set smartindent expandtab ts=2 sw=2

当日の様子

10分遅延で開始

1月9日のAM 9:00開始で試験を申し込みました。15分前には、監視セッションへのログインができるので、入って待機していました。少ししたら、監視官が入ってきて、いろいろ説明をされました。CKAを受けていたので「こんな感じだったなぁ」と思いながら、外部ディスプレイ使う話やパスポートを見せたり、部屋の中をラップトップ持って徘徊して見せたりしました。
試験開始予定時刻から10分ほど遅れて試験が開始されました。試験内容に関して詳細を触れることができません。しかしながら一言何か言うとすれば、「Killer.shより難しくね?w」という感情を抱きました。そのため、あれだけに頼ってしまうのは、個人的には微妙かなぁと思いました。もちろん基礎力があれば応用できるかもしれませんが。。。

ラップトップのバッテリーが切れる?!

そして、試験中盤に入ろうとしている中、トラブルが発生しました。USB Type-Cのハブのせいか、ラップトップ側のコネクタがうまく刺さっていなかったのか、真偽の程はわかりませんが、充電しながら利用していたにも関わらず、気づいたら動作が重くなり、ラップトップのバッテリーが6%まで下がっていました。そこで急遽、チャットでバッテリーがやばくて、ディスプレイが起因な気がするから外すという旨を伝えて外しました。しかしながら、そのタイミングでなぜかChromeをクラッシュしてしまい、再度立ち上げても監視セッションに入れません。何度リロードしても、Webカメラは問題なくて、画面共有だけうまくいきません。チャットでも焦りのメッセージを飛ばしたりしましたが、結局もう一度Chromeを起動し直したらうまく動作しました。おそらく時間にしては15分~20分程度のものだと思いますが、解くテンポが一気に乱されて大変でした。

試験終盤に一気に解答

そんなトラブルを経て、時間は残り15分ぐらいになった頃です。なぜかうまくいかなかった大きめの配点の問題がぽんぽんと解けて(もしかしたら正当ではなくて部分点とかかもしれませんが)、おそらく合格できるだろうという配点になりました。また、トラブルもあったせいか試験時間が延長され、最終的に11:10終了予定が、11:29になっていました。UI上はexpiredと出ているのですが、試験官曰く続けて良さそうな雰囲気だったので、ギリギリまで粘って、最後の1分で解けた問題などもありました。しかしながら、しっかりとした動作確認を全部はできていなかったので、解けた問題が本当に正しいか否かは確認できず試験が終了しました。

試験結果通知

11:30ぐらいに試験が終わり、翌日1月10日のAM 9:06分に合格した旨のメールが来ていました。

f:id:encry1024:20220110131958p:plain
合格メール

点数を見てみると89%となっており、CKA合格時の88%とほぼ同等ぐらいで合格していました。おそらくやった内容がほとんどあっていたんだなぁという感じです。

おわりに

本資格取得を通じて、かなりKubernetesのセキュリティに関しての勘所を育てることができたと思います。学習範囲も非常に良くできており、満足度の高い資格取得勉強でした。間接的に様々なことを学ぶことができたと思います。Kubernetesセキュリティに興味があるのであれば、ぜひ受けることをおすすめします。
本試験を突破する一番大きなコツは、「正しく機能を理解すること」だと思われます。とりあえずコマンドを叩けるだけだと合格できない可能性があります。しっかり、理屈や機能に対する根本理解を深めながら勉強すると良いと思います。

謝辞

最後に、今回も静かな受験環境を作るために、娘を連れておでかけしてくれた妻といい子にしていてくれた娘に感謝します。また、書籍「Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド (Compass Booksシリーズ) 」は、Twitter上でとある方にプレゼントしていただいたものなので、それもガッツリ活用できたので、この場で感謝の言葉を伝えようと思います。ありがとうございました。

参考文献

github.com qiita.com tetsuya-isogai.medium.com zenn.dev blog.vpantry.net www.hidekazuna.org bswen.com zenn.dev container-security.dev