安全組是一種虛擬防火墻,通過其規則控制應用型負載均衡ALB實例出/入方向流量。如果您需要拒絕或允許特定IP訪問ALB實例,可以使用ALB安全組功能來實現流量訪問控制。通過配置ALB安全組,您可以創建黑白名單的訪問策略,以便對流量進行更精確的控制。
場景說明
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安全組對指定IP地址的拒絕訪問策略
企業在阿里云某地域使用ALB部署了業務,當公司的安全團隊對業務進行安全監測時,發現某IP地址(如121.XX.XX.12)頻繁發起惡意請求和攻擊嘗試,這不僅帶來了潛在的業務風險,還有可能導致數據泄露等安全隱患。
為了解決這個問題,可以在ALB中配置安全組規則,限制特定IP地址(如121.XX.XX.12)的訪問權限,從而有效阻止惡意請求和攻擊嘗試,保護業務環境的安全和穩定。
白名單:ALB安全組對指定IP地址的允許訪問策略
企業在阿里云某地域使用ALB部署了包含敏感信息的業務。為了嚴格限制對ALB實例的訪問權限,僅允許特定IP地址(如121.XX.XX.12)訪問,企業可以為ALB配置安全組規則,設置只允許該IP地址訪問,拒絕其他所有IP地址的訪問請求。
使用限制
安全組功能默認不開放,如需使用,請向商務經理申請。
分類 | 安全組類型 | 說明 |
ALB支持加入的安全組 |
|
關于普通安全組和企業安全組的介紹,請參見普通安全組與企業級安全組。 |
ALB不支持加入的安全組 | 托管安全組 | 關于托管安全組的介紹,請參見托管安全組。 |
前提條件
您已在華東1(杭州)地域創建專有網絡VPC1,并分別在可用區H和可用區I創建了交換機VSW1和VSW2。具體操作,請參見創建專有網絡和交換機。
您已在VSW1中創建2臺ECS實例,且ECS01和ECS02實例中部署了應用服務。
關于創建ECS實例,請參見自定義購買實例。
本文ECS01和ECS02部署測試應用示例如下:
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! This is ECS01." > index.html
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! This is ECS02." > index.html
下表列出本文客戶端和服務端的IP配置,僅供參考。
分類 | IP | 說明 |
服務端ECS01 |
| 作為ALB實例后端服務器。 |
服務端ECS02 |
| |
客戶端03 | 公網:121.XX.XX.12 | 作為訪問ALB實例的客戶端。 |
客戶端04 | 公網:121.XX.XX.45 |
操作步驟
步驟一:創建服務器組
- 登錄應用型負載均衡ALB控制臺。
在頂部菜單欄,選擇服務器組所屬的地域。本文選擇華東1(杭州)。
在左側導航欄,選擇
。在服務器組頁面,單擊創建服務器組。
在創建服務器組對話框中,完成以下配置,然后單擊創建。
此處僅列出與本文強相關的配置項,其余部分參數可保持默認值。更多信息,請參見創建和管理服務器組。
配置
說明
服務器組類型
選擇一種服務器組類型。本文選擇服務器類型。
服務器組名稱
輸入服務器組名稱。
VPC
從VPC下拉列表中選擇一個VPC。本文選擇已創建的VPC1。
選擇后端協議
選擇一種后端協議。本文選擇HTTP。
選擇調度算法
選擇一種調度算法。本文選擇加權輪詢。
在服務器組創建成功對話框中單擊添加后端服務器。
在后端服務器頁簽單擊添加后端服務器。
在添加后端服務器面板,選擇已創建的ECS01和ECS02實例,然后單擊下一步。
為已添加的服務器設置端口和權重,然后單擊確定。
步驟二:創建ALB示例并配置監聽
- 登錄應用型負載均衡ALB控制臺。
在實例頁面,單擊創建應用型負載均衡。
在購買頁面,完成以下配置。
此處僅列出和本文強相關的配置項,其他未列出的配置項使用默認值。關于參數的更多信息,請參見創建應用型負載均衡。
地域:本文選擇華東1(杭州)。
實例網絡類型:本文選擇公網。
VPC:本文選擇已創建的VPC1。
單擊立即購買,然后根據控制臺提示完成實例開通。
返回實例頁面,找到已創建的ALB實例,單擊該ALB實例ID。
單擊監聽頁簽,然后單擊快速創建監聽。
在快速創建監聽對話框中,配置以下參數,完成HTTP 80監聽的創建,然后單擊確定。
配置
說明
選擇監聽協議
選擇監聽的協議類型。本文選擇HTTP。
監聽端口
輸入監聽端口。本文輸入80。
轉發的后端服務器組
選擇服務器類型及服務器類型下的服務器組。本文選擇已創建好的服務器組。
步驟三:設置域名解析
實際業務場景中,建議您使用自有域名,通過CNAME解析的方式將自有域名指向ALB實例域名。
在左側導航欄,選擇
在實例頁面,復制已創建的ALB實例的DNS名稱。
執行以下步驟添加CNAME解析記錄。
說明對于非阿里云注冊域名,需先將域名添加到云解析控制臺,才可以進行域名解析設置。具體操作,請參見域名管理。如果您是阿里云注冊的域名,請直接執行以下步驟。
登錄域名解析控制臺。
在權威域名解析頁面,找到目標域名,在操作列單擊解析設置。
在解析設置頁面,單擊添加記錄。
在添加記錄面板,配置以下信息完成CNAME解析配置,然后單擊確定。
配置
說明
記錄類型
在下拉列表中選擇CNAME。
主機記錄
您的域名的前綴。本文輸入@。
說明創建域名為根域名時,主機記錄為
@
。解析請求來源
選擇默認。
記錄值
輸入域名對應的CNAME地址,即您復制的ALB實例的DNS名稱。
TTL
全稱Time To Live,表示DNS記錄在DNS服務器上的緩存時間,本文使用默認值。
步驟四:創建安全組
在ALB實例加入安全組前,您需要先至ECS管理控制臺創建安全組,按照以下訪問規則創建2個安全組。
實現黑名單策略的安全組1
新增拒絕策略的規則。本文以拒絕公網IP(121.XX.XX.12)訪問為例,添加一條拒絕策略的規則。默認的安全組規則可保留。
授權策略
優先級
協議類型
端口范圍
授權對象
拒絕
1
全部
目的:-1/-1
源:121.XX.XX.12
實現白名單策略的安全組2
新增允許和拒絕的規則。本文以允許公網IP(121.XX.XX.12)為例,添加一條允許策略的規則,并添加一條拒絕策略的規則。
授權策略
優先級
協議類型
端口范圍
授權對象
允許
1
全部
目的:-1/-1
源:121.XX.XX.12
拒絕
100
全部
目的:-1/-1
源:0.0.0.0/0
步驟五:ALB實例未加入安全組并驗證結果
以客戶端03和客戶端04為例,測試客戶端與ECS01和ECS02的連通性。
登錄客戶端03,執行
curl http://域名
,可以看到如下圖所示,收到Hello World ! This is ECS01.
報文,表示該客戶端可以訪問ALB實例。登錄客戶端04,執行
curl http://域名
,可以看到如下圖所示,收到Hello World ! This is ECS02.
報文,表示該客戶端可以訪問ALB實例。
步驟六:ALB實例加入安全組并驗證結果
實現黑名單訪問策略
ALB實例加入步驟四:創建安全組創建的安全組1,并驗證安全組1中規則對ALB實例的訪問控制是否生效。
- 登錄應用型負載均衡ALB控制臺。
在頂部菜單欄,選擇ALB實例的所屬的地域。本文選擇華東1(杭州)。
在ALB實例頁面,找到已創建的ALB實例,單擊實例ID。在實例詳情頁簽,單擊安全組頁簽。
在安全組頁簽,單擊添加安全組,在彈出的ALB實例加入安全組對話框中,選擇步驟四:創建安全組創建的安全組1,然后單擊確定。
在左側列表框單擊目標安全組ID,可單擊入方向或出方向頁簽分別查看安全組規則。
此處僅列出與本文強相關的安全組規則
授權策略
優先級
協議類型
端口范圍
授權對象
拒絕
1
全部
目的:-1/-1
源:121.XX.XX.12
ALB實例加入安全組后,測試訪問結果。
登錄客戶端03,執行
curl http://域名
,可以看到如下圖所示,收到curl: (7) Failed connect to *********:80; Connection timed out
報文表示該客戶端被拒絕訪問ALB實例。登錄客戶端04,執行
curl http://域名
,可以看到如下圖所示,收到Hello World ! This is ECS01.
報文,表示該客戶端可以訪問ALB實例。
驗證結果表明:ALB實例加入實現黑名單策略的安全組1后,安全組內拒絕規則中的IP地址不能訪問該ALB實例,不在安全組拒絕規則中的IP可以正常訪問。
實現白名單訪問策略
ALB實例加入步驟四:創建安全組創建的安全組2,并驗證安全組2中規則對ALB實例的訪問控制是否生效。
- 登錄應用型負載均衡ALB控制臺。
在頂部菜單欄,選擇ALB實例的所屬的地域。本文選擇華東1(杭州)。
在ALB實例頁面,找到已創建的ALB實例,單擊實例ID。在實例詳情頁簽,單擊安全組頁簽。
在安全組頁簽,單擊添加安全組,在彈出的ALB實例加入安全組對話框中,選擇步驟四:創建安全組創建的安全組2,然后單擊確定。
在左側列表框單擊目標安全組ID,可單擊入方向或出方向頁簽分別查看安全組規則。
此處僅列出與本文強相關的安全組規則
授權策略
優先級
協議類型
端口范圍
授權對象
允許
1
全部
目的:-1/-1
源:121.XX.XX.12
拒絕
100
全部
目的:-1/-1
源:所有IPv4(0.0.0.0/0)
ALB實例加入安全組后,測試訪問結果。
登錄客戶端03,執行
curl http://域名
,可以看到類似下圖所示,收到Hello World ! This is ECS01.
報文,表示該客戶端可以訪問ALB實例。登錄客戶端04,執行
curl http://域名
,可以看到類似下圖所示,收到curl: (7) Failed connect to *********:80; Connection timed out
,表示該客戶端被拒絕訪問ALB實例。
驗證結果表明:ALB實例加入實現白名單策略的安全組2時,安全組內僅允許規則中的IP地址可以訪問該ALB實例。
相關文檔
關于ALB加入安全組和解綁安全組等操作,請參見ALB加入安全組。
如何配置安全組實現ALB基于監聽/端口粒度的訪問控制,請參見ALB配置安全組實現基于監聽/端口粒度的訪問控制。
關于安全組的詳細介紹,請參見安全組。
LoadBalancerJoinSecurityGroup:為應用型負載均衡實例綁定已創建的安全組。
LoadBalancerLeaveSecurityGroup:為應用型負載均衡實例解綁安全組。