Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Namespace 間の通信を制御する

PFCP では、Namespace をまたぐ通信は以下のポリシーに従い制御されます。

Namespaceをまたぐ通信のポリシー

  • 異なる組織の Namespace をまたいだ通信は、全て拒否されます。
  • 同一組織の Namespace をまたいだ通信は、デフォルトでは全て許可されます。
  • 通信を拒否するポリシーを任意に追加できます。PFCP サービス側で拒否されている通信は許可できません。

拒否したい通信のポリシーを追加するには、CiliumNetworkPolicy カスタムリソース1 2を使用します。 CiliumNetworkPolicy を使用した拒否ポリシーを追加する例として、Namespace 外からの内向きの通信を拒否する方法を説明します。

CiliumNetworkPolicyによるNamespace外からの内向き通信の拒否

隔離したい Namespace 内に CiliumNetworkPolicy リソースを作成することで、他の Namespace からの通信を拒否します。本番ワークロードを実行する Namespace において、他の Namespace からのアクセスを禁止したい場合に有用です。

例として、下記のリソースをorg-<組織名> Namespace に作ると、同一 Namespace 内の通信および org-<組織名>--foo Namespace からの通信のみ許可されます。

apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: "deny-except-org-<組織名>--foo"
  namespace: "org-<組織名>"
spec:
  endpointSelector: {}
  ingressDeny:
  - fromEndpoints:
    - matchExpressions:
      - key: k8s:io.kubernetes.pod.namespace
        operator: NotIn
        values: ["org-<組織名>", "org-<組織名>--foo"]

spec.ingressDeny に加えて、spec.egressDeny も使用できます。特定の宛先への外向きの通信を拒否したい場合は、 spec.egressDeny をご利用ください。

なお、spec.ingressおよびspec.egressは使用できません。拒否されている宛先との通信の許可はできません。

サブネームスペース作成時の内向き通信遮断オプションについて

ポータルからサブネームスペースの作成・変更を行う際に、オプションを有効にすることで、他の Namespace からの通信を全て拒否する CiliumNetworkPolicy を作成できます。 本番ワークロードの実行環境など、他の Namespace から通信できない環境を作るときに利用できます。

この CiliumNetworkPolicy は deny-all-ingress という名前で作成されます。 作成後は、必要に応じて自由に書き換えてポリシーを変更できます。


  1. CiliumNetworkPolicy の一部機能は制限されています。

  2. CiliumNetworkPolicy の詳細な説明については、公式のドキュメント をご確認ください。