お風呂でCKS(Kubernetes Security Specialist)を受験した話

この度、CKSの試験をお風呂で受験して無事合格することができたので、受験時の様子や勉強内容を共有したいと思います。

<div align="center">
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727512/2a4c4524-db75-2cd6-b9de-2a9a3e52ba68.png" title="cks"/>
</div>

## 1. はじめに
 1. 本資格について
  - 昨年新たに追加されたkubernetes（以降、k8s）のセキュリティに関する認定
  - 受験にはCKA(Certified Kubernetes Administrator)の認定が必要
  - 受験費用は$300（まもなく値上げの噂あり）で失敗しても1度だけリテイクが可能
 -  私のバックグラウンド
  - エンジニア歴10年ほど。APやマネジメント寄りの経験多め
  - 仕事ではk8sほとんど触らず
  - k8sの資格はCKAはもちろん、CKAD取得済み
  - セキュリティはなんとなく苦手意識あり
 - 受験理由
  - CKA、CKADあったのでせっかくならCKSも欲しかった
  - k8sはじめコンテナが好き

## 2. 試験で問われる内容
- こちらは受験ページに書かれているので参照ください。[こちら](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-security-specialist/)

## 3. 勉強内容
- CKA、CKADの取得時にもお世話になった方がKodeCloudで配信しているコンテンツをメインに学習しました。
[KodeCloud Certified Kubernetes Security Specialist (CKS)]
(https://kodekloud.com/courses/enrolled/1378608)
<div align="center">
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727512/d4269cdc-e3cb-ccb9-c6fa-4f5aef9b3982.png" title="kodecloud" />
</div>

- Qiitaにて他の方が公開している記事より、↑コンテンツでは足りなさそうな部分について自身でクラウド上にアンマネージドなk8sを構築して取り組みました。[記事はこちらになります。](https://qiita.com/T0P1X/items/660ac6859e6ca27b4a49)
記事関係なく、個人的にKodeCloudのコンテンツで不足していると感じたのは以下あたりです。
  - コンテナランタイムをインストールしてk8s上でインストールしたランタイムでPodを起動する。
  - IngreesリソースへのTLS接続
  - AdmissionControllerにおいて、kubeconfigの設定まで自身で行う。←**これ重要**
  - Secretリソースの暗号化/復号化

- 汚いですがメモレベルでホワイトボードで認定取得に向けてよく触ったリソースをまとめたので共有します。
![無題の Jam 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727512/8ecefd65-f764-e6e5-a996-487b30802232.png)

- 他の方の勉強方法としてよく挙げられているUdemyのコンテンツに付属されているシミュレータについては今回は実施しませんでした。1回目で合格しましたが、落ちたらリテイク前にやろうと考えていました。
Udemyのコンテンツは[こちら](https://www.udemy.com/course/certified-kubernetes-security-specialist/?aEightID=s00000016735001&AID=200416565087&a8=Vhfv-h6e1mulcfZTZG0_BZa__ZKW0f7HdGul6m_AclCe1mfhSm0hImfZbYKipi7u3lRdA2fz3hfvss00000016735001)

- 学習コンテンツが英語ばかりだったので一応、日本語の書籍で体系的に勉強しました。
[Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド (Compass Booksシリーズ)](https://www.amazon.co.jp/dp/B085C8LYDC/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

<div align="center">
<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727512/4c0bb533-8df0-d923-885b-ff51d4a0ff86.jpeg" title="book" />
</div>

## 4. 試験時の様子
1. 試験会場  
 - 試験会場は自分で調整する必要があり、貸会議室や自宅の部屋など周りに誰もいない密室である必要があります。私は家の内装上、密室状態を用意することが困難で貸会議室も費用がかかるのと仮にネット回線が貧弱だった場合を懸念して自宅のお風呂で受験しました。バスタブに座り、フタをデスク代わりにします。**ネット回線さえ安定しているのであれば個人的にベストプラクティスだと思います。**
<div align="center">
<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727512/b631ef12-51a5-96da-d7e9-20d9495fd876.jpeg" title="bath">
</div>

2. 試験言語
 - CKSは2021/6時点で英語のみですが、**Google翻訳のプラグインを使用することが可能でした。**事前にサポートへ問い合わせとしてOKと回答もらっていましたが、試験当日に試験官からも使っていいと言われました。英語が苦手だったので助かりました。

3. 試験問題
 - 人によって異なるようですが、私の場合は問題数は15問でした。初見殺しのような問題を飛ばしても試験時間は2時間でギリギリでした。問題の後半＝難問というわけではないので時間がかかりそうであれば飛ばして次の問題を解くようにした方がいいと思います。
 - CKAやCKADと同様にコマンドで作成できるリソースはコマンドや--dry-run=client　-o yamlを駆使した方がいいと思います。**尚、CKA/CKADの時はなかったですが、マニフェストファイルのガラが用意されているケースもありました。**
 - まだ試験が新しいからかもなのですが、問題に対しての正しい解答が一部既にクラスタに設定されているようなケースもあり混乱させられました。

## 5. 振り返って
 - 初見殺し問題を仮に落としても↑KodeCloudのコンテンツの内容が理解できていれば合格点に到達できる難易度だったと思います。
 - 同コンテンツの模擬問題よりも試験の方が難易度はやや高めに感じました。ただ、試験中に参照できるドキュメントを見れば解けないレベルではなかったです。※↑紹介したシミュレータの問題は試験よりも難しいらしいのでそちらで対策した方が安心かもしれません。）

記事は以上になります。これから取得することを検討されている方の参考になれば幸いです。
ありがとうございました。