chroju.dev/blog

the world as code

EKS Best Practices Guide for Security を読んだ

Pod Security Policies
FEATURE STATE: Kubernetes v1.21 [deprecated] Caution: PodSecurityPolicy is deprecated as of Kubernetes v1.21, and will be removed in v1.25. We recommend migrating to Pod Security Admission, or a 3rd party admission plugin. For a migration guide, see Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller. For more information on the deprecation, see PodSecurityPolicy Deprecation: Past, Present, and Future. Pod Security Policies enable fine-grained authorization of pod creation and updates.
Pod Security Policies favicon https://kubernetes.io/docs/concepts/policy/pod-security-policy/
Pod Security Policies
セキュリティ目的の Amazon EKS 推奨事項ガイドの紹介
セキュリティ目的の Amazon EKS 推奨事項ガイドの紹介 favicon https://aws.amazon.com/jp/about-aws/whats-new/2020/05/introducing-amazon-eks-best-practices-guide-for-security/
セキュリティ目的の Amazon EKS 推奨事項ガイドの紹介

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 としてまとまり、さらにオープンに編集可能というのは非常に嬉しいことだなと感じている。

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

  • Pod Security
    • コンテナイメージに shell を入れるべきではない
      • sh ぐらいは入れていることがあるので、そこまで徹底出来る方が確かに好ましそう
    • Pod Security Policy
  • Multi-tenancy
  • Detective Controls
    • audit log の解析や監視
    • 同様に CloudTrail log も
    • 地力で監視するのはどう考えても大変なので自動化して何か考えたいが。。
  • Infrastructure Security
  • Incident response and forensics
    • 実際にセキュリティインシデントが発生したら、どう対処するか
      • Network Policy を使った通信の遮断
      • 該当 node に対して cordon を実施
      • 問題のある node や pod に label を付与してわかりやすくしてから対処する
      • などなど
  • Image Security