全部產品
Search
文件中心

Server Load Balancer:ALB配置安全性群組實現基於監聽/連接埠粒度的存取控制

更新時間:Nov 26, 2024

為了提高雲上流量入口安全性,如果您需要對ALB進行基於協議/連接埠/IP的存取控制,可以通過為ALB執行個體配置安全性群組來實現。相較於ACL,ALB通過安全性群組能實現更全面的存取控制,不僅能配置基於協議/連接埠的存取控制,而且支援IPv6地址類型的存取控制策略。

情境說明

當您的ALB執行個體有存取控制的訴求,希望控制ALB執行個體的入流量時,您可以選擇為ALB執行個體添加安全性群組,同時可基於業務設定相應的安全性群組規則。

重要
  • 負載平衡的出方向流量為使用者請求的回包。為了保證您的業務正常運行,ALB的安全性群組對出流量不做限制,您無需額外配置安全性群組出方向規則。

  • 新增安全性群組規則時,建議您避免對ALB的Local IP添加優先順序為1的拒絕策略,以確保新增的安全性群組規則不會與ALB託管安全性群組策略衝突,因為這可能會影響ALB與您的後端服務之間的正常通訊。您可以登入應用型負載平衡ALB控制台,在執行個體詳情頁面查看Local IP。

當您希望ALB執行個體中某些連接埠的監聽被禁止訪問,其他連接埠的監聽可以正常訪問時,您可以使用安全性群組功能實現對連接埠的嚴格存取控制。本文從以下三種情境來說明ALB執行個體加入安全性群組對連接埠的存取控制,以ALB執行個體配置HTTP 80監聽和HTTP 81監聽為例說明。

情境

安全性群組規則

預期效果

相關連結

ALB執行個體未加入安全性群組

ALB監聽連接埠預設對所有請求允許存取

  • 允許用戶端訪問ALB執行個體的HTTP 80連接埠

  • 允許用戶端訪問ALB執行個體的HTTP 81連接埠

步驟五:ALB未加入安全性群組並驗證結果

ALB執行個體加入安全性群組

拒絕訪問HTTP協議的81連接埠

說明

此處僅列出與本文強相關的安全性群組規則,其餘預設規則未列出。

  • 允許用戶端訪問ALB執行個體的HTTP 80連接埠

  • 拒絕用戶端訪問ALB執行個體的HTTP 81連接埠

步驟六:ALB執行個體加入安全性群組並驗證結果

修改ALB執行個體加入的安全性群組

  • 拒絕訪問HTTP協議的80連接埠

  • 拒絕訪問HTTP協議的81連接埠

說明

此處僅列出與本文強相關的安全性群組規則,其餘預設規則未列出。

  • 拒絕用戶端訪問ALB執行個體的HTTP 80連接埠

  • 拒絕用戶端訪問ALB執行個體的HTTP 81連接埠

步驟七:修改安全性群組並驗證結果

使用限制

重要

安全性群組功能預設不開放,如需使用,請向商務經理申請。

分類

安全性群組類型

說明

ALB支援加入的安全性群組

  • 普通安全性群組

  • 企業級安全性群組

  • 要求安全性群組為專用網路類型,且安全性群組和ALB執行個體屬於同一個Virtual Private Cloud(Virtual Private Cloud)。

  • 一個ALB執行個體最多支援加入4個安全性群組,且同一個ALB執行個體加入的安全性群組類型需保持一致,即不支援同時加入普通安全性群組和企業級安全性群組。

    某個ALB執行個體已加入普通安全性群組,如果需要加入企業級安全性群組,可解除綁定當前ALB執行個體的所有普通安全性群組後再行操作,反之亦然。

關於普通安全性群組和企業安全性群組的介紹,請參見普通安全性群組與企業級安全性群組

ALB不支援加入的安全性群組

託管安全性群組

關於託管安全性群組的介紹,請參見託管安全性群組

前提條件

  • 您已建立了Virtual Private Cloud1。具體操作,請參見建立和管理專用網路

  • 您已在VPC1中建立ECS01和ECS02執行個體,ECS01和ECS02執行個體作為ALB執行個體的後端伺服器,且ECS01和ECS02執行個體中部署了2個不同的應用服務。

    • 關於如何建立ECS執行個體,請參見自訂購買執行個體

    • 本文ECS01和ECS02部署測試應用服務樣本如下:

      ECS01服務部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS01." > index.html

      ECS02服務部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS02." > index.html

