我正在使用 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不存在或主题策略不正确!
有没有办法只授予服务权限或在创建 trail 或 sns 主题时自动设置此权限?
最佳答案
也许使用 SetTopicAttributes ( http://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html )。 本主题讨论允许 cloudwatch 事件发布到 SNS 主题 - http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/resource-based-policies-cwe.html
关于python - 将服务添加到 SNS 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356367/