本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Elastic Load Balancing 的 Security Hub 控制項
這些 AWS Security Hub 控制項會評估 Elastic Load Balancing 服務和資源。
這些控制項可能無法在所有 中使用 AWS 區域。如需詳細資訊,請參閱各區域控制項的可用性。
【ELB.1】 Application Load Balancer 應設定為將所有HTTP請求重新導向至 HTTPS
相關要求:PCIDSSv3.2.1/2.3、PCIDSSv3.2.1/4.1、 NIST.800-53.r5 AC-17(2)、 NIST.800-53.r5 IA-5(1) NIST.800-53.r5 AC-4、 NIST.800-53.r5 SC-12(3)、 NIST.800-53.r5 SC-13, NIST.800-53.r5 SC-23, NIST.800-53.r5 SC-23(3)、 NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-8(1) NIST.800-53.r5 SC-8、 NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)
類別:偵測 > 偵測服務
嚴重性:中
資源類型: AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:alb-http-to-https-redirection-check
排程類型:定期
參數:無
此控制項會檢查是否要HTTP在 Application Load Balancer 的所有HTTP接聽程式上設定HTTPS重新導向。如果 Application Load Balancer 的任何HTTP接聽程式不需要設定HTTPS重新導向HTTP,則控制項會失敗。
開始使用 Application Load Balancer 之前,您必須新增一或多個接聽程式。接聽程式是使用已設定通訊協定和連接埠檢查連線請求的一種程序。接聽程式支援 HTTP和 HTTPS通訊協定。您可以使用HTTPS接聽程式將加密和解密的工作卸載至負載平衡器。若要強制執行傳輸中的加密,您應該搭配 Application Load Balancer 使用重新導向動作,將用戶端HTTP請求重新導向至連接埠 443 上的HTTPS請求。
若要進一步了解,請參閱 Application Load Balancer 使用者指南中的 Application Load Balancer 接聽程式。
修補
若要將HTTP請求重新導向至 HTTPS,您必須新增 Application Load Balancer 接聽程式規則或編輯現有規則。
如需新增規則的指示,請參閱 Application Load Balancer 使用者指南中的新增規則。針對通訊協定 :連接埠 ,選擇 HTTP,然後輸入 80
。對於新增動作,重新導向至 ,選擇 HTTPS,然後輸入 443
。
如需編輯現有規則的指示,請參閱 Application Load Balancer 使用者指南中的編輯規則。針對通訊協定 :連接埠 ,選擇 HTTP,然後輸入 80
。對於新增動作,重新導向至 ,選擇 HTTPS,然後輸入 443
。
【ELB.2】 具有 SSL/HTTPS 接聽程式的 Classic Load Balancer 應使用 提供的憑證 AWS Certificate Manager
相關要求: NIST.800-53.r5 AC-17(2) NIST.800-53.r5 AC-4、、 NIST.800-53.r5 IA-5(1)、 NIST.800-53.r5 SC-12(3)、 NIST.800-53.r5 SC-13、 NIST.800-53.r5 SC-23、 NIST.800-53.r5 SC-23(5)、 NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-8(1) NIST.800-53.r5 SC-8、 NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)
類別:保護 > 資料保護 > 加密 data-in-transit
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config 規則:elb-acm-certificate-required
排程類型:已觸發變更
參數:無
此控制項會檢查 Classic Load Balancer 是否使用 HTTPS/SSL ( AWS Certificate Manager ) 提供的憑證ACM。如果使用 HTTPS/SSL 接聽程式設定的 Classic Load Balancer 不使用 提供的憑證,則控制項會失敗ACM。
若要建立憑證,您可以使用 ACM或支援 SSL和 TLS通訊協定的工具,例如 Open SSL。Security Hub 建議您使用 ACM 來建立或匯入負載平衡器的憑證。
ACM 與 Classic Load Balancer 整合,因此您可以在負載平衡器上部署憑證。您也應該自動續約這些憑證。
修補
如需有關如何將 ACM SSL/TLS 憑證與 Classic Load Balancer 建立關聯的詳細資訊,請參閱 AWS Knowledge Center 文章如何將 ACM SSL/TLS 憑證與 Classic、Application 或 Network Load Balancer 建立關聯?
【ELB.3】 Classic Load Balancer 接聽程式應該設定 HTTPS TLS或終止
相關要求: NIST.800-53.r5 AC-17(2) NIST.800-53.r5 AC-4、、 NIST.800-53.r5 IA-5(1)、 NIST.800-53.r5 SC-12(3)、 NIST.800-53.r5 SC-13 NIST.800-53.r5 SC-2、 NIST.800-53.r5 SC-23(3)、 NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-8、(1) NIST.800-53.r5 SC-8、 NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)
類別:保護 > 資料保護 > 加密 data-in-transit
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config 規則:elb-tls-https-listeners-only
排程類型:已觸發變更
參數:無
此控制項會檢查 Classic Load Balancer 接聽程式是否使用 HTTPS或 TLS通訊協定設定前端 (用戶端載入平衡器) 連線。如果 Classic Load Balancer 有接聽程式,則控制項適用。如果您的 Classic Load Balancer 未設定接聽程式,則控制項不會報告任何調查結果。
如果 Classic Load Balancer 接聽程式設定為使用 TLS或 HTTPS 進行前端連線,則控制項會通過。
如果未使用 TLS或 HTTPS 設定前端連線的接聽程式,則控制項會失敗。
開始使用負載平衡器之前,您必須新增一個或多個接聽程式。接聽程式是使用已設定通訊協定和連接埠檢查連線請求的一種程序。接聽程式可以同時支援 HTTP和 HTTPS/TLS 通訊協定。您應該一律使用 HTTPS或 TLS 接聽程式,讓負載平衡器在傳輸中執行加密和解密工作。
修補
若要修正此問題,請更新您的接聽程式以使用 TLS或 HTTPS通訊協定。
將所有不合規接聽程式變更為 TLS/HTTPS 接聽程式
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的 Load Balancing (負載平衡) 下方,選擇 Load Balancers (負載平衡器)。
選取您的 Classic Load Balancer。
-
在 Listeners (接聽程式) 標籤上,選擇 Edit (編輯)。
-
對於未將 Load Balancer Protocol 設定為 HTTPS或 的所有接聽程式SSL,請將設定變更為 HTTPS或 SSL。
-
對於所有修改過的接聽程式,在憑證索引標籤上,選擇變更預設 。
-
針對 ACM和 IAM憑證 ,選取憑證。
-
選擇儲存為預設。
-
更新所有接聽程式後,請選擇儲存 。
【ELB.4】 Application Load Balancer 應設定為捨棄無效的 http 標頭
相關要求: NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-8(2)
類別:保護 > 網路安全性
嚴重性:中
資源類型: AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:alb-http-drop-invalid-header-enabled
排程類型:已觸發變更
參數:無
此控制項會評估 Application Load Balancer 是否設定為捨棄無效的HTTP標頭。如果 的值routing.http.drop_invalid_header_fields.enabled
設為 ,則控制項會失敗false
。
根據預設,Application Load Balancer 不會設定為捨棄無效的HTTP標頭值。移除這些標頭值可防止HTTP非同步攻擊。
注意
如果您的 帳戶中已啟用 ELB.12,建議您停用此控制項。如需詳細資訊,請參閱【ELB.12】 Application Load Balancer 應設定為防禦性或最嚴格的非同步緩解模式。
修補
若要修復此問題,請將負載平衡器設定為捨棄無效的標頭欄位。
若要設定負載平衡器以捨棄無效的標頭欄位
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格上,選擇 Load balancers (負載平衡器)。
-
選擇 Application Load Balancer 。
-
從動作 中,選擇編輯屬性 。
-
在捨棄無效標頭欄位 下,選擇啟用 。
-
選擇 Save (儲存)。
【ELB.5】 應啟用應用程式和 Classic Load Balancer 記錄
相關要求: NIST.800-53.r5 AC-4(26) NIST.800-53.r5 AU-10, NIST.800-53.r5 AU-12, NIST.800-53.r5 AU-2, NIST.800-53.r5 AU-3, NIST.800-53.r5 AU-6(3), NIST.800-53.r5 AU-6(4), NIST.800-53.r5 CA-7、、 NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-7(8)
類別:識別 > 記錄日誌
嚴重性:中
資源類型:AWS::ElasticLoadBalancing::LoadBalancer
、 AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:elb-logging-enabled
排程類型:已觸發變更
參數:無
此控制項會檢查 Application Load Balancer 和 Classic Load Balancerhave 記錄是否已啟用。如果 access_logs.s3.enabled
為 ,則控制項會失敗false
。
Elastic Load Balancing 提供存取日誌,可針對傳送到負載平衡器的請求,擷取其詳細資訊。每個日誌包含收到請求的時間、用戶端的 IP 地址、延遲、請求路徑和伺服器回應等資訊。您可以使用這些存取日誌來分析流量模式和排除問題。
若要進一步了解,請參閱 Classic Load Balancer 使用者指南中的存取 Classic Load Balancer 的日誌。
修補
若要啟用存取日誌,請參閱 Application Load Balancer 使用者指南中的步驟 3:設定存取日誌。
【ELB.6】 應用程式、Gateway 和 Network Load Balancer 應啟用刪除保護
相關要求: NIST.800-53.r5 CA-9(1)、 NIST.800-53.r5 CM-2, NIST.800-53.r5 CM-2(2), NIST.800-53.r5 CM-3, NIST.800-53.r5 SC-5(2)
類別:復原 > 復原能力 > 高可用性
嚴重性:中
資源類型: AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:elb-deletion-protection-enabled
排程類型:已觸發變更
參數:無
此控制項會檢查 Application、Gateway 或 Network Load Balancer 是否已啟用刪除保護。如果停用刪除保護,則控制項會失敗。
啟用刪除保護,以保護 Application、Gateway 或 Network Load Balancer 免於刪除。
修補
為避免您的負載平衡器上遭意外刪除,您可以啟用刪除保護。您的負載平衡器的刪除保護預設為停用。
如果您為負載平衡器啟用刪除保護,您必須先停用刪除保護,才能刪除負載平衡器。
若要啟用 Application Load Balancer 的刪除保護,請參閱 Application Load Balancer 使用者指南中的刪除保護。若要啟用 Gateway Load Balancer 的刪除保護,請參閱 Gateway Load Balancer 使用者指南中的刪除保護。若要啟用 Network Load Balancer 的刪除保護,請參閱 Network Load Balancer 使用者指南中的刪除保護。
【ELB.7】 Classic Load Balancer 應該已啟用連線耗電
相關要求: NIST.800-53.r5 CA-9(1), NIST.800-53.r5 CM-2
類別:復原 > 復原能力
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config規則:elb-connection-draining-enabled
(自訂 Security Hub 規則)
排程類型:已觸發變更
參數:無
此控制項會檢查 Classic Load Balancer 是否已啟用連線耗盡。
在 Classic Load Balancer 上啟用連線耗盡可確保負載平衡器停止將請求傳送至取消註冊或不運作狀態的執行個體。它會保持現有連線開啟。這對於 Auto Scaling 群組中的執行個體特別有用,以確保連線不會突然分割。
修補
若要在 Classic Load Balancer 上啟用連線中斷,請參閱 Classic Load Balancer 使用者指南中的設定 Classic Load Balancer 的連線中斷。
【ELB.8】 Classic Load Balancer 與SSL接聽程式應該使用具有強烈 AWS Config敏感度的預先定義安全政策
相關要求: NIST.800-53.r5 AC-17(2) NIST.800-53.r5 AC-4、、 NIST.800-53.r5 IA-5(1)、 NIST.800-53.r5 SC-12(3)、 NIST.800-53.r5 SC-13 NIST.800-53.r5 SC-2、 NIST.800-53.r5 SC-23(3)、 NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-8(1) NIST.800-53.r5 SC-8、 NIST.800-53.r5 SC-8(2)、NIST.800-53.r5 SI-7(6)
類別:保護 > 資料保護 > 加密 data-in-transit
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config 規則:elb-predefined-security-policy-ssl-check
排程類型:已觸發變更
參數:
-
predefinedPolicyName
:ELBSecurityPolicy-TLS-1-2-2017-01
(不可自訂)
此控制項會檢查 Classic Load BalancerHTTPS/SSL接聽程式是否使用預先定義的政策 ELBSecurityPolicy-TLS-1-2-2017-01
。如果 Classic Load BalancerHTTPS/SSL接聽程式不使用 ,則控制項會失敗ELBSecurityPolicy-TLS-1-2-2017-01
。
安全政策是SSL通訊協定、密碼和 Server Order 偏好設定選項的組合。預先定義的政策控制密碼、通訊協定和偏好設定順序,以在用戶端和負載平衡器之間的SSL交涉期間提供支援。
使用 ELBSecurityPolicy-TLS-1-2-2017-01
可協助您符合需要停用特定版本 SSL和 的合規和安全標準TLS。如需詳細資訊,請參閱 Classic Load Balancer 使用者指南中的 Classic Load Balancer 的預先定義SSL安全政策。
修補
如需有關如何ELBSecurityPolicy-TLS-1-2-2017-01
搭配 Classic Load Balancer 使用預先定義安全政策的資訊,請參閱 Classic Load Balancer 使用者指南中的設定安全設定。
【ELB.9】 Classic Load Balancer 應啟用跨區域負載平衡
相關要求: NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36、 NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)
類別:復原 > 復原能力 > 高可用性
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config 規則:elb-cross-zone-load-balancing-enabled
排程類型:已觸發變更
參數:無
此控制項會檢查 Classic Load Balancer () 是否已啟用跨區域負載平衡CLBs。如果 未啟用跨區域負載平衡,則控制項會失敗CLB。
負載平衡器節點只會在其可用區域中的已註冊目標之間分配流量。停用跨區域負載平衡時,每個負載平衡器節點只會將流量分發到其可用區域內已註冊的目標。如果已註冊的目標數量在可用區域之間不同,流量將無法平均分佈,且相較於另一個區域的執行個體,一個區域中的執行個體最終可能會過度使用。在啟用跨區域負載平衡的情況下,Classic Load Balancer 的每個負載平衡器節點都會在所有啟用的可用區域中,將請求平均分佈到已註冊的執行個體。如需詳細資訊,請參閱 Elastic Load Balancing 使用者指南中的跨區域負載平衡。
修補
若要在 Classic Load Balancer 中啟用跨區域負載平衡,請參閱 Classic Load Balancer 使用者指南中的啟用跨區域負載平衡。
【ELB.10】 Classic Load Balancer 應跨越多個可用區域
相關要求: NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36、 NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)
類別:復原 > 復原能力 > 高可用性
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config 規則:clb-multiple-az
排程類型:已觸發變更
參數:
參數 | Description (描述) | Type | 允許的自訂值 | Security Hub 預設值 |
---|---|---|---|---|
|
可用區域數目下限 |
列舉 |
|
|
此控制項會檢查 Classic Load Balancer 是否已設定為至少跨越指定數量的可用區域 (AZs)。如果 Classic Load Balancer 未至少跨越指定數量的 ,則控制項會失敗AZs。除非您為最小數量的 提供自訂參數值AZs,否則 Security Hub 會使用兩個 的預設值AZs。
Classic Load Balancer 可設定為在單一可用區域中或多個可用區域中,在 Amazon EC2執行個體之間分發傳入的請求。如果唯一設定的可用區域無法使用,則未跨越多個可用區域的 Classic Load Balancer 無法將流量重新導向至另一個可用區域中的目標。
修補
若要將可用區域新增至 Classic Load Balancer請參閱 Classic Load Balancer 使用者指南中的新增或移除 Classic Load Balancer 的子網路。
【ELB.12】 Application Load Balancer 應設定為防禦性或最嚴格的非同步緩解模式
相關要求: NIST.800-53.r5 AC-4(21)、 NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-2
類別:保護 > 資料保護 > 資料完整性
嚴重性:中
資源類型: AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:alb-desync-mode-check
排程類型:已觸發變更
參數:
desyncMode
:defensive, strictest
(不可自訂)
此控制項會檢查 Application Load Balancer 是否設定為具有防禦性或最嚴格的非同步緩解模式。如果 Application Load Balancer 未設定為防禦性或最嚴格的非同步緩解模式,則控制項會失敗。
HTTP Desync 問題可能會導致請求走私,並讓應用程式容易受到請求佇列或快取中毒的影響。反過來,這些漏洞可能會導致憑證填充或執行未經授權的命令。使用防禦性或最嚴格的非同步緩解模式設定的 Application Load Balancer 可保護您的應用程式免受 HTTP Desync 可能導致的安全問題的影響。
修補
若要更新 Application Load Balancer 的非同步緩解模式,請參閱 Application Load Balancer 使用者指南中的 Desync 緩解模式。
【ELB.13】 應用程式、網路和閘道負載平衡器應跨越多個可用區域
相關要求: NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36、 NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)
類別:復原 > 復原能力 > 高可用性
嚴重性:中
資源類型: AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:elbv2-multiple-az
排程類型:已觸發變更
參數:
參數 | Description (描述) | Type | 允許的自訂值 | Security Hub 預設值 |
---|---|---|---|---|
|
可用區域數目下限 |
列舉 |
|
|
此控制項會檢查 Elastic Load Balancer V2 (應用程式、網路或 Gateway Load Balancer ) 是否具有來自至少指定數量可用區域的已註冊執行個體 ()AZs。如果 Elastic Load Balancer V2 沒有至少指定數量的 中註冊的執行個體,則控制項會失敗AZs。除非您為最小數量的 提供自訂參數值AZs,否則 Security Hub 會使用兩個 的預設值AZs。
Elastic Load Balancing 會自動將傳入的流量分散到一或多個可用區域中的多個目標,例如EC2執行個體、容器和 IP 地址。當傳入流量隨著時間發生變化,Elastic Load Balancing 會擴展您的負載平衡器。建議至少設定兩個可用區域,以確保服務的可用性,因為如果某個可用區域無法使用,Elastic Load Balancer 將能夠將流量引導至另一個可用區域。設定多個可用區域有助於消除應用程式的單一故障點。
修補
若要將可用區域新增至 Application Load Balancer請參閱 Application Application Load Balancer中的 Application Load Balancer 可用區域。 若要將可用區域新增至 Network Load Balancer請參閱 Network Load Balancer 使用者指南中的 Network Load Balancer。若要將可用區域新增至 Gateway Load Balancer請參閱 Gateway Load Balancer 使用者指南中的建立 Gateway Load Balancer。
【ELB.14】 Classic Load Balancer 應設定為防禦性或最嚴格的非同步緩解模式
相關要求: NIST.800-53.r5 AC-4(21)、 NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-2
類別:保護 > 資料保護 > 資料完整性
嚴重性:中
資源類型: AWS::ElasticLoadBalancing::LoadBalancer
AWS Config 規則:clb-desync-mode-check
排程類型:已觸發變更
參數:
desyncMode
:defensive, strictest
(不可自訂)
此控制項會檢查 Classic Load Balancer 是否設定為具有防禦性或最嚴格的非同步緩解模式。如果 Classic Load Balancer 未設定為防禦性或最嚴格的非同步緩解模式,則控制項會失敗。
HTTP Desync 問題可能會導致請求走私,並讓應用程式容易受到請求佇列或快取中毒的影響。反之,這些漏洞可能會導致憑證劫持或執行未經授權的命令。使用防禦性或最嚴格的非同步緩解模式設定 Classic Load Balancer,可保護您的應用程式免受 HTTP Desync 可能導致的安全問題影響。
修補
若要更新 Classic Load Balancer 上的非同步緩解模式,請參閱 Classic Load Balancer 使用者指南中的修改非同步緩解模式。
【ELB.16】 Application Load Balancer 應與 AWS WAF Web 建立關聯 ACL
相關要求: NIST.800-53.r5 AC-4(21)
類別:保護 > 保護服務
嚴重性:中
資源類型: AWS::ElasticLoadBalancingV2::LoadBalancer
AWS Config 規則:alb-waf-enabled
排程類型:已觸發變更
參數:無
此控制項會檢查 Application Load Balancer 是否與 AWS WAF Classic 或 AWS WAF Web 存取控制清單 (web ACL) 相關聯。如果 AWS WAF 組態Enabled
的欄位設定為 ,則控制項會失敗false
。
AWS WAF 是 Web 應用程式防火牆,可協助保護 Web 應用程式和 APIs 免受攻擊。透過 AWS WAF,您可以設定 Web ACL,這是一組規則,可依據您定義的可自訂 Web 安全規則和條件,允許、封鎖或計數 Web 請求。我們建議您將 Application Load Balancer 與 AWS WAF Web 建立關聯ACL,以協助保護 Application Load Balancer 免受惡意攻擊。
修補
若要將 Application Load Balancer 與 Web 建立關聯ACL,請參閱 AWS WAF 開發人員指南 中的將 Web ACL與 AWS 資源建立關聯或取消關聯。