手当たり次第に書くんだ

飽きっぽいのは本能

Kubernetes NetworkPolicy を使用したアウトバウンド通信の制御

Kubernetes を使用する場合、特に AKS, EKS のようなパブリッククラウドの Kubernetes は、ネットワーク構成が柔軟ではないため、途中経路上の通信制御、特にアウトバウンド制御に問題がある場合があります。

例えば、AKS でプライベートアクセス専用のアプリケーションをデプロイする場合、サービスリソースでアノテーションを使用すれば、NSG と動的に連携して柔軟なアクセス制御が可能ですが、アウトバウンドはそれの対象外です。

一方で、アウトバウンド通信を制御するケースも実際は多くないかもしれませんし、例えば中小企業レベルでは、大抵の場合、全く制御していないことが多いと思います。そもそも最近の中小企業では、AWS ばかり使っていて、そのような企業にはまともなネットワークエンジニアがいないため、直接インターネットに抜けて使っているような場合がほとんどでもあります。

という、話もあるということを前置きして、NetworkPolicy を使用したアウトバウンドの制御方法は以下のとおりです。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-rfc1918-only
  namespace: my-system
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/8
    - ipBlock:
        cidr: 172.16.0.0/12
    - ipBlock:
        cidr: 192.168.0.0/16

この設定により、my-system に含まれる Pod はプライベートアドレスである RFC1918 のアドレスにアウトバウンド通信が制限されます。このアドレスは必要に応じで調整すれば良いでしょう。

この上で、インターネット上の何かと通信したい場合はどうするのか?という観点においては、やはりプロキシサーバーを使用させるのが良いかと思います。そのプロキシサーバーも通信可能な FQDN は信頼性の高いものでフィルターをかけるべきでしょう。もちろん基本的なセキュリティ設定はした上でとなりますが。アクセスログも後から分かりますしね。

Amazonで購入する

Kubernetes NetworkPolicy を使用したアウトバウンド通信の制御

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る