如何让我的 Amazon SNS 主题接收 Amazon RDS 通知?

2 分钟阅读
0

我希望我的 Amazon Simple Notification Service (Amazon SNS) 主题接收 Amazon Relational Database Service (Amazon RDS) 通知。

解决方法

检查您的 SNS 主题是否已加密

1.    打开 Amazon SNS 控制台

2.    在导航面板上,选择主题,然后选择要接收 RDS 通知的主题。

3.    选择加密选项卡。

如果您在加密部分中看到已配置,则表示您的主题已加密。您还可以看到您的 **AWS KMS 密钥(KMS 密钥)**和 KMS ARN

如果您的主题已加密,请向 Amazon RDS 授予访问 AWS KMS 密钥所需的权限。有关详细信息,请参阅启用 AWS 服务的事件源与加密主题之间的兼容性

注意: 要使加密主题接收 Amazon RDS 通知,您必须使用 AWS KMS 密钥加密 SNS 主题。您必须修改 AWS KMS 密钥策略才能添加操作权限:kms:GenerateDataKey*kms:Decrypt

如果您的主题未加密,请继续阅读本文的“验证您的 SNS 主题的访问策略”部分。

验证您的 SNS 主题的访问策略

您的 SNS 访问策略必须具有允许 Amazon RDS 向您的 SNS 主题发布事件的权限。

1.    打开 Amazon SNS 控制台

2.    在导航面板上,选择主题,然后选择要接收 RDS 通知的主题。

3.    选择访问策略选项卡。

如果您的 SNS 访问策略不允许 Amazon RDS 向您的 SNS 主题发布事件,请完成以下步骤以更新您的策略:

1.    在主题页面的详细信息部分中,选择编辑

2.    展开访问策略部分,然后将之前的策略复制并粘贴到 JSON 编辑器中。

3.    选择保存更改

{
  "Version": "2012-10-17",
  "Id": "SNSAccessPolicy",
  "Statement": [
    {
      "Sid": "PolicyForRDSToSNS",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SNS:Publish",
      "Resource": "your-SNS-topic-ARN",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:your-AWS-region:your-AWS-account-ID:*"
        }
      }
    }
  ]
}

**注意:**使用您的值更新策略中的占位符值。

验证 RDS 事件通知的类别是否正确,该类别应该是为您期望的事件类型选择的类别

为您想要的通知选择正确的类别。例如,如果您想接收实例重启和关闭的通知,请选择可用性类别和实例作为事件源。可用性类别涵盖以下事件:

  • “RDS-EVENT-0006: 数据库实例已重启”
  • “RDS-EVENT-0004: 数据库实例关闭”
  • “RDS-EVENT-0022: 重启 MySQL 或 MariaDB 时出现错误”

检查活动订阅的配置:

1.    打开 Amazon RDS 控制台

2.    在导航面板上,选择事件订阅,然后选择您的事件订阅。

3.    在订阅页面的事件订阅详细信息部分,记下以下字段中的值: 源类型事件类别

4.    为适合您的用例的事件类型选择正确的来源和事件类别。

编辑事件订阅的配置:

**注意:**以下步骤假设您希望收到有关所有实例资源和关闭的通知。有关支持的不同类型的事件及其类别的详细信息,请参阅 Amazon RDS 事件类别和事件消息

1.    在 Amazon RDS 控制台的导航面板上,选择事件订阅,然后选择您的事件订阅。

2.    在您的订阅页面上,选择操作编辑

3.    在部分的源类型中,选择实例

4.    对于要包含的实例,选择所有实例

5.    对于要包含的事件类别,选择选择特定事件类别

6.    对于特定事件类别,选择可用性

7.    选择保存

相关信息

使用 AWS KMS 加密发布到 Amazon SNS 的消息

AWS 官方
AWS 官方已更新 1 年前