如何將資料從 CloudWatch Logs 串流至不同帳戶中以 VPC 為基礎的 Amazon OpenSearch Service 叢集?
上次更新日期:2022 年 6 月 23 日
我正在嘗試使用另一個帳戶中的虛擬私有雲端 (VPC),將資料從 Amazon CloudWatch Logs 串流到 Amazon OpenSearch Service 叢集。但是,我收到 "Enter a valid Amazon OpenSearch Service Endpoint" (輸入有效的 Amazon OpenSearch Service 端點) 錯誤訊息。如何解決此錯誤?
簡短描述
若要將資料從 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 網域。
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 之子網路的安全群組。
注意 :在此執行個體中,「安全群組」是指子網路 ACL。
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 中的兩個帳戶之間串流。