我希望使用CloudWatch监控特定参数(TotalErrorRate和Latency),并希望通过“Simple Notification Service” (SNS)在云监控发生告警时向我发送电子邮件。
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
但是我收到了这个错误信息:
用户未被授权在 AmazonSNS 资源上执行 SNS:CreateTopic 操作(Service: AmazonSNS; Status Code: 403; Error Code: AuthorizationError)
(请参见屏幕截图)
为了解决这个问题,我创建了一个主题策略: 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控制台中,我可以手动创建新主题。这难道不意味着我已经获得了创建主题的权限吗?
AmazonSNSFullAccess
权限,并且可以在 AWS 控制台 UI 中执行所有操作,但是在 AWS CLI 或 SDK/编程方面却无法执行任何操作。你解决了这个问题吗? - miiiiiaws-configuration.json
中提供CredentialsProvider
才能使其工作。https://gist.github.com/xvelx/767c4f44ee3f1e169a0f9769a8e52f2c同样地,我还必须在服务器端进行类似的配置,以便我的API可以发布通知。我不记得我做了什么。我会检查一下是否还有旧项目。 - Suryavel TR403
,而通过CLI使用时则会出现“发生错误(AuthorizationError)”。但是AWS控制台UI仍在工作。其他同事的帐户也发生了同样的情况。AWS管理员在此期间未更改任何权限,而我的帐户具有AmazonSNSFullAccess
权限。我还没有找到根本原因。 :( - miiiiiaws sts get-caller-identity
的输出非常正确地显示了账户ID/用户ID。 - miiiii