Python 将服务添加到SNS策略
我正在使用python boto3在多个帐户中自动创建cloudtrail。我的问题是create_trail不会自动创建与trail关联的sns主题。create_trail希望sns主题已经存在 我可以使用boto创建sns主题,但我似乎无法为该主题设置允许cloudtrail发布到该主题的策略 这是控制台中正确策略的外观:Python 将服务添加到SNS策略,python,amazon-web-services,aws-sdk,boto3,Python,Amazon Web Services,Aws Sdk,Boto3,我正在使用python boto3在多个帐户中自动创建cloudtrail。我的问题是create_trail不会自动创建与trail关联的sns主题。create_trail希望sns主题已经存在 我可以使用boto创建sns主题,但我似乎无法为该主题设置允许cloudtrail发布到该主题的策略 这是控制台中正确策略的外观: { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": {
{
"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主题不存在或主题策略不正确
在创建trail或sns主题时,有没有一种方法可以只授予服务权限或自动设置权限?也许可以使用SetTopicAttributes()。
本主题讨论允许cloudwatch事件发布到SNS主题-当我通过Terraform将Cloud Trail与SNS一起使用时,收到了完全相同的错误 问题在于,在Terraform中,
sns\u主题\u名称
是:
sns_topic_name-(可选)指定亚马逊sns主题的名称
为日志文件传递通知定义
当我输入SNS主题名称时,它给了我提到的错误
当我把它改为ARN时,它起了作用