4

我们有两个账户 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::************assumed-role/tf-rds_eventhandler/tf-rds_eventhandler 无权执行:SNS:Publish on资源:arn:aws:sns:us-east-1:xxxxxxxxxxxx:RestoreRDSEng\n\t 状态代码:403,请求 ID:098f4647-c9ad-51fe-9bc3-17b45deef60e"*

问题:

  1. 这种方法有什么问题吗?

  2. 我是否应该在账户 222222222222 中创建一个角色,并具有对 111111111111 的可信访问权限?

  3. 任何其他建议将不胜感激。

4

2 回答 2

0

需要是帐户 11111... 中的Principal服务或角色,您要执行发布到 SNS 主题的操作。例如:

 "Principal": {
     "Service": "cloudtrail.amazonaws.com"
   }
于 2019-10-11T20:33:51.137 回答
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"
    }
于 2020-07-06T20:51:18.650 回答