如何故障排除 GuardDuty 自定义 Amazon SNS 通知未送达的问题?

2 分钟阅读
0

我的 Amazon GuardDuty 自定义 Amazon Simple Notification Service(Amazon SNS)通知没有送达。

简短描述

我按照说明为 GuardDuty 配置了 Amazon EventBridge 规则,以便在特定的 AWS 服务事件类型启动时发送自定义的 SNS 通知。但是,这些 SNS 通知未送达。

解决方法

按照这些说明确认以下设置是否正确:

  • Amazon SNS 订阅确认。
  • Amazon SNS 主题 AWS Identity and Access Management(IAM)访问策略。
  • AWS Key Management Service(AWS KMS)权限。
  • EventBridge 事件模式 JSON 对象调查发现类型。

确认 Amazon SNS 订阅

  1. 打开 Amazon SNS 控制台,然后选择订阅
  2. 对于您的 Amazon SNS 订阅 ID,请确认状态是否为已确认主题是否正确。
  3. 如果状态为等待确认,则按照说明确认订阅

确认 SNS 主题 IAM 访问策略的权限

  1. 打开 Amazon SNS 控制台,然后选择主题
  2. 名称中,选择 Amazon SNS 主题的名称。
  3. 详细信息中,选择访问策略选项卡。
  4. 验证 IAM 政策是否允许发布类似于以下内容的 events.amazonaws.com 主体权限:
{
  "Sid": "AWSEvents",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": "sns:Publish",
  "Resource": "arn:aws:sns:YOUR-REGION:YOUR-ACCOUNT-ID:YOUR-SNS-TOPIC"
}

确认 AWS KMS 权限

**注意:**如果您尚未激活加密或使用了 AWS 托管式密钥,则可以跳过此步骤。

  1. 打开 AWS KMS 控制台,然后选择客户托管密钥
  2. 密钥 ID 中,选择您用于加密 SNS 消息的客户托管密钥
  3. 对于密钥政策,选择切换到策略视图
  4. 确保 KMS 密钥政策允许发布类似于以下内容的 events.amazonaws.com 主体权限:
{
  "Sid": "AWSEvents",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": [
    "kms:GenerateDataKey",
    "kms:Decrypt"
  ],
  "Resource": "*"
}

确认 EventBridge 事件模式 JSON 对象调查发现类型

  1. 打开 EventBridge 控制台,然后选择规则
  2. 名称中,选择您的规则。
  3. 事件模式中,验证 JSON 对象调查发现类型是否与类似于以下内容的特定 AWS 服务相匹配:
{  "source": [
    "aws.guardduty"
  ],
  "detail-type": [
    "GuardDuty Finding"
  ]
}

有关更多信息,请参阅 Creating custom responses to GuardDuty findings with Amazon CloudWatch Events

确认 EventBridge 的导出频率

  1. 打开 GuardDuty 控制台,然后选择设置
  2. 结果导出选项中,选择编辑
  3. 编辑发布更新调查发现的频率中,检查频率设置。默认情况下,调查发现每 6 小时自动发送到 EventBridge。要更改默认设置的 6 小时频率,请选择 1 小时15 分钟,然后选择保存更改

**注意:**GuardDuty 会在 5 分钟内发送有关新调查发现类型的通知。有关更多信息,请参阅 CloudWatch 的事件通知频率 GuardDuty

相关信息

Finding types

Exporting findings

为什么我的 Amazon SNS 主题无法收到 EventBridge 通知?

AWS 官方
AWS 官方已更新 1 年前