要解决“Account A 的 AWS CloudWatch 告警无法发布到 Account B 中的 SNS 主题”的问题,您可以使用 AWS Identity and Access Management(IAM)角色和跨帐户访问策略来授予 CloudWatch 向 SNS 主题发布消息的权限。
以下是如何设置这种跨帐户访问的步骤:
步骤 1:创建 IAM 角色
在 Account B 中,创建一个 IAM 角色,以允许 Account A 的 CloudWatch 向 Account B 的 SNS 主题发布消息。
- 登录 Account B 的 AWS 控制台。
- 转到 IAM 服务。
- 在左侧的导航栏中,选择“角色”。
- 单击“创建角色”按钮。
- 在选择角色类型页面上,选择“受信任的实体”为“AWS 服务”。
- 在选择使用案例页面上,选择“CloudWatch”。
- 单击“下一步:权限”按钮。
- 在权限页面上,搜索并选择“AmazonSNSFullAccess”策略。
- 单击“下一步:标签”按钮,跳过标签设置。
- 在审查页面上,为角色指定一个名称,并为其提供一个描述。
- 单击“创建角色”按钮。
步骤 2:更新 Account A 的 CloudWatch 告警
在 Account A 中,更新 CloudWatch 告警以使用步骤 1 中创建的 IAM 角色来发布消息到 Account B 的 SNS 主题。
- 登录 Account A 的 AWS 控制台。
- 转到 CloudWatch 服务。
- 在左侧的导航栏中,选择“告警”。
- 选择您要更新的告警。
- 单击“编辑”按钮。
- 在“通知”部分,选择“SNS”作为通知类型。
- 输入 Account B 中 SNS 主题的 ARN(Amazon Resource Name)。
- 在“IAM 角色”下拉菜单中,选择步骤 1 中创建的 IAM 角色。
- 单击“保存”按钮。
现在,Account A 的 CloudWatch 告警将能够成功发布消息到 Account B 中的 SNS 主题。