第 10 章 简化事件路由
简化事件路由可让 Event-Driven Ansible 控制器使用事件流从各种远程系统捕获和分析数据。使用事件流,您可以从如 GitHub 或 GitLab 等远程系统发送事件到 Event-Driven Ansible 控制器。您可以通过在规则手册中交换源,将 1 个或更多个事件流附加到激活中。
事件源是将您的源连接到您的规则手册的简单方法。通过此功能,您可以创建一个端点来从事件源接收警报,然后在多个规则手册中使用事件。
10.1. 事件流 复制链接链接已复制到粘贴板!
事件流可以将事件从远程系统发送到 Event-Driven Ansible 控制器。在典型的集合中,服务器通过互联网将数据发送到事件流,再到 Event-Driven Ansible 事件流接收器。当数据通过互联网时,请求必须经过身份验证。根据 webhook 供应商或远程系统,验证方法可能会有所不同。
event-Driven Ansible 控制器支持六个不同的事件流类型。
| 类型 | 描述 | 供应商示例 |
|---|---|---|
| 散列消息身份验证代码(HMAC) | 在 Event-Driven Ansible 控制器和供应商 webhook 服务器之间使用共享 secret。这保证了消息的完整性。 | Github |
| 基本身份验证 | 使用 HTTP 基本身份验证。 | Datadog, Dynatrace |
| 令牌身份验证 | 使用令牌身份验证。通常,HTTP 标头是 Authorization,但 Gitlab 等供应商使用 X-Gitlab-Token。 | GitLab, ServiceNow |
| OAuth2 | 使用 Machine-to-Machine (M2M)模式,以及名为 client credentials 的授权类型。令牌不透明。 | Dynatrace |
| 使用 JWT 的 OAuth2 | 使用 M2M 模式以及名为 client credentials 的授权类型。令牌是 JSON Web Token (JWT)。 | Datadog |
| Elliptic Curve Digital Signature Algorithm (ECDSA) | 使用公钥/私钥对验证消息真实性。发送者使用私钥签署消息,并且接收方(EDA Controller)使用公钥对其进行验证。 | SendGrid, Twilio |
| Mutual Transport Layer Security(mTLS) | 确保 Event-Driven Ansible 控制器和客户端通过事件流发送事件之间的双向身份验证。它有两个子类型:
需要供应商的 CA 证书在启动时存在于我们的服务器中。这支持 non-repudiation。 | PagerDuty |
如果您使用带有负载均衡器的 mTLS 事件流,您必须在负载均衡器配置中启用 SSL 透传(或 L4 路由)。
这是必要的,因为 mTLS 的 SSL 终止和客户端证书验证必须在平台网关代理服务器中进行。有关启用 SSL 直通的详情,请参考您的负载均衡器文档。
event-Driven Ansible 控制器还支持四个基于 6 个基本事件流类型的其他特殊事件流:
- GitLab 事件流
- GitHub 事件流
- ServiceNow 事件流
- Dynatrace 事件流
这些专用类型限制了您通过添加默认值的参数。例如,GitHub 事件流是 HMAC 事件流的分类,其中有许多字段已经填充。保存 GitHub 事件流凭证后,会显示此事件流的建议默认值。