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



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

这个答案提到了"Principal": "*"-的使用,但这是非常广泛的。可能使用CCD_ 2;但是,这也不窄。

{
"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. 在AWS SQS CLI中,创建具有"Principal" : {"AWS": "*"}权限的队列的等效项是什么
  1. 唯一重要的用户是符合订阅和SQS访问策略定义的策略的用户
  2. 政策文件中的Condition可以使整个政策具有限制性。请参阅下面的示例
  3. 使用AWS CLI命令添加带有条件的SQS权限

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

{
"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"
}
}
}
]
}

最新更新