操作步驟

步驟一:建立伺服器組

  1. 登入應用型負載平衡ALB控制台
  2. 在頂部功能表列,選擇伺服器組所屬的地區。本文選擇華東1(杭州)

  3. 在左側導覽列,選擇應用型負載平衡ALB > 伺服器組

  4. 伺服器組頁面,單擊建立伺服器組

  5. 建立伺服器組對話方塊中,完成以下配置,然後單擊建立

    此處僅列出與本文強相關的配置項,其餘部分參數可保持預設值。更多資訊,請參見建立和管理伺服器組

    配置

    說明

    伺服器群組類型

    選擇一種伺服器群組類型。本文選擇伺服器類型

    伺服器組名稱

    輸入伺服器組名稱。

    VPC

    從VPC下拉式清單中選擇一個VPC。本文選擇已建立的VPC1。

    選擇後端協議

    選擇一種後端協議。本文選擇HTTP

    選擇調度演算法

    選擇一種調度演算法。本文選擇加權輪詢

  6. 伺服器組建立成功對話方塊中單擊添加後端伺服器

  7. 後端伺服器頁簽單擊添加後端伺服器

  8. 添加後端伺服器面板,選擇已建立的ECS01和ECS02執行個體,然後單擊下一步

  9. 為已添加的伺服器設定連接埠和權重,然後單擊確定

步驟二:建立ALB執行個體並配置監聽

  1. 登入應用型負載平衡ALB控制台
  2. 執行個體頁面,單擊建立應用型負載平衡

  3. 在購買頁面,完成以下配置。

    此處僅列出和本文強相關的配置項,其他未列出的配置項使用預設值。關於參數的更多資訊,請參見建立和管理ALB執行個體

    • 地區:本文選擇華東1(杭州)

    • 執行個體網路類型:本文選擇公網

    • VPC:本文選擇已建立的VPC1。

  4. 單擊立即購買,然後根據控制台提示完成執行個體開通。

  5. 返回執行個體頁面,找到已建立的ALB執行個體,單擊該ALB執行個體ID。

  6. 單擊監聽頁簽,然後單擊快速建立監聽

  7. 快速建立監聽對話方塊中,配置以下參數,完成HTTP 80監聽的建立,然後單擊確定

    配置

    說明

    選擇監聽協議

    選擇監聽的協議類型。本文選擇HTTP

    監聽連接埠

    輸入監聽連接埠。本文輸入80。

    轉寄的後端伺服器組

    選擇伺服器類型伺服器類型下的伺服器組。本文選擇已建立好的伺服器組。

  8. 監聽頁簽,單擊快速建立監聽

  9. 快速建立監聽對話方塊中,配置以下參數,完成HTTP 81監聽的建立,然後單擊確定

    配置

    說明

    選擇監聽協議

    選擇監聽的協議類型。本文選擇HTTP

    監聽連接埠

    輸入監聽連接埠。本文輸入81。

    轉寄的後端伺服器組

    選擇伺服器類型伺服器類型下的伺服器組。本文選擇已建立好的伺服器組。

步驟三:設定網域名稱解析

實際業務情境中,建議您使用自有網域名稱,通過CNAME解析的方式將自有網域名稱指向ALB執行個體網域名稱。

  1. 在左側導覽列,選擇應用型負載平衡 ALB > 執行個體

  2. 執行個體頁面,複製已建立的ALB執行個體的DNS名稱。

  3. 執行以下步驟添加CNAME解析記錄。

    說明

    對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析設定。具體操作,請參見網域名稱管理。如果您是阿里雲註冊的網域名稱,請直接執行以下步驟。

    1. 登入網域名稱解析控制台

    2. 權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定

    3. 解析設定頁面,單擊添加記錄

    4. 添加記錄面板,配置以下資訊完成CNAME解析配置,然後單擊確定

      配置

      說明

      記錄類型

      在下拉式清單中選擇CNAME

      主機記錄

      您的網域名稱的首碼。本文輸入@

      說明

      建立網域名稱為根網域名稱時,主機記錄為@

      解析請求來源

      選擇預設。

      記錄值

      輸入欄位名對應的CNAME地址,即您複製的ALB執行個體的DNS名稱。

      TTL

      全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。

步驟四:建立安全性群組

