Lab 5 - Create a CloudWatch Alarm Based on Windows Event logs


title: 实验 5 - 基于 Windows 事件日志创建 CloudWatch 警报 weight: 5


摘要

实验 2:Windows 事件日志转发 的基础上,AWS Directory Service for Microsoft Active Directory 可以将我们的 AWS Managed Microsoft AD 域控制器上的安全 Windows 事件日志转发到我们选择的 Amazon Web Services (AWS) 帐户中的 Amazon CloudWatch Logs。在本实验中,我们将进一步创建一个基于转发事件日志 ID 的 CloudWatch 指标。我们将创建一个 CloudWatch 警报,当该 CloudWatch 指标超过我们指定的阈值时触发。

完成本实验的说明后,我们将:

  1. 创建一个基于 Windows 帐户锁定事件 ID 的指标过滤器。

  2. 为该指标创建一个警报,并使该警报触发。

必须为我们的 AWS Managed Microsoft AD 目录启用事件日志转发。如果需要启用事件日志转发,请参见此处

<strong>实验 2:Windows 事件日志转发</strong> 结束时,如果我们已禁用日志转发。在开始本实验之前,请按照此处 的步骤重新启用它。

确保我们已完成<strong>实验 3:细粒度密码策略</strong> 。确保该实验中的密码策略配置完全按照指定的方式。

如果这是由培训员主导的沉浸式日的一部分,请向我们的培训员询问我们将在哪个区域工作。

创建指标过滤器(PowerShell 方式)

  1. 登录 AWS Management Console,打开 AWS Systems Manager Fleet Manager - Remote Desktop 控制台

  2. 选择添加新会话,选择名为MAD-MGMT01的节点,然后选择添加

  3. 选择用户凭证,输入以下内容,然后选择连接

       a. 用户名: corp\Admin

       b. 密码: 在 MadAdminSecret 密钥中。

我们可以在此处 获取密码密钥检索说明。

  1. 右键单击开始并选择Windows PowerShell (管理员)。在提升的 Windows PowerShell 窗口中运行:

在下面的 PowerShell 代码中,将 us-west-2 更改为我们的培训员指定的区域

PowerShell 代码期望我们的帐户中有多个 AWS Managed Microsoft AD。如果只有一个,请删除第二个 PowerShell 命令中输入的 [0]

# 获取 AWS Managed AD 目录 ID
$DirectoryID = Get-DSDirectory -Region 'us-west-2' | Select-Object -ExpandProperty 'DirectoryId'

# 从 CloudWatch 检索日志
If ($DirectoryID.Count -gt 1) {
    $CwlStreams = Get-CWLLogStream -LogGroupIdentifier "/aws/directoryservice/$($DirectoryID[0])-corp.example.com" -region us-west-2 | Select-Object -ExpandProperty 'LogStreamName' | Where-Object { $_ -like '*-SecurityEvents' }
    Foreach ($CwlStream in $CwlStreams) {
        Get-CWLLogEvents -LogGroupName "/aws/directoryservice/$($DirectoryID[0])-corp.example.com" -LogStreamName $CwlStream -Region 'us-west-2' -Limit 5 | Select-Object -ExpandProperty 'Events'
    }
} Else {
    $CwlStreams = Get-CWLLogStream -LogGroupIdentifier "/aws/directoryservice/$($DirectoryID)-corp.example.com" -region us-west-2 | Select-Object -ExpandProperty 'LogStreamName' | Where-Object { $_ -like '*-SecurityEvents' }
    Foreach ($CwlStream in $CwlStreams) {
        Get-CWLLogEvents -LogGroupName "/aws/directoryservice/$($DirectoryID)-corp.example.com" -LogStreamName $CwlStream -Region 'us-west-2' -Limit 5 | Select-Object -ExpandProperty 'Events'
    }
}

创建指标过滤器

如果我们刚刚为我们的目录启用了事件日志转发,则可能需要 5 - 10 分钟才能在我们的帐户中填充日志。

  1. AWS CloudWatch Logs 控制台 导航窗格中,选择日志组

  2. 我们应该会看到一个与<strong>启用日志转发实验</strong> 中指定的名称相同的日志组,选择它。

  3. 选择指标过滤器选项卡。

  4. 指标过滤器选项卡中,选择创建指标过滤器

  1. 定义模式页面中,输入 4740 作为过滤器模式,然后选择下一步

  1. 分配指标页面,设置:

       a. 过滤器名称: AccountLockouts

       b. 指标命名空间: ActiveDirectory

       c. 指标名称: AccountLockouts-directoryid

       d. 指标值: 1

       e. 默认值 - 可选: 0

       f. 单位 - 可选:

       g. 选择下一步

  1. 审查和创建页面,查看设置,然后选择创建指标过滤器

基于指标创建警报

  1. AWS CloudWatch Logs 控制台 导航窗格中,选择所有警报

  2. 选择创建警报

  1. 指定指标和条件页面,选择选择指标

  1. 选择指标窗口中,选择 ActiveDirectory 自定义命名空间,选择无维度的指标,选择 AccountLockouts-directoryid,然后选择选择指标

  1. 指定指标和条件页面,设置:

       a. 统计: Sum

       b. 周期: 5 分钟

       c. 阈值类型: 静态

       d. 每当 Account-Lockouts-directoryid 是…              1. 大于。              2. 2。              3. 其他配置                    a. 触发警报所需的数据点: 1 个,共 1 个。

                   b. 缺失数据处理: 将缺失数据视为违反阈值        e. 选择下一步

  1. 配置操作页面,设置:        a. 警报状态触发器: 处于警报状态

       b. 选择一个 SNS 主题: 创建新主题

       c. 创建新主题…: AccountLockouts-directoryid

       d. 将收到通知的电子邮件端点…: 我们可以访问的有效电子邮件地址,选择创建主题

       e. 选择下一步

  1. 添加名称和描述页面,设置:

       a. 警报名称: AccountLockouts-directoryid

       b. 下一步

  1. 预览和创建页面,查看我们的选择,然后选择创建警报

生成锁定事件

在下一部分中,我们将锁定在实验 3:细粒度密码策略 中创建的 FGPP-Test-User

  1. 打开 AWS Systems Manager Fleet Manager - Remote Desktop 控制台

  2. 选择添加新会话,选择名为MAD-MGMT01的节点,然后选择添加

  3. 选择用户凭证,输入以下内容,然后选择连接

       a. 用户名: corp\Admin

       b. 密码: 在 MadAdminSecret 密钥中。

我们可以在此处 获取密码密钥检索说明。

  1. 右键单击开始并选择Windows PowerShell (管理员)。在提升的 Windows PowerShell 窗口中运行:

如果我们选择了与实验 3:细粒度密码策略 实验中指定的不同