【问题标题】:Add service to SNS policy将服务添加到 SNS 策略
【发布时间】:2017-07-27 16:32:05
【问题描述】:

我正在使用 python boto3 在多个帐户中自动创建 cloudtrail。我的问题是 create_trail 不会自动创建 sns 主题以与跟踪相关联。 create_trail 期望 sns 主题已经存在。

我可以使用 boto 创建 sns 主题,但我似乎无法为该主题设置策略以允许 cloudtrail 发布到该主题。

这是正确策略在控制台中的样子:

{
  "Sid": "AWSCloudTrailSNSPolicy20150319",
  "Effect": "Allow",
  "Principal": {
    "Service": "cloudtrail.amazonaws.com"
  },
  "Action": "SNS:Publish",
  "Resource": "arn:aws:sns:us-east-1:123456678912:us-east-1-trail"
}

似乎没有办法使用 boto 授予服务权限:

client.add_permission(
    TopicArn=arn,
    Label='AWSCloudTrailSNSPolicy20150319',
    AWSAccountId=[
        '12345678912'
    ],
    ActionName=[
        'Publish',
    ]
)

如果我在此处添加帐户,create_trail 调用仍然失败:

调用CreateTrail操作时出错(InsufficientSnsTopicPolicyException):SNS Topic不存在或topic策略不正确!

有没有办法只授予服务权限或在创建跟踪或 sns 主题时自动设置此权限?

【问题讨论】:

    标签: python amazon-web-services aws-sdk boto3


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      当我通过 Terraform 将 Cloud Trail 与 SNS 一起使用时,我收到了完全相同的错误。

      问题是在 Terraform docs 中写到 sns_topic_name 是:

      sns_topic_name -(可选)指定 Amazon SNS 主题的 名称 定义用于通知日志文件传递。

      当我输入 SNS 主题名称时 - 它给了我提到的错误。

      当我改为将其更改为 ARN 时 - 它起作用了。

      【讨论】:

        猜你喜欢
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        • 2019-04-10
        • 1970-01-01
        • 2020-06-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多