我们有两个账户111111111111和222222222222。
要求 - 帐户111111111111将每天创建RDS的快照。拍摄快照后,我们希望帐户111111111111发布到帐户222222222222中创建的SNS主题。一旦帐户222222222222收到通知,它就会运行Lambda函数。
我已将以下政策附加到帐户222222222222
中创建的主题 "Sid":"RestoreRDSEng_topic_publish",
"Effect":"Allow",
"Principal":{
"AWS":"111111111111"
},
"Action":"sns:Publish",
"Resource":"arn:aws:sns:us-east-1:222222222222:RestoreRDSEng",
"Condition":{
"StringEquals":{
"AWS:SourceAccount":"222222222222"
},
}
}
我在帐号111111111111尝试发布到222222222222时收到以下错误
*" message":" AuthorizationError:User:arn:aws:sts :: ************ assume-role / tf-rds_eventhandler / tf-rds_eventhandler无权执行:SNS:在资源上发布:arn:aws:sns:us-east-1:xxxxxxxxxxxx:RestoreRDSEng \ n \ tstatus代码:403,请求ID:098f4647-c9ad-51fe-9bc3- 17b45deef60e" *
问题:
这种做法有什么不妥吗?
我是否应该在帐户222222222222中创建一个具有对111111111111的受信任访问权限的角色?
我们将不胜感激。
答案 0 :(得分:0)
Principal
必须是帐户11111中的服务或角色,您需要采取行动将其发布到SNS主题。例如:
"Principal": {
"Service": "cloudtrail.amazonaws.com"
}
答案 1 :(得分:0)
应该是:
{
"Sid": "lambda-access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:root"
},
"Action": [
"SNS:Publish"
],
"Resource": "arn:aws:sns:us-east-1:222222222222:RestoreRDSEng"
}