12.7. EventPolicy の適用
本セクションでは、EventPolicy を適用してイベント配信のセキュリティーを保護するエンドツーエンド手順を説明します。次の参照例では、namespace-1 の Broker は、別の namespace- 2 で実行されている PingSource からのイベントのみを受け入れるように設定されてい ます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
-
authentication-oidc機能を有効にしている。
手順
2 つの namespace を作成し、Broker を
namespace-1にデプロイして、次の例に示すように、各 namespace に 1 つのPingSourceを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、event-display サービスを作成して受信イベントを表示し、これを Broker に接続するための Trigger を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この段階では、OIDC が無効になり、EventPolicy が適用されていないため、event-display サービスは両方の PingSources からのイベントを表示します。
Knative Eventing で OIDC を有効にし、以下の例を実行して EventPolicy を作成します。
oc -n knative-eventing patch KnativeEventing knative-eventing \ --type merge \ -p '{"spec":{"config":{"features":{"authentication-oidc":"enabled"}}}}'$ oc -n knative-eventing patch KnativeEventing knative-eventing \ --type merge \ -p '{"spec":{"config":{"features":{"authentication-oidc":"enabled"}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow OIDC が有効になったら、次の例に示すように、
namespace-2の PingSource のみを承認する EventPolicy を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
EventPolicy を確認し、以下のコマンドを実行して Broker のステータスを確認します。
oc -n namespace-1 get broker broker -o yaml
$ oc -n namespace-1 get broker broker -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、event-display サービスのログを表示し、
pingsource-2 イベントの到達のみを確認します。oc -n namespace-1 logs -f -l app=event-display
$ oc -n namespace-1 logs -f -l app=event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して EventPolicy を削除します。
oc -n namespace-1 delete eventpolicy event-policy
$ oc -n namespace-1 delete eventpolicy event-policyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、ブローカーのステータスをチェックして、デフォルト
allow-same-namespaceモードに戻されていることを確認します。oc -n namespace-1 get broker broker -o yaml
$ oc -n namespace-1 get broker broker -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow event-display サービスログを表示し、以下のコマンドを実行して、同じ namespace からの
pingsource-1イベントのみが表示されることを確認します。oc -n namespace-1 logs -f -l app=event-display
$ oc -n namespace-1 logs -f -l app=event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow