我如何排查 GuardDuty 自定义 Amazon SNS 通知未送达的问题?

上次更新时间:2020 年 1 月 29 日

为什么我的 Amazon GuardDuty 自定义 Amazon Simple Notification Service (Amazon SNS) 通知未送达?  

简短描述

解决方法

按照下面的说明确认以下设置正确:

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

确认 Amazon SNS 订阅

  1. 打开 Amazon SNS 控制台,然后选择订阅
  2. 对于您的 Amazon SNS 订阅 ID,请验证状态为已确认
  3. 如果状态为等待确认,请按照确认订阅的说明操作。

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

  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 Key Management Service (AWS KMS) 权限

  1. 打开 AWS KMS 控制台,然后选择客户托管密钥
  2. 密钥 ID 中,选择您的客户托管密钥 (CMK)。
  3. 密钥策略中,选择切换到策略视图
  4. 验证 KMS 策略允许发布与以下内容类似的 events.amazonaws.com 委托人的权限:  
{
    "Sid": "AWSEvents",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "*"
}

确认 CloudWatch 事件模式 JSON 对象查找类型

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

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?