Amazon web services SNS发布的消息未到达SQS
我有一个加密的SQS队列和SNS主题,由自定义的KMS密钥管理。目前,我正在使用一种类似的SQS策略,该策略在下面的链接中说明,在那里工作良好 但是如果我使用下面的SQS策略,它将不起作用。由于安全原因,我不想将Principal作为“*”。有人能解释一下为什么会这样吗Amazon web services SNS发布的消息未到达SQS,amazon-web-services,amazon-sqs,amazon-sns,aws-serverless,Amazon Web Services,Amazon Sqs,Amazon Sns,Aws Serverless,我有一个加密的SQS队列和SNS主题,由自定义的KMS密钥管理。目前,我正在使用一种类似的SQS策略,该策略在下面的链接中说明,在那里工作良好 但是如果我使用下面的SQS策略,它将不起作用。由于安全原因,我不想将Principal作为“*”。有人能解释一下为什么会这样吗 { "Version":"2012-10-17", "Statement":[ { "Sid":"My
{
"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 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"
}
}
}
]
}
这项政策不适用于SNS。SNS不是主要的AWS,而是服务。你链接中的策略是正确的,那么为什么不使用它呢?但是我允许所有资源都是我帐户的一部分,对吗?SNS不是你帐户的一部分。它的AWS服务,没问题。很高兴它成功了:-)