EKS Best Practices Guide for Security を読んだ

date: tags: [kubernetes, eks]

Amazon EKS Best Practices Guide for Security を読んだ。今年5月に公開された比較的新しい文書で、いわゆる docs.aws.amazon.com の中に収録されておらず、単独で github.io にホストされている。ともすると、 UI からは AWS official な文書なのかわかりにくいのだが、以下の通り、 official でアナウンスされている。

セキュリティ目的の Amazon EKS 推奨事項ガイドの紹介
https://aws.amazon.com/jp/about-aws/whats-new/2020/05/introducing-amazon-eks-best-practices-guide-for-security/

EKS と銘打たれている通り、 Kubernetes ではなく EKS にフォーカスした記述は少なくない。例えば暗号化についての項では、 Nitro におけるトラフィックのデフォルト暗号化に触れていたりする。しかし大半は Kubernetes あるいは Docker そのもののプラクティスになっていて、 EKS に限らずとも、 Kubernetes 使用者にとって学べることは多い。内容は Identity and Access Management に始まり、 Pod や Network 、 Runtime といった各要素のセキュリティプラクティスを俯瞰し、 PCI DSS のようなコンプライアンス関係についても少し記述を割いている、かなり包括的な内容となっている。

すべてオープンソースでの公開となっており、 https://github.com/aws/aws-eks-best-practices から issue や Pull Request を出すこともできる。また、 for Security と銘打っている以上、他にも for XXX が続くのではないかと期待されるところだが、レポジトリに GitHub Project が設けられており、そこから Performance 、 Reliability 、 Cost Optimization などが計画されていることが垣間見える。つい先日は for Cluster Autoscaler が追加された。個人的に、 AWS のドキュメントを読んで組めるのは「とりあえず使える Kubernetes」であり、そこからプラスアルファで行うべきプラクティスは非常に多く、なかなか捉えどころも難しいように感じている。何年か前の状況に置き換えると、 EC2 で nginx と Rails を動かすだけならそれなりに簡単だけど、セキュリティグループや LB をきちんと扱えているか、 Scaling をどうするのかといった非機能的要件になると話が変わってくるようなイメージだ。それがオフィシャルな Best Practices としてまとまり、さらにオープンに編集可能というのは非常に嬉しいことだなと感じている。

以下、自分が読んだ中でメモした箇所をいくつか挙げておく。