【问题标题】:SNS published messages not reaching SQSSNS 发布的消息未到达 SQS
【发布时间】:2021-02-12 09:35:40
【问题描述】:

我有一个通过自定义托管 KMS 密钥加密的 SQS 队列和 SNS 主题。目前,我正在使用以下链接中所述的类似 SQS 策略,它运行良好SQS Policy

但如果我使用下面的 SQS 策略,它就不起作用。出于安全原因,我不想将 Principal 设为“*”。谁能解释一下为什么会这样

    {
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"MySQSPolicy001",
      "Effect":"Allow",
      "Principal":{
    "AWS": "arn:aws:iam::123456789012:root"
  },
      "Action":"sqs:SendMessage",
      "Resource":"arn:aws:sqs:us-east-1:123456789012:MyQueue"
    }
  ]
}

【问题讨论】:

  • 此政策不适用于 SNS。 SNS 不是主体AWS,而是Service。您链接中的政策是正确的,为什么不使用它呢?
  • 但是我已经允许所有资源成为我帐户的一部分,对吗?
  • SNS 不是您帐户的一部分。它的 AWS 服务。
  • 没问题。很高兴它解决了:-)

标签: amazon-web-services amazon-sqs amazon-sns aws-serverless


【解决方案1】:

因此,如果您的队列策略中有 SNS arn 的条件,当多个主题需要发布到同一个队列时,您可能需要一次又一次地添加 ARN。

因此,解决方法将是以下策略。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Queue1_SendMessage",
      "Effect": "Allow",
      "Principal": {
        "Service": "sns.amazonaws.com",
        "AWS": "arn:aws:iam::1234567890:root"
      },
      "Action": [
        "sqs:SendMessage",
        "sqs:ReceiveMessage",
        "sqs:DeleteMessage"
      ],
      "Resource": "arn:aws:sqs:eu-central-1:1234567890:test-queue",
  "Condition": {
    "StringEquals": {
      "aws:SourceAccount": "1234567890"
    }
  }
    }
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2021-10-24
    相关资源
    最近更新 更多