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

# はじめに

CKS (Certified Kubernetes Security Specialist) の合格体験記です！

# 受験した資格

* [Certified Kubernetes Security Specialist](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-security-specialist/)
* 主催: [The Linux Foundation](https://www.linuxfoundation.org/)
* 費用: 300ドル（USD）※ 私はこの値段ではなく、後述するバンドル（セット）で安く購入しました。

# 内容

[公式サイト](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-security-specialist/)に以下のように書かれています。

> CKSを取得することで、コンテナベースのアプリケーションやKubernetesプラットフォームの構築、デプロイ、ランタイム時のセキュリティを確保する能力を持っていること、およびプロフェッショナルな環境でこれらのタスクを実行する資格があることを証明できます。

以上のような内容ですが、KubernetesにおけるRBACによる認可の設定やネットワークポリシーの設定によるいわゆるHardeningのスキル、監査（audit）の設定、脆弱性の発見などのスキルを試される試験となっています。

# 受験方法

* 試験時間 120分
* リモートでの実技試験。
    * Google Chromeを使い、試験用のPluginにあるコンソールを用いて、ネットワークの向こうにある事前に用意されたKubernetesクラスタ（複数）にアクセスして、実際に設定等を行なっていくという試験です。
* 英語（日本語の対応は現在のところしていないようです）

なお、今回受験したCKSのテストを受ける（スケジュールする）ためには、[CKA(Certified Kubernetes Administrator)](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/)に合格して、その有効期限内である必要があります。要するに、CKAの認定が前提となっています。

なお、準備事項・注意事項・禁止事項があるので、それらは[Candidate Handbook](https://docs.linuxfoundation.org/tc-docs/certification/lf-candidate-handbook)をきちんと確認して理解しないといけません。

その中ならいくつか書くと、以下の事項が主な注意点だと思います。

* カメラ（PCに内蔵あるいはUSB等で接続できるもの）が必要。
    * 試験中にカメラで試験官に監視されることになります。（PCの画面共有も必要です。）
* ID（パスポート等の身分証明書）が必要
* 静かな隔離された場所（部屋）が必要
    * 試験中に他の人が立ち入らない場所である必要があります。
    * 試験開始前に机の上や部屋の中をカメラを使用して試験官に見せる必要があります。
* 試験中に参照して良いWebサイトがいくつかある（具体的にはCandidate Handbookを参照）。

なお、合格基準は 67%の正解です。

# 受験のきっかけ・目的

The Linux Foundationから[Kubernetes Security Essentials（LFS260）](https://training.linuxfoundation.org/ja/training/kubernetes-security-essentials-lfs260/)というe-LearningのコースとCKSの受験チケットのバンドル（セット）を、199ドル(USD)で購入しないかというメールが送られてきたのが、きっかけでした。[CKA](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/)と[CKAD](https://training.linuxfoundation.org/en/certified-kubernetes-application-developer-ckad/)には、2020年1月に既に合格しており、そのCKAの合格者にメールが送られてきたものだと推測しています。
前職では、Kubernetesに関連してコンテナ・セキュリティやコンテナ・ランタイムについて取り組むこともあったので、それらの知識・スキルを試したいと思い、そのセットを購入して受験しました。

# 学習方法

せっかく学習コースとのセットを購入したということと知識の最新化を図るために、学習コース（LFS260）を一通り学習しました。期間は約1ヶ月です。

設定などを試す環境（Kubernetesクラスタ）は、AWSで構築しました。EC2のt3.largeインスタンスをスポットインスタンスで2つ起動して、それぞれmasterとworker nodeとしました。料金は、1インスタンス1時間当たり数セントですので、ほとんど利用料金をかけずに試すことができました。なお、学習コース（LFS260）には、masterとworker nodeを構築するためのスクリプトが付属していますので、それを使うと簡単に構築できると思います。

# 結果

**合格**

試験の結果は、受験から36時間以内にメールで通知されることとなっており、実際にその時間内に通知が来ました。

# 所感

私はなんとか合格しましたが、正直にいうと難しい試験だと思います。
　学習コース（LFS260）はあるのですが、その学習範囲を超えるような出題がされていると感じました。つまり、学習コースを一通りやるだけでは不充分だと思います。普段から構築・運用や操作を行ない、少し広い範囲の知識を身に付ける必要があるのではないかと思います。
　また、問題の中にはどうやって設定すれば良いのか分からないような悩むものもありました。そういう場合は、その問題は諦めて別の問題を解くなどの判断が必要とされると感じました。
　あと、CKAが前提となっているので、CKAで問われるようなスキルは当然できるものという前提で設問がされています。CKAの範囲も復習しておくと良いのではないかと思います。
CKA、CKADと共通で言えることだと思いますが、それぞれ試験中に参照しても良いWebサイト（Kubernetes公式サイトのドキュメント等）があるので、こういうことをやりたい場合にはどのページを参照すべきか調べておくといった事前準備を必ずするべきだと思います。
　CKSの資格の有効期間は2年間となっています。CKAやCKADの3年間と違い、少し短いのが残念ですが、セキュリティ関係の機能やコンポーネントは、まだまだ発展が見込まれて、いろいろと変化が予想されるので仕方がないと感じています。

※ 2021年3月現在の情報に基づいて記載しております。受験の際は必ず公式サイト等で最新の情報をご確認ください。