Infra Study Meetup #6 で登壇した

@matsumotory さんからお誘いいただいて、登壇した。 https://forkwell.connpass.com/event/187694/ テーマは「インフラとセキュリティのこれから」ということで、コンテナや Kubernetes のセキュリティについて、DevSecOps の進め方などについて話した。 当日の様子は YouTube に上がっているので、どうぞ。また、使ったコマンドなどは gist にあります。 Infra Study の過去回を見るに、参加者層が幅広い印象を受けていたので、広く浅くセキュリティについて話そうと思った。 Docker などによって Linux コンテナは広く普及し、Linux コンテナの仕組みを理解している人も増える一方で、あまり Linux コンテナ自体(イメージではなく)のセキュリティについて触れている人はそう多くないと感じていた。 また、Kubernetes のセキュリティといえば PodSecurityPolicy 周りについて触れられることが多いが、そもそも Linux コンテナのセキュリティを知らなければ、これを適切に設定することは難しいだろう。加えて Kubernetes の Attack Surfaces やマネージド環境でのセキュリティについて日本語で触れられている記事も多くないので、そのあたりの啓蒙をしようと思い、これらについて話すことにした。 内容としては以前セキュリティ・ミニキャンプなどで行ったコンテナセキュリティの講義からいくつかピックアップしたものに加え、Kubernetes セキュリティについて付け加えた。 …とスライドの内容について書こうと思ったけど、動画を見てもらう方がいいので、ここでは割愛で。 Twitter の様子を見る限り、プラスな反応が多くてよかったと思う(Infra Study の参加者が優しいというのもあるが…)。 自分は質疑応答が本当に苦手で、想定質問をかなり考えて望んだのだけど、思った以上に DevSecOps や組織でのセキュリティ文化についての質問が多くて、想定していた質問は一個もこなかったw slido への質問 当日時間の関係で答えられなかった質問があるので、ここでいくつか回答しようと思う。 https://app.sli.do/event/n9r09kec/live/questions コンテナでイミュータブルだぜ、と言いつつyum updateとかapt upgradeしているかと思うのですが、イミュータブルを目指す環境とアップデートの頻度やライフサイクルの兼ね合いはどのように考えられていますか? コンテナで apt upgrade などをしたことがない… アップデートの頻度は自由に決めていいと思いますが、脆弱性に関してはリスクに応じてすぐに対応する必要があると思います。 イメージをスキャンして、アップデートもしくはパッチを適用して、イメージを再構築するパイプラインやジョブを作って自動化するのが「イミュータブルを目指す環境」には必要だと考えています。 加えるとコンテナ内で root で実行することはベストプラクティスではないので、そこも禁止するべきだと思っています。 脆弱性が頻繁に出るというのは、そもそも不要なパッケージが含まれていたりするケースもあるので、つまるところベストプラクティスを実践していくと、次第にセキュアになっていくと思います。 PaaSのセキュリティについてお聞きしたいです。