建立網路 ACL

您可以設定 ACL 來限制子網路的入站和出站流量。 依預設,容許所有資料流量。

每個子網路只能連接至一個 ACL。 不過,每個 ACL 都可以連接至多個子網路。

開始之前,請確定您已建立 VPC 及子網路。

在主控台中建立網路 ACL

若要在 IBM Cloud 主控台中配置 ACL,請遵循下列步驟:

  1. 移至 IBM Cloud 主控台,並登入您的帳戶。

  2. 選取導覽功能表 導覽功能表圖示,然後按一下基礎結構 VPC 圖示 > 網路 > 存取控制清單

  3. 按一下建立 +

  4. 選取 編輯位置 圖示 「編輯位置」圖示,然後輸入下列欄位的值:

    • 地理位置-選取存取控制清單的洲。
    • 地區-選取存取控制清單的地區。
  5. 在詳細資訊下輸入下列欄位的值:

    • 名稱- 輸入存取控制清單的唯一名稱。
    • 資源群組-選取存取控制清單的資源群組。 您可以使用此存取控制清單的預設群組,或從資源群組清單中選取 (如果已定義的話)。 如需相關資訊,請參閱組織資源群組中資源的最佳作法

    佈建完成後,您就無法變更資源群組。

    • 標籤-新增使用者標籤。 使用者標籤在整個帳戶中都是可看見的。 如需相關資訊,請參閱使用標籤
    • 存取管理標籤-新增存取管理標籤以協助組織存取控制關係。 如需相關資訊,請參閱 使用標籤控制對資源的存取權
    • 虛擬私有雲- 選擇 VPC。 您可以為此 ACL 使用預設 VPC,或從清單中選擇(如果已定義)。 如需詳細資訊,請參閱 開始使用虛擬私有雲
  6. 在 Rules(規則)下,按一下 Create +(建立 + )以配置入站和出站規則,以定義允許哪些流量進出子網路。 針對每個規則,指定下列資訊:

    • 選取是要容許還是拒絕指定的資料流量。
    • 選取套用規則的通訊協定。 有關在您的存取控制清單規則中使用 IPv4 任何通訊協定的詳細資訊,請參閱 《瞭解網際網路通訊協定》
    • 對於規則的來源和目的地,指定套用規則的 IP 範圍和埠。 例如,如果您想要容許所有入埠資料流量至子網路中的 IP 範圍 192.168.0.0/24,請指定 Any 作為來源,並指定 192.168.0.0/24 作為目的地。 不過,如果您只想容許從 169.168.0.0/24 到整個子網路的入埠資料流量,請指定 169.168.0.0/24 作為來源,並指定 任何 作為規則的目的地。
    • 指定規則的優先順序。 會先評估數字較低的規則,並且會置換數字較高的規則。 例如,如果優先順序為 2 的規則允許 HTTP 流量,而優先順序為 5 的規則拒絕所有流量,則 HTTP 流量仍然允許。
    • 按一下建立
    • 選取要附加到此 ACL 的子網路。 按一下 連接,以連接其他子網路。

    如果子網路具有現有的 ACL 連線,則所建立的 ACL 會取代 ACL。

  7. 在頁面右下方的摘要功能表中檢視預估成本總計。

從 CLI 建立網路 ACL

開始之前,請 設定 CLI 環境

若要從 CLI 建立網路 ACL,請執行下列指令:

ibmcloud is network-acl-create ACL_NAME VPC \
[--rules (RULES_JSON|@RULES_JSON_FILE) | --source-acl-id SOURCE_ACL_ID] \
[--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
[--output JSON] [-q, --quiet]

其中:

ACL_NAME
網路 ACL 的名稱。 VPC
VPC 的 ID。 --rules
JSON 或 JSON 檔案中 ACL 的規則。 --source-acl-id
要複製規則的網路 ACL 的 ID。 --resource-group-id
資源群組的 ID。 此選項與 --resource-group-name 互斥。 --resource-group-name
資源群組的名稱。 此選項與 --resource-group-id 互斥。 --output
以 JSON 格式輸出。 -q, --quiet
禁止冗長輸出。

例如:

  • ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479
  • ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --source-acl-id 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3

使用 API 建立網路 ACL

若要使用 API 建立網路 ACL,請遵循下列步驟:

  1. 設定 API 環境

  2. VpcId 值儲存在要在 API 指令中使用的變數中:

    export VpcId=<your_vpc_id>
    
  3. 建立網路 ACL:

    curl -X POST -sH "Authorization:${iam_token}" \
    "$vpc_api_endpoint/v1/network_acls?version=$api_version&generation=2" \
    -d '{"name": "testacl", "vpc":{"id": "'$VpcId'"},"resource_group": {"id": "'$ResourceGroupId'"}}' | jq
    

範例: 配置規則

例如,可以配置下列入埠規則:

  • 允許 HTTP 網際網路流量。
  • 允許所有來自子網路的入站流量 10.10.20.0/24
  • 拒絕所有其他入站流量。
用於配置入站規則的資訊。
優先順序 容許/拒絕 通訊協定 來源 目的地
1 容許 TCP 任何 IP,埠 80-80 任何 IP,任何埠
2 容許 ANY 10.10.20.0/24,任何埠 任何 IP,任何埠
3 拒絕 ANY 任何 IP,任何埠 任何 IP,任何埠

然後,配置下列出埠規則:

  • 允許 HTTP 通往網際網路的流量。
  • 允許所有出站流量到子網路 10.10.20.0/24
  • 拒絕所有其他出站流量。
用於配置出站規則的資訊。
優先順序 容許/拒絕 通訊協定 來源 目的地
1 容許 TCP 任何 IP,任何埠 任何 IP,埠 80-80
2 容許 ANY 任何 IP,任何埠 10.10.20.0/24,任何埠
3 拒絕 ANY 任何 IP,任何埠 任何 IP,任何埠