Amazon web services 亚马逊SNS限制订阅的策略不起作用
我正在帐户A中创建一个SNS主题,策略如下:Amazon web services 亚马逊SNS限制订阅的策略不起作用,amazon-web-services,cloud,amazon-iam,amazon-sqs,amazon-sns,Amazon Web Services,Cloud,Amazon Iam,Amazon Sqs,Amazon Sns,我正在帐户A中创建一个SNS主题,策略如下: { "Sid": "Give Access to Different Account Queues to subscribe to my topic", "Effect": "Allow", "Principal":{ "AWS": "AccountId of Account B" }, "Action": "sns:Subscribe", "Resource": "Arn o
{
"Sid": "Give Access to Different Account Queues to subscribe to my topic",
"Effect": "Allow",
"Principal":{
"AWS": "AccountId of Account B"
},
"Action": "sns:Subscribe",
"Resource": "Arn of my SNS topic present in Account A",
"Condition": {
"StringEquals": {
"sns:Protocol": "sqs"
},
"ForAllValues:StringEquals": {
"sns:Endpoint": [
"Arn of Queue A present in Account B", "Arn Queue B present in Account B"
]
}
}
}
在帐户A中创建了上述主题和策略后,我通过控制台登录帐户B,并尝试将队列C订阅到我的SNS主题,然后订阅成功,队列收到确认订阅的消息!但理想情况下,在执行上述策略后,只有队列A和队列B才能订阅我的SNS主题。您的策略对我来说非常有效,但我必须将
主体更改为referencearn:aws:iam::ACCOUNT-B:root
。(我不记得是从哪里得到的,但它是在某个阶段出现的。)
我可以从queue1
和queue2
订阅,但不是queue3
您的策略对我来说非常有效,但我不得不将主体
更改为referencearn:aws:iam::ACCOUNT-B:root
。(我不记得是从哪里得到的,但它是在某个阶段出现的。)
我可以从queue1
和queue2
订阅,但不能从queue3
订阅,我想知道这是否是因为请求订阅的用户有其他与其IAM用户关联的sns:
策略?您可以使用没有sns:
权限的IAM用户重试。订阅是如何被请求的?@JohnRotenstein我正在云计算中使用subscriptionFilter资源订阅我的SNS。此外,帐户是根帐户如果SNS主题在帐户A中,您是说帐户A中的任何队列都可以订阅,还是其他帐户(帐户B)中的任何队列都可以订阅?如果主题在帐户A中,而我们在帐户B中有两个队列!然后只有这两个队列可以订阅我的主题A。但在你的问题中,你说“任何队列都可以从该帐户订阅我的SNS主题”。我在问那是哪个帐户?有SNS的用户,还是“其他”帐户?我想知道这是否是因为请求订阅的用户具有与其IAM用户关联的其他SNS:
策略?您可以使用没有sns:
权限的IAM用户重试。订阅是如何被请求的?@JohnRotenstein我正在云计算中使用subscriptionFilter资源订阅我的SNS。此外,帐户是根帐户如果SNS主题在帐户A中,您是说帐户A中的任何队列都可以订阅,还是其他帐户(帐户B)中的任何队列都可以订阅?如果主题在帐户A中,而我们在帐户B中有两个队列!然后只有这两个队列可以订阅我的主题A。但在你的问题中,你说“任何队列都可以从该帐户订阅我的SNS主题”。我在问那是哪个帐户?有SNS的帐户,还是“其他”帐户?是的,当我们将accountId分配给委托人时,它会自动更改为根帐户arn!此外,我认为在我的情况下,帐户B有一些其他权限。我们可以拒绝帐户A中的每个sqs订阅吗?它在使用StringNotEquals明确拒绝其他sqs arn之后起作用!谢谢是的,当我们将accountId分配给委托人时,它会自动更改为根帐户arn!此外,我认为在我的情况下,帐户B有一些其他权限。我们可以拒绝帐户A中的每个sqs订阅吗?它在使用StringNotEquals明确拒绝其他sqs arn之后起作用!谢谢你
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT-B:root"
},
"Action": "sns:Subscribe",
"Resource": "arn:aws:sns:ap-southeast-2:ACCOUNT-A:topic",
"Condition": {
"StringEquals": {
"sns:Protocol": "sqs"
},
"ForAllValues:StringEquals": {
"sns:Endpoint": [
"arn:aws:sqs:ap-southeast-2:ACCOUNT-B:queue1",
"arn:aws:sqs:ap-southeast-2:ACCOUNT-B:queue2"
]
}
}
}
]
}