如何讓我的 Amazon SNS 主題接收 Amazon RDS 通知?

2 分的閱讀內容
0

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

解決方法

檢查您的 SNS 主題是否已加密

1.    開啟 Amazon SNS 主控台

2.    在導覽面板上,選擇 Topics (主題),然後選擇您想要接收 RDS 通知的主題。

3.    選擇 Encryption (加密) 索引標籤。

如果您在 Encryption (加密) 區段中看到 Configured (已設定),表示您的主題已經加密。您也會看到自己的 ** AWS KMS key (KMS 金鑰) ** 和 ** KMS ARN**。

如果您的主題已加密,請授予 Amazon RDS 存取 AWS KMS key 所需的權限。如需詳細資訊,請參閱啟用 AWS 服務事件來源和加密主題之間的相容性

注意: 若要讓加密主題接收 Amazon RDS 通知,您必須使用 AWS KMS key 來加密 SNS 主題。您必須修改 AWS KMS 金鑰政策以新增作業的權限:kms:GenerateDataKey*kms:Decrypt

如果您的主題未加密,請繼續閱讀本文的「驗證 SNS 存取政策」主題一節。

驗證 SNS 主題的存取政策

您的 SNS 存取政策必須具有權限,才能使 Amazon RDS 將事件發佈至您的 SNS 主題。

1.    開啟 Amazon SNS 主控台

2.    在導覽面板上,選擇 Topics (主題),然後選擇您想要接收 RDS 通知的主題。

3.    選擇 Access policy (存取政策) 索引標籤。

如果您的 SNS 存取政策不允許 Amazon RDS 將事件發佈至 SNS 主題,請完成下列步驟以更新政策:

1.    在主題頁面的 Details (詳細資訊) 區段中,選擇 Edit (編輯)。

2.    展開 Access policy (存取政策) 區段,然後將上述政策複製並貼上至 JSON 編輯器。

3.    選擇 Save changes (儲存變更)。

{
  "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.    在導覽面板上,選擇 Event subscriptions (事件訂閱),然後選擇您的事件訂閱。

3.    在訂閱頁面的 Event subscription details (事件訂閱詳細資訊) 區段中,記下下列欄位中的值: Source type (來源類型)、Sources (來源) 及 Event categories (事件類別)。

4.    針對適合您使用案例的事件類型,選擇正確的來源和事件類別。

編輯事件訂閱的組態:

**注意:**下列步驟假設狀況為您想要收到所有執行個體資源和關閉的通知。如需不同類型的支援事件及其類別的詳細資訊,請參閱 Amazon RDS 事件類別和事件訊息

1.    在 Amazon RDS 主控台的導覽面板上,選擇 Event subscriptions (事件訂閱),然後選擇您的事件訂閱。

2.    在您的訂閱頁面上,選擇 Actions (動作) > Edit (編輯)。

3.    在 Source (來源) 區段中,針對 Source Type (來源類型),選取 Instances (執行個體)。

4.    針對要包含的執行個體,選取 All instances (所有執行個體)。

5.    針對要包含的事件類別,選取 Select specific event categories (選取特定事件類別)。

6.    針對特定事件類別,選取 availability(可用性)。

7.    選擇 Save (儲存)。

相關資訊

使用 AWS KMS 加密發佈至 Amazon SNS 的訊息

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