为什么我的 Amazon GuardDuty 自定义 Amazon Simple Notification Service (Amazon SNS) 通知未送达?
简短描述
我按照说明配置了 Amazon EventBridge 规则,以便在特定 AWS 服务事件类型触发时让 GuardDuty 发送自定义 SNS 通知。但是,SNS 通知未送达。
解决方法
按照下面的说明确认以下设置正确:
- Amazon SNS 订阅确认。
- Amazon SNS 主题的 AWS Identity and Access Management (IAM) 访问策略。
- AWS Key Management Service (AWS KMS) 权限。
- EventBridge 事件模式 JSON 对象结果类型。
确认 Amazon SNS 订阅
- 打开 Amazon SNS 控制台,然后选择Subscriptions(订阅)。
- 对于您的 Amazon SNS 订阅 ID,请验证状态为已确认。
- 如果状态为 Pending confirmation(等待确认),请按照确认订阅的说明操作。
确认 SNS 主题访问策略的权限
- 打开 Amazon SNS 控制台,然后选择 Topics(主题)。
- 在 Name(名称)中,选择您的 Amazon SNS 主题。
- 在 Details(详细信息)中,选择 Access policy(访问策略)选项卡。
- 验证 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 Key Management Service (AWS KMS) 权限
- 打开 AWS KMS 控制台,然后选择 Customer managed keys(客户托管密钥)。
- 在 Key ID(密钥 ID)中,选择您的 AWS KMS 密钥。
- 在 Key policy(密钥策略)中,选择 Switch to policy view(切换到策略视图)。
- 验证 KMS 密钥策略允许发布与以下内容类似的 events.amazonaws.com 委托人的权限:
{
"Sid": "AWSEvents",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "*"
}
确认 EventBridge 事件模式 JSON 对象结果类型
- 打开 EventBridge 控制台,然后选择 Rules(规则)。
- 在 Name(名称)中,选择您的规则。
- 在 Event pattern(事件模式)中,验证 JSON 对象结果类型与类似以下内容的特定 AWS 服务匹配:
{
"source": [
"aws.guardduty"
],
"detail-type": [
"GuardDuty Finding"
]
}
相关信息
通过 Amazon Elasticsearch Service (Amazon ES) 实时监控您的 GuardDuty 安全
GuardDuty 结果类型