在ALB執行個體加入安全性群組前,您需要先至ECS管理主控台建立安全性群組。

  1. 登入ECS管理主控台

  2. 在左側導覽列,選擇網路與安全 > 安全性群組

  3. 在頂部功能表列,選擇安全性群組所屬的地區。本文選擇華東1(杭州)

  4. 安全性群組頁面,單擊建立安全性群組

  5. 建立安全性群組頁面,設定安全性群組的基本資料參數。

    此處僅列出和本文強相關的配置項,其餘參數的配置請參見建立安全性群組

    • 網路:本文選擇已建立的Virtual Private Cloud。

    • 安全性群組類型:本文選擇普通安全性群組

  6. 在預設的安全性群組規則上,配置新增的安全性群組的訪問規則參數。

    1. 入方向單擊手動添加

    2. 配置新增的安全性群組規則,按照以下規則分別進行添加。然後單擊建立安全性群組

      名稱

      描述

      授權策略

      選擇拒絕

      優先順序

      優先順序保持預設值1

      協議類型

      協議類型選擇自訂TCP

      說明

      在設定QUIC監聽的安全性群組規則時,協議類型選擇自訂UDP

      連接埠範圍

      輸入連接埠號碼81

      授權對象

      選擇所有IPv4(0.0.0.0/0)所有IPv6(::/0)

      描述

      輸入安全性群組規則描述資訊。

步驟五:ALB未加入安全性群組並驗證結果

測試用戶端與ECS執行個體ECS01和ECS02之間的連通性。本文以任意一台可以訪問公網的用戶端為例。

  1. 在瀏覽器輸入訪問地址和連接埠號碼,例如http://網域名稱:80,可以看到如下圖所示,表示ALB可以訪問HTTP協議的80連接埠。

    image

  2. 在瀏覽器輸入訪問地址和連接埠號碼,例如http://網域名稱:81,可以看到如下圖所示,表示ALB可以訪問HTTP協議的81連接埠。

    image

步驟六:ALB執行個體加入安全性群組並驗證結果

ALB執行個體加入安全性群組,並驗證安全性群組規則是否對ALB執行個體的連接埠的存取控制生效。

  1. 登入應用型負載平衡ALB控制台
  2. 在ALB執行個體頁面,找到目標ALB執行個體,單擊執行個體ID,在執行個體詳情頁簽,單擊安全性群組頁簽。

  3. 安全性群組頁簽,單擊添加安全性群組,在彈出的ALB執行個體加入安全性群組對話方塊中,選擇步驟四:建立安全性群組建立的安全性群組,然後單擊確定

  4. 在左側列表框單擊目標安全性群組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)

  5. 修改ALB執行個體加入的安全性群組規則後,測試訪問結果。

    1. 在瀏覽器輸入訪問地址和連接埠號碼,例如http://網域名稱:80,可以看到類似下圖所示,表示ALB執行個體可以訪問HTTP協議的80連接埠。

      image

    2. 在瀏覽器輸入訪問地址和連接埠號碼,例如http://網域名稱:81,如果無法訪問應用服務,可以開啟命令列視窗,執行curl http://訪問地址:81,如果出現如下圖所示結果,則表示用戶端無法訪問ALB執行個體的HTTP監聽的81連接埠,這表明ALB執行個體的安全性群組對81連接埠的存取控制已生效。

      image

步驟七:修改安全性群組並驗證結果

修改安全性群組規則,並驗證修改後的安全性群組規則是否對ALB執行個體的連接埠存取控制生效。

  1. 返回ALB執行個體頁面,找到目標ALB執行個體,單擊執行個體ID。在執行個體詳情頁簽,單擊安全性群組頁簽。

  2. 基本資料地區單擊安全性群組ID,或在安全性群組頁簽右上方單擊前往ECS控制台編輯,進入安全性群組規則頁面修改安全性群組規則。

  3. 安全性群組規則頁面,找到允許訪問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)

  4. 修改ALB執行個體加入的安全性群組規則後,測試訪問結果。

    1. 開啟命令列視窗,執行curl http://網域名稱:80,如果出現如下圖所示,則表示用戶端無法訪問ALB執行個體HTTP監聽的80連接埠,這表明ALB執行個體的安全性群組對80連接埠存取控制已生效。

      image

    2. 開啟命令列視窗,執行curl http://網域名稱:81,如果出現如下圖所示,則表示用戶端無法訪問ALB執行個體HTTP監聽的81連接埠,這表明ALB執行個體的安全性群組對81連接埠存取控制已生效。

      image

相關文檔