【发布时间】:2022-05-03 05:03:20
【问题描述】:
我想使用 CloudWatch 监控某些参数(TotalErrorRate 和延迟),并且我想要一个“简单通知服务”(SNS)在引发(cloudWatch)警报时向我发送电子邮件:
EscalationTopic:
Type: "AWS::SNS::Topic"
Properties:
DisplayName: My Monitoring
Subscription:
- Endpoint: !Ref EmailForNotification
Protocol: email
EscalationTopicEmailSubscriber:
Type: "AWS::SNS::Subscription"
Properties:
Endpoint: !Ref EmailForNotification
Protocol: email
TopicArn: !Ref EscalationTopic
但我收到此错误:
User is not authorized to perform: SNS:CreateTopic on resource(Service: AmazonSNS; Status Code: 403; Error Code: AuthorizationError(见截图)
我为解决这个问题所做的是创建一个 topicPolicy:
SNSTopicPolicy:
Type: 'AWS::SNS::TopicPolicy'
Properties:
Topics:
- !Ref EscalationTopic
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action: 'sns:CreateTopic'
Resource: !Ref EscalationTopic
Principal:
AWS: '*'
但问题依然存在。
编辑: 在 SNS 控制台中,我可以手动创建一个新主题。不是说我获得了创建Topic的权限吗?
【问题讨论】:
-
您的 IAM 用户似乎没有足够的权限。请帐户管理员授予您创建主题的权限。
-
@klubi 在 SNS 控制台中,我可以手动创建一个新主题。这不应该意味着我获得了创建主题的权限吗?
-
@thadeuszlay 你解决了这个问题吗?我面临同样的问题。我和其他一些人拥有
AmazonSNSFullAccess许可。我可以在控制台中执行所有 SNS 操作,但是当我以编程方式尝试(如发布)时,我收到授权错误。com.amazonaws.services.sns.model.AuthorizationErrorException: User: arn:aws:iam::*:user/* is not authorized to perform: SNS:Publish on resource: arn:aws:sns:**:app/GCM/* with an explicit deny (Service: AmazonSNS; Status Code: 403; Error Code: AuthorizationError; Request ID: *) -
@SuryavelTR 我面临与您完全相同的问题。我有
AmazonSNSFullAccess,我可以从 AWS 控制台 UI 执行所有操作,但不能通过 AWS CLI 或 SDK/编程方式执行任何操作。您的问题找到解决方案了吗? -
@miiiiii 是的。对于 Android,我必须在
aws-configuration.json中提供CredentialsProvider才能使其正常工作。 gist.github.com/xvelx/767c4f44ee3f1e169a0f9769a8e52f2c 同样,我必须在服务器端进行类似的配置,以便我的 API 可以发布通知。我不记得我做了什么。我会检查我是否还有旧项目。
标签: amazon-web-services amazon-cloudformation amazon-sns amazon-cloudwatch