

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS Firewall Manager 和 Amazon Data Firehose 將 AWS WAF 日誌傳送至 Splunk
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose"></a>

*Michael Friedenthal、Aman Kaur Gandhi 和 JJ Johnson，Amazon Web Services*

## 總結
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose-summary"></a>

從歷史上看，有兩種方式可將資料移至 Splunk：推送或提取架構。*提取架構*透過重試提供交付資料保證，但需要 Splunk 中輪詢資料的專用資源。由於輪詢，提取架構通常不是即時的。中的*推送架構*通常具有較低的延遲、更具可擴展性，並降低操作複雜性和成本。不過，它不保證交付，通常需要客服人員。

Splunk 與 Amazon Data Firehose 整合，可透過 HTTP 事件收集器 (HEC) 將即時串流資料交付至 Splunk。此整合提供推送和提取架構的優點，可保證透過重試交付資料、近乎即時、低延遲和低複雜性。HEC 會透過 HTTP 或 HTTPS 將資料直接快速有效地傳送至 Splunk。HECs以字符為基礎，無需在應用程式或支援檔案中硬式編碼登入資料。

在 AWS Firewall Manager 政策中，您可以為所有帳戶中的所有 AWS WAF Web ACL 流量設定記錄，然後使用 Firehose 交付串流將該記錄資料傳送至 Splunk 以進行監控、視覺化和分析。此解決方案提供下列優點：
+ 所有帳戶中 AWS WAF Web ACL 流量的集中管理和記錄
+ Splunk 與單一 整合 AWS 帳戶
+ 可擴展性
+ 近乎即時的日誌資料交付
+ 透過使用無伺服器解決方案進行成本最佳化，因此您不需要支付未使用的資源。

## 先決條件和限制
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose-prereqs"></a>

**先決條件**
+ 屬於 組織一部分 AWS 帳戶 的作用中 AWS Organizations。
+ 您必須擁有下列許可，才能使用 Firehose 啟用記錄：
  + `iam:CreateServiceLinkedRole`
  + `firehose:ListDeliveryStreams`
  + `wafv2:PutLoggingConfiguration`
+ AWS WAF 必須設定 及其 Web ACLs。如需說明，請參閱 [入門 AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html)。
+ AWS Firewall Manager 必須設定 。如需說明，請參閱[AWS Firewall Manager 先決條件](https://docs.aws.amazon.com/waf/latest/developerguide/fms-prereq.html)。
+  AWS WAF 必須設定 的 Firewall Manager 安全政策。如需說明，請參閱 [AWS Firewall ManagerAWS WAF 政策入門](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-fms.html)。
+ Splunk 必須使用 Firehose 可存取的公有 HTTP 端點進行設定。

**限制**
+  AWS 帳戶 必須在 的單一組織中進行管理 AWS Organizations。
+ Web ACL 必須位於與交付串流相同的區域。如果您要擷取 Amazon CloudFront 的日誌，請在美國東部 （維吉尼亞北部） 區域 建立 Firehose 交付串流。 `us-east-1`
+ Splunk 附加元件 for Firehose 適用於付費 Splunk Cloud 部署、分散式 Splunk Enterprise 部署和單一執行個體 Splunk Enterprise 部署。免費試用 Splunk Cloud 部署不支援此附加元件。

## Architecture
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose-architecture"></a>

**目標技術堆疊**
+ Firewall Manager
+ Firehose
+ Amazon Simple Storage Service (Amazon S3)
+ AWS WAF
+ Splunk

**目標架構**

下圖顯示如何使用 Firewall Manager 集中記錄 AWS WAF 所有資料，並透過 Firehose 將其傳送至 Splunk。

![\[架構圖顯示透過 Amazon Data Firehose 將 AWS WAF 日誌資料傳送至 Splunk\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/3dfeaae0-985a-42b8-91c4-ece081f0b51b/images/669169b1-caa4-419b-9988-19806ded54eb.png)


1.  AWS WAF Web ACLs 會將防火牆日誌資料傳送至 Firewall Manager。

1. Firewall Manager 會將日誌資料傳送至 Firehose。

1. Firehose 交付串流會將日誌資料轉送至 Splunk 和 S3 儲存貯體。S3 儲存貯體會在 Firehose 交付串流發生錯誤時做為備份。

**自動化和擴展**

此解決方案旨在擴展和容納組織內的所有 AWS WAF Web ALCs。您可以設定所有 Web ACLs使用相同的 Firehose 執行個體。不過，如果您想要設定和使用多個 Firehose 執行個體，您可以這麼做。

## 工具
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose-tools"></a>

**AWS 服務**
+ [AWS Firewall Manager](https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html) 是一種安全管理服務，可協助您集中設定和管理帳戶和應用程式中的防火牆規則 AWS Organizations。
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) 可協助您將即時[串流資料](https://aws.amazon.com/streaming-data/)交付至其他 AWS 服務自訂 HTTP 端點，以及受支援的第三方服務供應商所擁有的 HTTP 端點，例如 Splunk。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 是一種雲端型物件儲存服務，可協助您儲存、保護和擷取任何數量的資料。
+ [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html) 是一種 Web 應用程式防火牆，可協助您監控轉送至受保護 Web 應用程式資源的 HTTP 和 HTTPS 請求。

**其他工具**
+ [Splunk](https://docs.splunk.com/Documentation) 可協助您監控、視覺化和分析日誌資料。

## 史詩
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose-epics"></a>

### 設定 Splunk
<a name="configure-splunk"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 安裝 Splunk 應用程式 AWS。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose.html) | 安全管理員、Splunk 管理員 | 
| 安裝 的附加元件 AWS WAF。 | 重複上述指示以安裝適用於 Splunk 的 **AWS Web Application Firewall 附加元件**。 | 安全管理員、Splunk 管理員 | 
| 安裝和設定 Splunk 附加元件 for Firehose。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose.html) | 安全管理員、Splunk 管理員 | 

### 建立 Firehose 交付串流
<a name="create-the-akf-delivery-stream"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 授予 Firehose 存取 Splunk 目的地的權限。 | 設定允許 Firehose 存取 Splunk 目的地並將日誌資料備份到 S3 儲存貯體的存取政策。如需詳細資訊，請參閱[授予 Firehose 存取 Splunk 目的地](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-splunk)。 | 安全管理員 | 
| 建立 Firehose 交付串流。 | 在您管理 Web ACLs的相同帳戶中 AWS WAF，在 Firehose 中建立交付串流。您在建立交付串流時必須擁有 IAM 角色。Firehose 假設 IAM 角色並取得指定 S3 儲存貯體的存取權。如需說明，請參閱[建立交付串流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。注意下列事項：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose.html)針對您在 HTTP 事件收集器中設定的每個字符重複此程序。 | 安全管理員 | 
| 測試交付串流。 | 測試交付串流，以驗證其已正確設定。如需說明，請參閱 Firehose 文件中的[測試使用 Splunk 做為目的地](https://docs.aws.amazon.com/firehose/latest/dev/test-drive-firehose.html#test-drive-destination-splunk)。 | 安全管理員 | 

### 設定 Firewall Manager 記錄資料
<a name="configure-firewall-manager-to-log-data"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 設定 Firewall Manager 政策。 | Firewall Manager 政策必須設定為啟用記錄，並將日誌轉送至正確的 Firehose 交付串流。如需詳細資訊和說明，請參閱[設定 AWS WAF 政策的記錄](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config)。 | 安全管理員 | 

## 相關資源
<a name="send-aws-waf-logs-to-splunk-by-using-aws-firewall-manager-and-amazon-data-firehose-resources"></a>

**AWS resources**
+ [記錄 Web ACL 流量](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html) (AWS WAF 文件）
+ [設定 AWS WAF 政策的記錄 ](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config)(AWS WAF 文件）
+ [教學課程：使用 Amazon Data Firehose 將 VPC 流程日誌傳送至 Splunk ](https://docs.aws.amazon.com/firehose/latest/dev/vpc-splunk-tutorial.html)(Firehose 文件）
+ [如何使用 Amazon Data Firehose 將 VPC 流程日誌推送至 Splunk？](https://aws.amazon.com/premiumsupport/knowledge-center/push-flow-logs-splunk-firehose/) (AWS 知識中心）
+ [使用 Amazon Data Firehose 將資料擷取至 Splunk ](https://aws.amazon.com/blogs/big-data/power-data-ingestion-into-splunk-using-amazon-kinesis-data-firehose/)(AWS 部落格文章）

**Splunk 文件**
+ [適用於 Amazon Data Firehose 的 Splunk 附加元件](https://docs.splunk.com/Documentation/AddOns/released/Firehose/About)