はじめに
自分が入社して研修明けてから入った仕事の一つがSecurity Group for Podsに関するものでした。最初は社内単語と思っていたのですがAWS公式でも言及されている通信制御方法の一つでした。
この記事ではSecurity Group for Podsとは何かの概略と一般的に導入する場合の利点と注意事項に関してまとめていこうと思います。
Security Group for Podsとは
Security Group for PodsとはKubernetesのPodレベルでAWS Security Groupを関連つける通信制御方式の一つです。
主な利点
Security Group for Podsの一番の利点は細かいネットワークコントロールができることです。
例えばノードレベルで通信制御を行なっていた場合、本来はアプリケーションのPodだけがDBに接続できれば良いのに他のPodにもまとめて通信許可を出しているケースはありませんか?
Security Group for PodsはノードレベルではなくPod単位での通信制御をするため、最小権限の原則に則った構成を実現しやすくなります。
導入にあたっての注意
Security Group for Podsは上記を見ると非常に便利ですが、どの環境にもすぐ適応できるわけではありません。
主な問題は大まかに二つあると考えています。
-
導入できるインスタンスタイプが限られる
Security Group for Podsは全てのインスタンスタイプでサポートされているわけではありません。
導入可能なインスタンスタイプはlimits.goのIsTrunkingCompatible: true
を含むもののみであることを認識しておく必要があります。 -
ENIリソースの消費増加
Security Group for Podsを導入する際に各Podは専用のENI(Elastic Network Interface)を必要とします。
これにより利用可能なIPアドレス数が不足し、スケーリングエラー等が発生してしまう場合があります。
おわりに
Security Group for Podsはうまく導入できればきめ細やかなネットワークセキュリティ制御が可能になります。
この記事が理解の一助になれば幸いです。