Certified Kubernetes Security Specialist 合格体験記

2021/03/28に公開

はじめに

自称Cloud Native Security Architectが、Certified Kubernetes Security Specialist(以下、CKS)3回目の挑戦で合格しました。

2回不合格となった際の体験記も投稿していますので、あわせてご覧ください。

https://zenn.dev/oke_py/articles/aabfcc12ab69ac

なぜ、このタイミングで3回目の挑戦をしたのか

前記事に記載したとおり、11月と1月に受験し、いずれもあと1問で合格というラインでした。妻には「あと1問ならすぐに合格できそうだから受けてしまいなよ」と言われたのですが、ほいほい$300を支払う気分になれず、次のBlack Friday or Cyber Mondayセールを待つつもりでいました。

しかし、しばらくするとCKSとKubernetes Security Essentials(LFS260)トレーニングコースのバンドルでセールがありました。とりあえず購入しておき、後述の輪読会を終える5月末に受験することを決めました。

そんなある日、クリエーションライントレーニング Kubernetesセキュリティ編の存在を知り、Cloud Native Days Onlineを視聴する裏で、予算が余っているか社内Slackを駆けずり回って(?)なんとか受講できることになりました。「鉄は熱いうちに打て」と言わんばかりにトレーニング翌日にCKSを受験することにしました。

学習方法

不合格体験記の投稿後は、あまりCKS対策をしませんでした。

Kubernetes CKS 2021 Complete Course + Simulator

不合格体験記でも紹介したUdemy講座です。購入する場合は、DISCOUNT CODEの入力を忘れないようにしましょう。

周回して完璧にするぞと意気込んでみたものの、いざ開いてみると概ね理解できている気がして2周目に取り組むモチベーションが上がりませんでした。ただ、ちゃんとやればこの講座とSimulatorだけで十分合格を狙えると思います(有償トレーニングを受けたため説得力がありません)。

https://www.udemy.com/course/certified-kubernetes-security-specialist

『Learn Kubernetes Security』輪読会

弊社はSysdigを導入していることもあり、Sysdig社の方が書いた『Learn Kubernetes Security』を見つけてはKaaSのプラットフォーム部門と我々セキュリティ部門の合同で輪読会をはじめました。年内に3章まで、3回目の受験時には9章まで読み終えていました。

Network PolicyとPod Security Policyは繰り返し説明されており、だいぶ理解できました。

クリエーションライントレーニング Kubernetesセキュリティ編

あの『Kubernetes完全ガイド』の青山さんによるトレーニングを2日間みっちり受けました。詳細は公開できませんので、募集ページに記載されているカリキュラムを転載するにとどめます。

セキュリティ アドバンスド編

  • Kubernetes Security
  • Network Security
  • Security Context / Pod Security Policy
  • Container Runtime Security
  • Kubernetes Component Security

セキュリティ エコシステム編

  • Secure Container Image
  • Image Scan
  • Open Policy Agent
  • Secret Management
  • Service Mesh Security

大満足です。知識とスキルはもちろん、ここまでやれば合格しないわけがないという自信を得ることができました。CKS偏重のトレーニングではないため、CKS合格だけを求めて受講するとズレを感じるかもしれませんし、もったいない気がします。CKS以上に、仕事で活かせるスキルを習得する気持ちで臨みましょう。

青山さん、クリエーションライン社にはたいへん感謝しています。また、受講させてくれた弊社にも感謝です。

Tips

alias & autocompletion

Important Instructions: CKSに以下の記載があります。

For your convenience, all environments, in other words, the base system and the cluster nodes, have the following additional command-line tools pre-installed and pre-configured:

  • kubectl with k alias and Bash autocompletion
  • yq and jq for YAML/JSON processing
  • tmux for terminal multiplexing
  • curl and wget for testing web services
  • man and man pages for further documentation

kubectlと入力する必要はありません。時間短縮のためにkでいきましょう。

誤ってexamのタブでドキュメントを開いてしまった

試験時間の3/4ほど経過したとき、ドキュメントのリンクをクリックしたら新しいタブではなくexamのタブで開いてしまいました。慌ててブラウザの戻るボタンを押すと「Start Exam」の表示が・・・
チャットでHELPを求めたところ「Start Exam」を押せばいいだけでしたが、かなり焦りました。

どのリソースを編集すべきか、落ち着いて確認する

Podのあるフィールドを更新しようとしてk get pod pod-name -oyaml > pod.yamlで出力したマニフェストを編集した後、k delete pod pod-nameしたところPodが復活してしまいました。そう、Deploymentで管理されていたのです。k edit deploy deployment-nameをすればよかったのです。最初の2回はここに気付かずに失敗したような気がします。

おわりに

「会社の金で殴った」感が否めませんが、誰かの参考になれば幸いです。

GitHubで編集を提案

Discussion