问题描述
我有一个通过自定义托管 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 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"
}
}
}
]
}