為了提高雲上流量入口安全性,如果您需要對ALB進行基於協議/連接埠/IP的存取控制,可以通過為ALB執行個體配置安全性群組來實現。相較於ACL,ALB通過安全性群組能實現更全面的存取控制,不僅能配置基於協議/連接埠的存取控制,而且支援IPv6地址類型的存取控制策略。
情境說明
ALB執行個體未加入安全性群組時,ALB監聽連接埠預設對所有請求允許存取。
當ALB執行個體加入安全性群組且未設定任何拒絕策略時,ALB監聽連接埠預設對所有請求放通。如果您需要只允許特定IP訪問ALB,請注意添加一條拒絕策略進行兜底。
如果您需要拒絕或允許特定IP訪問ALB執行個體,請參見ALB配置安全性群組實現黑白名單存取原則。
如果您需要對ALB實現基於協議/連接埠的存取控制,請參見ALB配置安全性群組實現基於監聽/連接埠粒度的存取控制。
當您的ALB執行個體有存取控制的訴求,希望控制ALB執行個體的入流量時,您可以選擇為ALB執行個體添加安全性群組,同時可基於業務設定相應的安全性群組規則。
負載平衡的出方向流量為使用者請求的回包。為了保證您的業務正常運行,ALB的安全性群組對出流量不做限制,您無需額外配置安全性群組出方向規則。
新增安全性群組規則時,建議您避免對ALB的Local IP添加優先順序為1的拒絕策略,以確保新增的安全性群組規則不會與ALB託管安全性群組策略衝突,因為這可能會影響ALB與您的後端服務之間的正常通訊。您可以登入應用型負載平衡ALB控制台,在執行個體詳情頁面查看Local IP。
當您希望ALB執行個體中某些連接埠的監聽被禁止訪問,其他連接埠的監聽可以正常訪問時,您可以使用安全性群組功能實現對連接埠的嚴格存取控制。本文從以下三種情境來說明ALB執行個體加入安全性群組對連接埠的存取控制,以ALB執行個體配置HTTP 80監聽和HTTP 81監聽為例說明。
情境 | 安全性群組規則 | 預期效果 | 相關連結 |
ALB執行個體未加入安全性群組 | ALB監聽連接埠預設對所有請求允許存取 |
| |
ALB執行個體加入安全性群組 | 拒絕訪問HTTP協議的81連接埠 說明 此處僅列出與本文強相關的安全性群組規則,其餘預設規則未列出。 |
| |
修改ALB執行個體加入的安全性群組 |
說明 此處僅列出與本文強相關的安全性群組規則,其餘預設規則未列出。 |
|
使用限制
安全性群組功能預設不開放,如需使用,請向商務經理申請。
分類 | 安全性群組類型 | 說明 |
ALB支援加入的安全性群組 |
|
關於普通安全性群組和企業安全性群組的介紹,請參見普通安全性群組與企業級安全性群組。 |
ALB不支援加入的安全性群組 | 託管安全性群組 | 關於託管安全性群組的介紹,請參見託管安全性群組。 |
前提條件
操作步驟
步驟一:建立伺服器組
- 登入應用型負載平衡ALB控制台。
在頂部功能表列,選擇伺服器組所屬的地區。本文選擇華東1(杭州)。
在左側導覽列,選擇
。在伺服器組頁面,單擊建立伺服器組。
在建立伺服器組對話方塊中,完成以下配置,然後單擊建立。
此處僅列出與本文強相關的配置項,其餘部分參數可保持預設值。更多資訊,請參見建立和管理伺服器組。
配置
說明
伺服器群組類型
選擇一種伺服器群組類型。本文選擇伺服器類型。
伺服器組名稱
輸入伺服器組名稱。
VPC
從VPC下拉式清單中選擇一個VPC。本文選擇已建立的VPC1。
選擇後端協議
選擇一種後端協議。本文選擇HTTP。
選擇調度演算法
選擇一種調度演算法。本文選擇加權輪詢。
在伺服器組建立成功對話方塊中單擊添加後端伺服器。
在後端伺服器頁簽單擊添加後端伺服器。
在添加後端伺服器面板,選擇已建立的ECS01和ECS02執行個體,然後單擊下一步。
為已添加的伺服器設定連接埠和權重,然後單擊確定。
步驟二:建立ALB執行個體並配置監聽
- 登入應用型負載平衡ALB控制台。
在執行個體頁面,單擊建立應用型負載平衡。
在購買頁面,完成以下配置。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用預設值。關於參數的更多資訊,請參見建立和管理ALB執行個體。
地區:本文選擇華東1(杭州)。
執行個體網路類型:本文選擇公網。
VPC:本文選擇已建立的VPC1。
單擊立即購買,然後根據控制台提示完成執行個體開通。
返回執行個體頁面,找到已建立的ALB執行個體,單擊該ALB執行個體ID。
單擊監聽頁簽,然後單擊快速建立監聽。
在快速建立監聽對話方塊中,配置以下參數,完成HTTP 80監聽的建立,然後單擊確定。
配置
說明
選擇監聽協議
選擇監聽的協議類型。本文選擇HTTP。
監聽連接埠
輸入監聽連接埠。本文輸入80。
轉寄的後端伺服器組
選擇伺服器類型及伺服器類型下的伺服器組。本文選擇已建立好的伺服器組。
在監聽頁簽,單擊快速建立監聽。
在快速建立監聽對話方塊中,配置以下參數,完成HTTP 81監聽的建立,然後單擊確定。
配置
說明
選擇監聽協議
選擇監聽的協議類型。本文選擇HTTP。
監聽連接埠
輸入監聽連接埠。本文輸入81。
轉寄的後端伺服器組
選擇伺服器類型及伺服器類型下的伺服器組。本文選擇已建立好的伺服器組。
步驟三:設定網域名稱解析
實際業務情境中,建議您使用自有網域名稱,通過CNAME解析的方式將自有網域名稱指向ALB執行個體網域名稱。
在左側導覽列,選擇
在執行個體頁面,複製已建立的ALB執行個體的DNS名稱。
執行以下步驟添加CNAME解析記錄。
說明對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析設定。具體操作,請參見網域名稱管理。如果您是阿里雲註冊的網域名稱,請直接執行以下步驟。
登入網域名稱解析控制台。
在權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定。
在解析設定頁面,單擊添加記錄。
在添加記錄面板,配置以下資訊完成CNAME解析配置,然後單擊確定。
配置
說明
記錄類型
在下拉式清單中選擇CNAME。
主機記錄
您的網域名稱的首碼。本文輸入@。
說明建立網域名稱為根網域名稱時,主機記錄為
@
。解析請求來源
選擇預設。
記錄值
輸入欄位名對應的CNAME地址,即您複製的ALB執行個體的DNS名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。
步驟四:建立安全性群組
在ALB執行個體加入安全性群組前,您需要先至ECS管理主控台建立安全性群組。
登入ECS管理主控台。
在左側導覽列,選擇
。在頂部功能表列,選擇安全性群組所屬的地區。本文選擇華東1(杭州)。
在安全性群組頁面,單擊建立安全性群組。
在建立安全性群組頁面,設定安全性群組的基本資料參數。
此處僅列出和本文強相關的配置項,其餘參數的配置請參見建立安全性群組。
網路:本文選擇已建立的Virtual Private Cloud。
安全性群組類型:本文選擇普通安全性群組。
在預設的安全性群組規則上,配置新增的安全性群組的訪問規則參數。
在入方向單擊手動添加。
配置新增的安全性群組規則,按照以下規則分別進行添加。然後單擊建立安全性群組。
名稱
描述
授權策略
選擇拒絕。
優先順序
優先順序保持預設值1。
協議類型
協議類型選擇自訂TCP。
說明在設定QUIC監聽的安全性群組規則時,協議類型選擇自訂UDP。
連接埠範圍
輸入連接埠號碼81。
授權對象
選擇
所有IPv4(0.0.0.0/0)
和所有IPv6(::/0)
。描述
輸入安全性群組規則描述資訊。
步驟五:ALB未加入安全性群組並驗證結果
測試用戶端與ECS執行個體ECS01和ECS02之間的連通性。本文以任意一台可以訪問公網的用戶端為例。
在瀏覽器輸入訪問地址和連接埠號碼,例如
http://網域名稱:80
,可以看到如下圖所示,表示ALB可以訪問HTTP協議的80連接埠。在瀏覽器輸入訪問地址和連接埠號碼,例如
http://網域名稱:81
,可以看到如下圖所示,表示ALB可以訪問HTTP協議的81連接埠。
步驟六:ALB執行個體加入安全性群組並驗證結果
ALB執行個體加入安全性群組,並驗證安全性群組規則是否對ALB執行個體的連接埠的存取控制生效。
- 登入應用型負載平衡ALB控制台。
在ALB執行個體頁面,找到目標ALB執行個體,單擊執行個體ID,在執行個體詳情頁簽,單擊安全性群組頁簽。
在安全性群組頁簽,單擊添加安全性群組,在彈出的ALB執行個體加入安全性群組對話方塊中,選擇步驟四:建立安全性群組建立的安全性群組,然後單擊確定。
在左側列表框單擊目標安全性群組ID,可單擊入方向或出方向頁簽分別查看安全性群組規則。
此處僅列出與本文強相關的安全性群組入方向規則。此時ALB執行個體的安全性群組規則如下:
授權策略
優先順序
協議類型
連接埠範圍
授權對象
允許
1
自訂TCP
目的:80/80
源:所有IPv4(0.0.0.0/0)
允許
1
自訂TCP
目的:80/80
源:所有IPv6(::/0)
拒絕
1
自訂TCP
目的:81/81
源:所有IPv4(0.0.0.0/0)
拒絕
1
自訂TCP
目的:81/81
源:所有IPv6(::/0)
修改ALB執行個體加入的安全性群組規則後,測試訪問結果。
在瀏覽器輸入訪問地址和連接埠號碼,例如
http://網域名稱:80
,可以看到類似下圖所示,表示ALB執行個體可以訪問HTTP協議的80連接埠。在瀏覽器輸入訪問地址和連接埠號碼,例如
http://網域名稱:81
,如果無法訪問應用服務,可以開啟命令列視窗,執行curl http://訪問地址:81
,如果出現如下圖所示結果,則表示用戶端無法訪問ALB執行個體的HTTP監聽的81連接埠,這表明ALB執行個體的安全性群組對81連接埠的存取控制已生效。
步驟七:修改安全性群組並驗證結果
修改安全性群組規則,並驗證修改後的安全性群組規則是否對ALB執行個體的連接埠存取控制生效。
返回ALB執行個體頁面,找到目標ALB執行個體,單擊執行個體ID。在執行個體詳情頁簽,單擊安全性群組頁簽。
在基本資料地區單擊安全性群組ID,或在安全性群組頁簽右上方單擊前往ECS控制台編輯,進入安全性群組規則頁面修改安全性群組規則。
在安全性群組規則頁面,找到允許訪問TCP協議80連接埠的規則,在操作列單擊編輯,修改授權策略為拒絕,單擊儲存。
此處僅列出與本文強相關的安全性群組規則。修改後的安全性群組規則如下:
授權策略
優先順序
協議類型
連接埠範圍
授權對象
拒絕
1
自訂TCP
目的:80/80
源:所有IPv4(0.0.0.0/0)
拒絕
1
自訂TCP
目的:80/80
源:所有IPv6(::/0)
拒絕
1
自訂TCP
目的:81/81
源:所有IPv4(0.0.0.0/0)
拒絕
1
自訂TCP
目的:81/81
源:所有IPv6(::/0)
修改ALB執行個體加入的安全性群組規則後,測試訪問結果。
開啟命令列視窗,執行
curl http://網域名稱:80
,如果出現如下圖所示,則表示用戶端無法訪問ALB執行個體HTTP監聽的80連接埠,這表明ALB執行個體的安全性群組對80連接埠存取控制已生效。開啟命令列視窗,執行
curl http://網域名稱:81
,如果出現如下圖所示,則表示用戶端無法訪問ALB執行個體HTTP監聽的81連接埠,這表明ALB執行個體的安全性群組對81連接埠存取控制已生效。
相關文檔
關於ALB添加安全性群組和解除綁定安全性群組等操作,請參見ALB加入安全性群組。
關於ALB配置安全性群組實現黑白名單的存取原則,請參見 ALB配置安全性群組實現黑白名單存取原則。
關於普通安全性群組和企業安全性群組的介紹,請參見普通安全性群組與企業級安全性群組。
LoadBalancerJoinSecurityGroup:為應用型Server Load Balancer執行個體綁定已建立的安全性群組。
LoadBalancerLeaveSecurityGroup:為應用型Server Load Balancer執行個體解除綁定安全性群組。