12.7. 应用 EventPolicy
本节论述了将 EventPolicy 应用到安全事件交付的端到端步骤。在以下示例中,namespace-1 中的 Broker 配置为仅接受来自在不同命名空间 namespace-2 中运行的 PingSource 中的事件。
先决条件
- OpenShift Serverless Operator 和 Knative Eventing 已安装在 OpenShift Container Platform 集群中。
-
您已启用了
authentication-oidc功能。
流程
创建两个命名空间,在
namespace-1中部署一个 Broker,并在每个命名空间中配置一个PingSource,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 event-display 服务来显示传入的事件,并添加 Trigger 将它连接到 Broker,如下例所示:
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 后,创建一个 EventPolicy,它只授权
namespace-2中的 PingSource,如下例所示: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事件到达 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 运行以下命令,检查 Broker 状态以确认它已返回到默认的
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 服务日志,以确认只有来自同一命名空间中的
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