我的 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 订阅
- 打开 Amazon SNS 控制台,然后选择订阅。
- 对于您的 Amazon SNS 订阅 ID,请确认状态是否为已确认且主题是否正确。
- 如果状态为等待确认,则按照说明确认订阅。
确认 SNS 主题 IAM 访问策略的权限
- 打开 Amazon SNS 控制台,然后选择主题。
- 在名称中,选择 Amazon SNS 主题的名称。
- 在详细信息中,选择访问策略选项卡。
- 验证 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 托管式密钥,则可以跳过此步骤。
- 打开 AWS KMS 控制台,然后选择客户托管密钥。
- 在密钥 ID 中,选择您用于加密 SNS 消息的客户托管密钥。
- 对于密钥政策,选择切换到策略视图。
- 确保 KMS 密钥政策允许发布类似于以下内容的 events.amazonaws.com 主体权限:
{
"Sid": "AWSEvents",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "*"
}
确认 EventBridge 事件模式 JSON 对象调查发现类型
- 打开 EventBridge 控制台,然后选择规则。
- 在名称中,选择您的规则。
- 在事件模式中,验证 JSON 对象调查发现类型是否与类似于以下内容的特定 AWS 服务相匹配:
{ "source": [
"aws.guardduty"
],
"detail-type": [
"GuardDuty Finding"
]
}
有关更多信息,请参阅 Creating custom responses to GuardDuty findings with Amazon CloudWatch Events。
确认 EventBridge 的导出频率
- 打开 GuardDuty 控制台,然后选择设置。
- 在结果导出选项中,选择编辑。
- 在编辑发布更新调查发现的频率中,检查频率设置。默认情况下,调查发现每 6 小时自动发送到 EventBridge。要更改默认设置的 6 小时频率,请选择 1 小时或 15 分钟,然后选择保存更改。
**注意:**GuardDuty 会在 5 分钟内发送有关新调查发现类型的通知。有关更多信息,请参阅 CloudWatch 的事件通知频率 GuardDuty。
相关信息
Finding types
Exporting findings
为什么我的 Amazon SNS 主题无法收到 EventBridge 通知?