8.6.2. 外部リソースへのアクセスを制限するための iptables ルールの使用
クラスター管理者の中には、EgressNetworkPolicy
のモデルや egress ルーターの対象外の発信トラフィックに対してアクションを実行する必要のある管理者がいる場合があります。この場合には、iptables ルールを直接作成してこれを実行することができます。
たとえば、特定の宛先へのトラフィックをログに記録するルールを作成したり、1 秒ごとに設定される特定数を超える発信接続を許可しないようにしたりできます。
OpenShift Container Platform はカスタム iptables ルールを自動的に追加する方法を提供していませんが、管理者がこのようなルールを手動で追加できる場所を提供します。各ノードは起動時に、filter
テーブルに OPENSHIFT-ADMIN-OUTPUT-RULES
という空のチェーンを作成します (チェーンがすでに存在していないと仮定します)。管理者がこのチェーンに追加するすべてのルールは、Pod からクラスター外にある宛先へのすべてのトラフィックに適用されます (それ以外のトラフィックには適用されません)。
この機能を使用する際には、注意すべきいくつかの点があります。
- 各ノードにルールが作成されていることを確認するのは管理者のタスクになります。 OpenShift Container Platform はこれを自動的に確認する方法は提供しません。
-
ルールは egress ルーターによってクラスターを退出するトラフィックには適用されず、ルールは
EgressNetworkPolicy
ルールが適用された後に実行されます (そのため、EgressNetworkPolicy
で拒否されるトラフィックは表示されません)。 - ノードには外部 IP アドレスと内部 SDN IP アドレスの両方があるため、Pod からノードまたはノードからマスターへの接続の処理は複雑になります。そのため、一部の Pod とノード間/Pod とマスター間のトラフィックはこのチェーンを通過しますが、他の Pod とノード間/Pod とマスター間のトラフィックはこれをバイパスする場合があります。