python - 将服务添加到 SNS 策略

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

我正在使用 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 主题时自动设置此权限?

最佳答案

关于python - 将服务添加到 SNS 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356367/

相关文章:

amazon-web-services - 当 key 包含阿拉伯字符时,AWS Golang SDK 无法复制对象

python - 如何使用 Python 查找系统类型?

python - 根据匹配值从不同的 Dataframe 更新 Dataframe

python - 如何使用带有 countVectorizer.fit_transform() 的 pickled 分类器来标记数据

amazon-web-services - 在 Flutter 中从 AWS S3 上传和获取媒体文件

node.js - 无服务器部署找不到 serverless-domain-manager

python - 使用 Python Lambda 处理 AWS Step Function 中的意外错误的最佳实践是什么?

python - 基于数组的子集填充列

amazon-web-services - 如何编写单元测试 aws-sdk-go-v2 dynamodb 实现

java - Spark 是否允许对 DynamoDB 使用 Amazon Assumed Role 和 STS 临时凭证?