4.5. クラスターの Egress ファイアウォールとネットワークポリシー監査の設定
クラスター管理者は、クラスターの監査ログをカスタマイズできます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてクラスターにログインする。
手順
監査ロギング設定をカスタマイズするには、次のコマンドを入力します。
oc edit network.operator.openshift.io/cluster
$ oc edit network.operator.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒント次の YAML をカスタマイズして適用し、監査ログを設定することもできます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ネットワークポリシーを使用して namespace を作成するには、次の手順を実行します。
検証用の namespace を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功した出力には、ネットワークポリシーと
created
ステータスを含む namespace がリスト表示されます。namespace のネットワークポリシーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
networkpolicy.networking.k8s.io/deny-all created networkpolicy.networking.k8s.io/allow-from-same-namespace created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ソーストラフィックの Pod を
default
namespace に作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow verify-audit-logging
namespace に 2 つの Pod を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功した出力には、
pod/client
やpod/server
などの 2 つの Pod と、created
ステータスがリスト表示されます。トラフィックを生成し、ネットワークポリシー監査ログエントリーを作成するには、以下の手順を実行します。
verify-audit-logging
namespace でserver
という名前の Pod の IP アドレスを取得します。POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')
$ POD_IP=$(oc get pods server -n verify-audit-logging -o jsonpath='{.status.podIP}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow default
namespace にあるclient
という名前の Pod から、前のコマンドの IP アドレスを ping し、すべてのパケットがドロップされていることを確認します。oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n default -- /bin/ping -c 2 $POD_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
PING 10.128.2.55 (10.128.2.55) 56(84) bytes of data. --- 10.128.2.55 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 2041ms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow verify-audit-logging
namespace のクライアント Pod から、POD_IP shell
環境変数に保存されている IP アドレスに ping し、システムがすべてのパケットを許可していることを確認します。oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
$ oc exec -it client -n verify-audit-logging -- /bin/ping -c 2 $POD_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ネットワークポリシー監査ログの最新エントリーを表示します。
for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
$ for pod in $(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-node --no-headers=true | awk '{ print $1 }') ; do oc exec -it $pod -n openshift-ovn-kubernetes -- tail -4 /var/log/ovn/acl-audit-log.log done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow