

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

# 減少攻擊面
<a name="attack-surface-reduction"></a>

 建構 AWS 解決方案時，另一個重要的考量因素是限制攻擊者針對您應用程式的機會。這個概念被稱為攻擊*面減少*。未暴露在網際網路的資源更難受到攻擊，這會限制攻擊者針對應用程式可用性的選項。

 例如，如果您不希望使用者直接與特定資源互動，請確定這些資源無法從網際網路存取。同樣地，請勿接受來自使用者或外部應用程式上的通訊埠或通訊協定的流量。

 在下一節中， AWS 提供最佳做法，以指導您減少攻擊面並限制應用程式的網際網路曝光率。

# 混淆 AWS 資源 (、、) BP1 BP4 BP5
<a name="obfuscating-aws-resources-bp1-bp4-bp5"></a>

 通常，用戶可以快速輕鬆地使用應用程序，而不需要將 AWS 資源完全暴露在 Internet 上。

# 安全群組和網路 ACLs (BP5)
<a name="security-groups-and-network-acls-bp5"></a>

 Amazon Virtual Private Cloud (AmazonVPC) 可讓您佈建邏輯隔離的區段，您可以在 AWS 雲端 其中啟動您定義的虛擬網路中的 AWS 資源。

 安全性群組和網路ACLs類似，因為它們可讓您控制VPC. AWS 但是安全群組可讓您在執行個體層級控制輸入和輸出流量，而網路則在子網VPC路層級ACLs提供類似的功能。使用安全性群組或網路無須額外付費ACLs。

 您可以選擇是否要在啟動執行個體時指定安全群組，或是在稍後將執行個體與安全群組建立關聯。除非您建立允許流量的*允*許規則，否則所有連至安全性群組的網際網路流量都會隱含拒絕。

 例如，當您在 Elastic Load Balancer 後方有 Amazon EC2 執行個體時，執行個體本身不需要公開存取，而且應該IPs只有私有執行個體。相反地，您可以使用允許存取 0.0.0.0/0 (以避免連線追蹤問題 — 請參閱下方附註) 與目標群組子網路上的網路存取控制清單 () 搭配目標群組子網路上的網路存取控制清單 (NACL)，提供 Elastic Load Balancer 連接埠的 Elastic Load Balancing 器存取權限，以便僅允許彈性負載平衡 IP 範圍與執行個體通訊。如此可確保網際網路流量無法直接與 Amazon EC2 執行個體通訊，進而使攻擊者更難瞭解並影響您的應用程式。

 建立網路時ACLs，您可以同時指定允許和拒絕規則。如果您想要明確拒絕特定類型的應用程式流量，這會很有用。例如，您可以定義拒絕存取整個子網路的 IP 位址 (做為CIDR範圍)、通訊協定和目的地連接埠。如果您的應用程式僅用於TCP流量，您可以建立規則來拒絕所有UDP流量，反之亦然。此選項在回應攻DDoS擊時非常有用，因為它可讓您建立自己的規則，以在知道來源IPs或其他簽章時緩解攻擊。

 如果您已訂閱 AWS Shield Advanced，則可以將彈性 IP 位址註冊為受保護的資源。DDoS針對已註冊為受保護資源的彈性 IP 位址的攻擊會更快速地偵測到，進而縮短緩解的時間。偵測到攻擊時，DDoS緩和系統會讀取與目標 Elastic IP 位址對應的網路，並在網路邊界 (而非子 AWS 網路層級) 強制執行ACL該網路。如此可大幅降低您受到許多基礎架構層DDoS攻擊的影響風險。

 如需有關設定安全群組和網路ACLs以最佳化DDoS恢復能力的詳細資訊，請參閱[如何透過減少攻擊面協助準備攻擊](https://aws.amazon.com/blogs/security/how-to-help-prepare-for-ddos-attacks-by-reducing-your-attack-surface/)。DDoS

 如需使用 Shield 進階搭配彈性 IP 位址做為受保護資源的詳細資訊，請參閱[訂閱](https://docs.aws.amazon.com/waf/latest/developerguide/enable-ddos-prem.html)步驟 AWS Shield Advanced。

# 保護您的來源 (BP1,BP5)
<a name="protecting-your-origin-bp1-bp5"></a>

 如果您使用的 Amazon 來源位於您的原產地VPC，您可能需要確保只 CloudFront 有您的 CloudFront 分發才能將請求轉發到您的來源。使用邊對來源請求標頭，您可以在將請求 CloudFront 轉發到來源時，新增或覆寫現有請求標頭的值。您可以使用 *Origin 自訂標頭* (例如標`X-Shared-Secret`頭) 來協助驗證對您來源所發出的要求是從中傳送的 CloudFront。

 如需有關使用 Origin *自訂標頭保護來源*的詳細資訊，請參閱[將自訂標頭新增](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html)[至原始要求](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html)和[限制應用程式負載平衡器的存取權](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/restrict-access-to-load-balancer.html)。

 如需實作範例解決方案以自動輪替原始存取限制的 *Origin 自訂標頭*值的指南，請參閱[如何使用 AWS WAF 和 Secrets Manager 來增強 Amazon CloudFront 來源安全性](https://aws.amazon.com/blogs/security/how-to-enhance-amazon-cloudfront-origin-security-with-aws-waf-and-aws-secrets-manager/)。

 或者，您可以使用[AWS Lambda](https://aws.amazon.com/lambda/)功能自動更新安全群組規則，以僅允許 CloudFront 流量。這可協助確保惡意使用者無法略過，以及存取您的 Web 應用程式 AWS WAF 時 CloudFront ，藉此改善來源的安全性。

 如需如何透過自動更新安全群組和`X-Shared-Secret`標頭來保護原始伺服器的詳細資訊，請參閱[如何自動更新 Amazon 的安全群組 CloudFront 和使 AWS WAF 用 AWS Lambda](https://aws.amazon.com/blogs/security/how-to-automatically-update-your-security-groups-for-amazon-cloudfront-and-aws-waf-by-using-aws-lambda/)。

 不過，該解決方案涉及額外的組態和執行 Lambda 函數的成本。為了簡化此操作，我們現在引入了一個 [AWS-managed 前綴列表，用 CloudFront於](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html#managed-prefix-list)僅限從 CloudFront面向起點的 IP 地址將入站HTTP/HTTPS流量限制到您的來源。 AWS-managed 前綴列表由創建和維護， AWS 並且可以使用，無需額外費用。您可以參考 (AmazonVPC) 安全群組規則、子網路路由表、一般安全群組規則，以及任何其他可使用受 AWS 管前置詞清單的[受管前置詞清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)。 CloudFront AWS Firewall Manager

 如需有關在 Amazon 使用 AWS-managed 前置詞清單的詳細資訊 CloudFront，請參閱[使用 Amazon 的 AWS-managed 前置詞清單限制對來源的存](https://aws.amazon.com/blogs/networking-and-content-delivery/limit-access-to-your-origins-using-the-aws-managed-prefix-list-for-amazon-cloudfront/)取。 CloudFront

**注意**  
 如本文件其他章節所討論的，依賴安全群組來保護您的來源，可以在要求氾濫期間，將[安全性群組連線追蹤](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)新增為潛在的瓶頸。除非您能夠 CloudFront 使用啟用快取的快取政策來篩選惡意要求，否則最好依賴先前討論過的 *Origin 自訂標頭*，以協助驗證對您來源所發出的要求是從中傳送的 CloudFront，而不是使用安全性群組。將自訂要求標頭與 Application Load Balancer 接聽程式規則搭配使用，可防止因追蹤限制而影響到負載平衡器建立新連線而導致的限制進行調整，進而允許「Application Load Balancer」根據發生攻擊時的流量增加進行調整。DDoS

# 保護API端點 (BP4)
<a name="protecting-api-endpoints-bp4"></a>

當您必須向公眾暴露時，存在API前端可能受API到DDoS攻擊目標的風險。為了協助降低風險，您可以使用 [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 做為在 Amazon EC2 或其他地方執行之應用程式的入口通 AWS Lambda道。透過使用 Amazon API Gateway，您不需要自己的API前端伺服器，而且可以混淆應用程式的其他元件。藉由使偵測應用程式元件變得更加困難，您可以協助防止這些 AWS 資源受到DDoS攻擊的目標。

 使用 Amazon API 閘道時，您可以從兩種API端點類型中進行選擇。第一個是預設選項：透過 Amazon CloudFront 分發存取的邊緣最佳化API端點。但是，該分發由 API Gateway 創建和管理，因此您無法控制它。第二個選項是使用從部署的相同API端點存取 AWS 區域 的區域端點。REST API AWS 建議您使用第二種類型的端點，並將其與您自己的 Amazon CloudFront 分發產生關聯。這使您可以控制 Amazon CloudFront 分發以及用 AWS WAF 於應用程序層保護的能力。此模式可讓您存取整個 AWS 全球邊緣網路的擴充DDoS緩和容量。

 使用 Amazon CloudFront 和 AWS WAF Amazon API 閘道時，請設定下列選項：
+  為您的分發配置緩存行為，以將所有標頭轉發到 API Gateway 地區端點。通過這樣做， CloudFront 會將內容視為動態內容並跳過緩存內容。
+  透過在 API Gateway 中設定[API金鑰](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-setup-api-key-with-console.html)值，將散發設定為包含來源自訂標頭 x-api-key，以保護API閘道不受直接存取的影響。
+  透過為您的 RESTAPIs. 中的每個方法設定標準或突發速率限制，以保護後端免受過量流量的影響 

 如需有關APIs使用 Amazon API 閘道建立的詳細資訊，請參閱 [Amazon API 閘道[入門](https://aws.amazon.com/api-gateway/getting-started/)](https://aws.amazon.com/api-gateway/getting-started/)。