4.3. 使用 F5 和 Event-Driven Ansible 的示例


GitHub 上提供了使用 F5 和 Event-Driven Ansible 的示例代码。此代码记录了监视器在过滤器中找到匹配项的每个实例,然后将该代码中的源 IP 复制到 CSV 列表中。然后,列表作为 webhook 中的变量发送,以及执行代码的消息。

以下示意图和代码工作流示例描述了此高级别工作流:

+ F5 and Ansible workflow

工作流步骤有:

  1. F5 BIG-IP 将监控日志推送到 Elastic。
  2. Elastic 在使用带有过滤器和条件的监视器时,会获取这些数据并存储它。
  3. Watcher 检测到与条件匹配的事件,并将带有有效负载的 Webhook 发送到 Event-Driven Ansible。
  4. event-Driven Ansible 的 rulebook 触发器从在 Ansible Automation Platform 中触发作业模板,该事件发送 Elastic 提供的有效负载。
  5. Ansible Automation Platform 的模板执行 playbook,以使用 Event-Driven Ansible 提供的有效负载(由 Elastic 提供)来保护 F5 BIG-IP 的安全。

4.3.1. 从日志记录事件驱动响应

Ansible 验证的内容是预先测试、验证和可信 Ansible 角色和 playbook 的集合。此内容旨在更轻松地提供安全、可靠且一致的方式来管理跨部署的基础架构。可以开箱即用地使用经过验证的内容,从而减少创建自定义 Ansible 内容所需的时间和工作。以下用例提供了一个示例,如 Event-Driven Ansible 对日志事件的响应。

4.3.2. 使用案例:AWS CloudTrail

AWS CloudTrail 是一个记录 AWS 帐户中发出的所有 API 调用的服务,包括由其他 AWS 服务进行的 API 调用。默认情况下,CloudTrail 日志以未加密的形式存储在 S3 存储桶中。要验证 CloudTrail 日志是否安全,请使用 AWS KMS 为 CloudTrail 日志启用加密。通过创建一个 KMS 密钥启用 CloudTrail 日志加密,该密钥用于加密存储 CloudTrail 日志的 S3 存储桶。然后,将 CloudTrail 配置为使用此密钥加密日志。

启用加密后,所有 CloudTrail 日志都会在写入 S3 存储桶时自动加密。日志只能通过您指定的 KMS 密钥解密。这会建立日志安全,只能由授权的用户和服务访问。

加密 AWS CloudTrail 日志非常重要,原因如下:

  • 保护敏感信息:CloudTrail 日志包含有关 AWS 帐户的大量信息,包括 API 调用、用户身份和资源信息。加密 CloudTrail 日志有助于防止此敏感信息不受未授权访问或篡改的影响。
  • 合规性要求:许多合规性标准(如 HIPAA 和 PCI DSS)需要日志加密来保护敏感信息。加密 CloudTrail 日志可符合这些标准。
  • 防止篡改:CloudTrail 的日志加密有助于防止日志被篡改。这有助于维护日志的完整性,以及对 AWS 帐户进行的所有 API 调用的准确记录。
  • 安全数据:CloudTrail 日志加密为数据提供额外的安全层。如果您的 S3 存储桶被破坏,在没有加密密钥的情况下无法访问加密的日志。

Event-Driven Ansible 规则手册由以下组件组成,以帮助对日志文件的操作:

  • Source: 定义将使用哪些事件源
  • 规则 :定义将与事件源匹配的条件
  • 操作 :在满足条件时触发事件

在以下示例中,规则手册使用三个规则实施规则集,如下所示:

规则 65: 启用 trail 加密

此规则在禁用 trail 加密时处理问题单。当对 trail 执行 UpdateTrail 操作时,它会触发它,UpdateTrail 请求中包含的参数与这些条件匹配:

event.CloudTrailEvent.requestParameters.kmsKeyId=="" AND event.CloudTrailEvent.requestParameters.name==vars.cloudtrail_name.

缓解此偏移的操作将运行

'playbooks/eda/aws_restore_cloudtrail_encryption.yml playbook' This playbook running the Ansible validated role cloud.aws_ops.enable_cloudtrail_encryption_with_kms,用于重新启用 trail's 加密,将系统恢复到其状态 quo。

rule#2: 重新创建 trail

此规则在删除 trail 时处理这种情况。

当满足以下条件时:

event.CloudTrailEvent.eventName=="DeleteTrail" AND event.CloudTrailEvent.requestParameters.name==vars.cloudtrail_name

该操作正在运行 playbooks/eda/aws_restore_cloudtrail.yml playbook。此 playbook 首先运行 Ansible 验证的内容 cloud.aws_ops.awsconfig_multiregion_cloudtrail 角色,这将重新创建 trail,然后 cloud.aws_ops.enable_cloudtrail_encryption_with_kms 角色在新创建的上启用加密。

rule#3: 取消删除 KMS 密钥并重新启用它

此规则响应正在删除或禁用的 KMS 密钥的情况。这会导致条件

event.CloudTrailEvent.eventName=="ScheduleKeyDeletion" OR event.CloudTrailEvent.eventName=="DisableKey"

当某人试图意外删除 KMS 密钥时,AWS CloudTrail 中会显示 ScheduleKeyDeletion 事件。KMS 密钥不会被立即删除,因为删除 KMS 密钥具有破坏性,并可能存在危险。AWS KMS 需要设置 7-30 天等待时间。这种情况是通过运行 playbook/eda/aws_restore_kms_key.yml playbook 及时处理,这将取消删除 KMS 密钥。同样,当禁用 KMS 密钥时,playbook 会重新激活它来恢复系统的原始状态。playbook 设置 KMS 密钥 ARN,并使用它来确定是否取消 KMS 密钥删除,以重新启用 KMS 密钥或两者。

Ansible 为 cloud.aws_ops 和 Event-Driven Ansible 验证的内容为自动化问题解决和观察云计算环境带来了许多机会,有助于您轻松自动化、缓解安全问题,并最大化云环境的 mastery。有关使用规则手册的更多信息,请参阅 AWS 的 Event-Driven ansible 验证的内容

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat