aws:SourceAccount 和 aws:SourceOwner AWS SNS 访问策略语句有什么区别

907*_*7th 7 amazon-s3 amazon-web-services amazon-sns amazon-ses aws-access-policy

AWS 文档提供了不同 SNS 访问控制配置的示例。

类似的配置示例还有两个:

一个允许将通知从另一个帐户的 S3 存储桶发布到 SNS 主题:

{
  "Effect": "Allow",
   "Principal": { 
    "Service": "s3.amazonaws.com" 
  },
  "Action": "sns:Publish",
  "Resource": "arn:aws:sns:us-east-2:111122223333:MyTopic",
  "Condition": {
    "StringEquals": {
      "AWS:SourceAccount": "444455556666"
    }       
  }
}
Run Code Online (Sandbox Code Playgroud)

第二允许将来自另一个帐户的 SES 电子邮件的通知发布到 SNS 主题:

{
  "Effect": "Allow",
  "Principal": {
    "Service": "ses.amazonaws.com"
  },
  "Action": "SNS:Publish",
  "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic",
  "Condition": {
    "StringEquals": {
      "aws:SourceOwner": "111122223333"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

区别在于第一个示例使用aws:SourceAccount,第二个示例使用aws:SourceOwner

该文档有一个专门的段落,名为“ aws:SourceAccount 与 aws:SourceOwner ”,但我仍然不清楚这两个语句之间的区别。

aws:SourceAccount您能澄清一下政策声明和政策声明之间的区别吗aws:SourceOwner

tam*_*are 7

仅当资源所有者与资源所属账户不同时才能看到差异。这是一个高级设置。这是官方文档的摘录,给出了此类设置的示例。

...另一个帐户可能拥有您帐户中的资源。例如,信任账户可能允许受信任账户创建新资源,例如在 Amazon S3 存储桶中创建新对象。

来源