如何將資料從 CloudWatch Logs 串流至不同帳戶中以 VPC 為基礎的 Amazon OpenSearch Service 叢集?

上次更新日期:2021 年 7 月 23 日

我正在嘗試將資料從 Amazon CloudWatch Logs 串流到 Amazon OpenSearch Service 叢集,方法是使用其他帳戶中的虛擬私有雲端 (VPC)。不過,我收到「輸入有效的 Amazon OpenSearch Service 端點」錯誤訊息。如何解決此錯誤?

簡短描述

注意:Amazon OpenSearch Service 是 Amazon Elasticsearch Service (Amazon ES) 的後繼者。

若要將資料從 CloudWatch Logs 串流到其他帳戶中的 OpenSearch Service 叢集,請執行下列步驟:

1.    在帳戶 A 中設定 CloudWatch Logs。

2.    在帳戶 A 中設定 AWS Lambda。

3.    設定帳戶之間的 Amazon Virtual Private Cloud (Amazon VPC) 對等互連。

解決方案

在帳戶 A 中設定 CloudWatch Logs

1.    在帳戶 A 中開啟 CloudWatch Logs 主控台,然後選取您的記錄群組。

2.    選擇 Actions (動作)。

3.    選擇「建立 OpenSearch 訂閱」篩選條件。

4.    對於 Select Account (選取帳戶) 選項,選取 This account (此帳戶)。

5.    針對 OpenSearch Service 叢集下拉式清單,選擇帳戶 A 的現有叢集。

6.    選擇具有對所選取 OpenSearch Service 叢集進行呼叫之許可的 Lambda IAM 執行角色

7.    將 AWSLambdaVPCAccessExecutionRole 政策附加到您的角色。

8.    在 Configure log format and filters (設定記錄格式和篩選條件) 中,選取您的 Log Format (記錄格式) 和 Subscription Filter Pattern (訂閱篩選條件模式)。

9.    選擇 Next (下一步)。

10.    輸入 Subscription filter (訂閱篩選條件) 名稱,然後選擇 Start Streaming (開始串流)。如需有關串流的詳細資訊,請參閱將 CloudWatch Logs 資料串流到 Amazon OpenSearch Service

在帳戶 A 中設定 Lambda

1.    在帳戶 A 中,開啟 Lambda 主控台

2.    選取您的 Lambda 函數。

3.    在函數程式碼中,更新帳戶 B 中的 OpenSearch Service 叢集的端點變數。此更新可讓 Lambda 函數將資料傳送到帳戶 B 中的 OpenSearch Service 網域。

注意:您可以貼上帳戶 B 的公用 DNS 名稱。請務必從 URL 端點移除「https://」。

4.    選擇 Configuration (組態)。

5.    選擇 VPC

6.    在 VPC 底下,選擇 Edit (編輯)。

7.    選取您的 VPC、子網路和安全群組。

注意:此選項可確保 Lambda 函數在 VPC 內執行,使用 VPC 路由將資料傳送回 OpenSearch Service 網域。如需 Amazon Virtual Private Cloud (Amazon VPC) 組態的詳細資訊,請參閱設定 Lambda 函數以存取 VPC 中的資源

8.    選擇 Save (儲存)。

設定帳戶之間的 VPC 對等互連

1.    在帳戶 A 和帳戶 B 中開啟 Amazon VPC 主控台

注意:請確定您的 VPC 沒有重疊的 CIDR 區塊。

2.    在兩個自訂 VPC (Lambda 和 OpenSearch Service) 之間建立 VPC 對等互連工作階段。此 VPC 對等互連工作階段允許 Lambda 將資料傳送至您的 OpenSearch Service 網域。如需 VPC 對等互連的詳細資訊,請參閱建立和接受 VPC 對等互連連線

3.    更新兩個 VPC 的路由表。如需路由表的詳細資訊,請參閱更新 VPC 對等互連連線的路由表

4.    在帳戶 A 中,移至 Security Groups (安全群組)。

5.    選取指派給已設定 Lambda 之子網路的安全群組。

6.    新增輸入規則以允許來自 OpenSearch Service 子網路的流量。

7.    在帳戶 B 中,選取指派給已設定 OpenSearch Service 之子網路的安全群組。

8.    新增輸入規則以允許來自 Lambda 子網路的流量。

9.    在帳戶 B 中,開啟 OpenSearch Service 主控台

10.    選擇 Actions (動作)。

11.    選擇 modify access policy (修改存取政策),然後附加下列政策:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
       
    "AWS": "arn:aws:iam::<AWS Account A>:role/<Lambda Execution Role>"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1: ::<AWS
    Account B>:domain/<OpenSearch Domain Name>/*"
    }
  ]
}

這項政策可讓 OpenSearch Service 從 Lambda 函數的執行角色進行呼叫。

12.    檢查 Lambda 主控台中的錯誤計數和成功率指標。此指標會驗證記錄是否成功傳送至 OpenSearch Service。

13.    檢查 OpenSearch Service 中的 Indexing rate (索引速率) 指標,以確認是否已傳送資料。CloudWatch Logs 現在會在您的 Amazon VPC 中的兩個帳戶之間串流。


此文章是否有幫助?


您是否需要帳單或技術支援?