『リスクから学ぶ Kubernetesコンテナセキュリティ コンテナ開発者がおさえておくべき基礎知識』を読んだ
Kubernetesの勉強として読んだ
前回の初投稿から二か月以上経ってしまいました。何やってんねん……。
ところで、最近はKubernetes(以下、k8s)を勉強しています。実務でGKEを利用しているということもあり、最近は意欲的に勉強しています。k8sを勉強していて思うことは「参考文献がいっぱいあるし、どれもわかりやすいなぁ」ということです。k8sって初学者からすると「すごく難しい」と感じるし、実際その幅広く厚みのあるエコシステムは学習難易度がそこそこ高いわけですが、それを支えてくれるような先人たちの知識や教えが豊富にあると感じています。これはGoogle Cloud Spannerの学習のときには感じなかったことです(まあそもそも、両者は歴史や立ち位置等、まったく異なるものなので比べる必要もないわけですが……)。
そういった「ありがたい先人たちの知恵」の中で、最近私が読んだ書籍が表題の『リスクから学ぶ Kubernetesコンテナセキュリティ コンテナ開発者がおさえておくべき基礎知識』です。
この本は、セキュリティの観点からk8sを扱う上でのプラクティスやアンチパターンを紹介しています。ハンズオン形式ですし、何より文章が非常にわかりやすく、読んでいて内容がすっと頭に入ってきます。
セキュリティというと、「自分はまだk8s初心者なので、セキュリティを学ぶのはもっと後にしよう」と思うかもしれません。実際私もそうでした。しかしこの本は、k8sを学び始めたばかりの人でもおすすめしたい本です。理由は下記の通り。
おすすめ理由1 : k8sやコンテナの基礎知識強化になりうる
この本は、k8sやコンテナの基礎知識をおさらいしつつ、セキュリティリスクになりうる事柄を順番に紹介しています。私はこの本を通じて「いやぁ、これは知らなかったな」と思うようなことにたくさん出会いました。コンテナの実態が単なるプロセスであることや、コンテナプロセスとLinuxカーネルとの関係性、k8sにおけるノードとPodの関係性など、あらためて学ぶことがたくさんありました。この書籍を読んでいると「自分はそもそもコンテナ自体のことをよくわかっていなくて使ってたんだな」と気付かされます。
私のように、なんとなく実務でコンテナ関連の技術を使っているが仕組みのことはよく分かっていないという人間にしてみると、この書籍は知識のおさらい、あるいは知識の充実という観点で非常に有用だなと思います。この本を読むことで、コンテナを利用するエンジニアとして一段階レベルアップしたような気がしました。
ただ、やはり前提知識として最低限コンテナ及びk8sの知識はあった方が良いでしょう。そのため完全な初心者がこの書籍を読むのはおすすめできませんし、書籍の中でも「不安がある場合は事前に学習しておくことをおすすめします」と記載があります。初心者の方は無理に背伸びせず、他の教材を使って最低限の知識を仕入れてからこの本を読むのが良いでしょう。
とは言え、この書籍は書いてある内容は非常にわかりやすいですし、図や表がふんだんに用いられているので、スラスラと読み進めることができました。なので初心者の方でもある程度は気軽に読み進めることができるのではないかと思います。コンテナを利用するエンジニアとしてもう一歩成長したい、という方はぜひ手に取ってみると良いと思います。
おすすめ理由2 : セキュリティは早めに学んでおいた方がいい
セキュリティは早めに学んでおくに越したことはありません。実際、昨今のIT業界ではセキュリティインシデントの発生が常態化しており、常にネットニュースが騒がしい状態となっています。そんな中で、セキュリティの基礎知識はもはやエンジニアの前提となっている気がします。AI利用が当たり前となっている現在もそれは同様で、我々がハーネスエンジニアリングを実践するとき、正しいハーネスを設計する際にこういった知識は必要になります。
つまり「後で学ぼう」と思っているとどうせ学ばないので、今日からでもすぐに学んでしまおう、ということです。これは自戒を込めています……。
現代のプロダクト開発の現場では、コンテナの利用はもはや必須になっていると考えて差し支えないでしょう。仮にその現場ではk8sが使われていなくとも、何かしらのコンテナ技術が用いられることは間違いないと思います。この書籍では、一応k8sに焦点を当ててはいるものの、書籍の半分くらいは「コンテナ開発におけるセキュリティとしての常識的な知識」について解説しているので、k8sを利用していない開発現場でも学びは多いのではないでしょうか。
書籍内では豊富にハンズオンの機会が設けられており、攻撃者の視点で手を動かしつつ脆弱性について学ぶことができるので、非常に学習しやすい印象を受けました。書籍内で攻撃者がPodやノードに侵入した際には、そのお手上げ感に思わず笑ってしまったことがありましたが、当然笑い事ではなく、こんなことが起きないように開発者として凡事徹底を心がけなくてはと改めて思いました。
k8sをざっと学び終えた人が次に手に取る本としておすすめ
繰り返しになりますが、この本は「コンテナやk8sの知識補強」及び「セキュリティの早期学習」という観点で非常に参考になる書籍でした。私のようにk8s学習中の人間でも気軽に手にとって学べる良い教材でした。仮にk8sを現場で利用していなくても、コンテナを日々運用している開発者であればおすすめできる本ではないでしょうか。