当前位置: 首页 > 知识库问答 >
问题:

AWS SQS订阅对AWS SNS主题的访问控制

牟子真
2023-03-14

我有一个将消息发布到AWS SNS主题字符串的NodeJS应用程序和一个AWS SQS订阅。在SQS控制台上,我可以看到发布的消息。但是,我不清楚SQS队列的访问策略。

{
  "Version": "2012-10-17",
  "Id": "Policy1607949016538",
  "Statement": [
    {
      "Sid": "Stmt1607949012567",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
      ],
      "Resource": "arn:aws:sqs:ap-south-1:463113000000:orders"
    }
  ]
}

问题

  1. 当将消息传递到SQS队列时,作为订阅的结果,哪个用户是有效的?与发表该主题的人相同?
  2. 只有在使用“principal”:{“aws”:“*”}时,才能使消息流入队列。那么,我应该如何定义一个限制性策略,使消息只能作为订阅的结果写入队列?
  3. 创建具有“principal”:{“AWS”:“*”}权限的队列的AWS SQS CLI中的等效项是什么?

共有1个答案

戴靖
2023-03-14
  1. 唯一重要的用户是符合为订阅和SQS访问策略定义的策略的用户。
  2. 策略文档中的 条件可以使整个策略具有限制性。请参阅下面的示例。
  3. 使用AWS CLI命令添加有条件的SQS权限

限制访问帐户ID的示例策略文档。

json prettyprint-override">{
  "Version": "2012-10-17",
  "Id": "Policy1607960702002",
  "Statement": [
    {
      "Sid": "Stmt1607960701004",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
      ],
      "Resource": "arn:aws:sqs:ap-south-1:463113000000:orders",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "463113000000"
        }
      }
    }
  ]
}
 类似资料:
  • 我目前正在尝试将我的应用程序迁移到firebase,我正在寻找firebase的解析安装和通道。 我发现我们应该使用主题,但在我的应用程序中,“订阅”和“取消订阅”主题很常见,但没有办法(我发现)看到用户订阅了哪些主题。有什么想法吗? 我已经阅读了Firebase文档,但我是Firebase新手,因此可能有更多经验的人会知道:https://firebase.google.com/docs/clo

  • 在我的应用程序中(它正在使用Topic1、Topic2和Topic3),我还不断看到与其他主题相关的警告。 该消息通过以下Kafka代码打印:https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/networkclient.java 这是意料之中的吗?为什么这些警告消息会发

  • 客户对主题的订阅(即订阅者)的寿命是多少? 我之所以这么担心,是因为我认为服务总线的一个特点--持久的信息。因此,我认为在连接不稳定的情况下,可以保证提供持久的消息。 那么,当一个应用程序(多个应用程序中的一个)失去与服务总线的连接一天,然后第二天重新启动应用程序并实例化一个新的订阅客户端实例时,会发生什么呢?当其他应用程序由于自己的订阅已经处理了这些相同的消息时,应用程序是否会继续接收等待传递的

  • https://github.com/azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.azure.servicebus/topicsubscriptionwithruleoperationssample 现在我想添加一个筛选器/规则,这样只有通过筛选器中定义的特定条件的消息才应该给订阅。 例如,下面

  • 我正在试验消息驱动Beans,以便从外部ActiveMQ实例接收主题订阅消息。 我的测试首先从队列订阅开始,它工作得很好。 然后我想尝试主题订阅,但我无法让它工作。 这就是我所拥有的: 会议记录。xml 这是MDB: 我不知道为什么,但从日志中我可以看到,TomEE创建了一个队列,而不是一个主题: 另一个证明是,当我添加持续时间配置时,服务器不会启动: 然后服务器抱怨这不适合配置类型javax.j

  • 3.8 SUBSCRIBE - 订阅主题 客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅。每个订阅注册客户端关心的一个或多个主题。为了将应用消息转发给与那些订阅匹配的主题,服务端发送PUBLISH报文给客户端。SUBSCRIBE报文也(为每个订阅)指定了最大的QoS等级,服务端根据这个发送应用消息给客户端。 3.8.1 固定报头 图例 3.20 – SUBSCRIBE报文固定报头