SNS SQS - 未收到从 SNS 主题推送到队列的消息

SNS SQS - Not receiving messages that were pushed to queue from SNS topic

我有一个 SNS 主题 TestTopic,我有一个 SQS 队列 newtestqueue-ev,我有一个 java 应用程序可以将消息推送到主题或队列。我有一个从队列中读取的 Java 应用程序。

当我通过 java 应用程序/aws 控制台推送到队列时,我在我的应用程序中收到消息。当我将消息推送到具有 SQS 队列作为订阅者的主题时,我没有收到任何消息。

这是添加到 SQS 队列的权限

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:eu-west-1:<accountnum>:newtestqueue-ev/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "sidNum",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:eu-west-1:<accountNum>:newtestqueue-ev",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:sns:eu-west-1:<accountNum>:TestTopic"
        }
      }
    }
  ]
}

我使用默认密钥 alias/aws/sqs 在队列上启用了加密,并使用默认密钥 alias/aws/sns

在 sns 主题上启用了加密

您不能在 SNS 队列上使用默认的 kms 密钥,您需要创建一个新密钥并将其添加到其中

{
         "Effect": "Allow",
         "Principal": {
                "Service": "sns.amazonaws.com"
             },
         "Action": [
            "kms:GenerateDataKey*",
            "kms:Decrypt"
         ],
         "Resource": "*"
       }