建立網路 ACL
您可以設定 ACL 來限制子網路的入站和出站流量。 依預設,容許所有資料流量。
每個子網路只能連接至一個 ACL。 不過,每個 ACL 都可以連接至多個子網路。
開始之前,請確定您已建立 VPC 及子網路。
在主控台中建立網路 ACL
若要在 IBM Cloud 主控台中配置 ACL,請遵循下列步驟:
-
移至 IBM Cloud 主控台,並登入您的帳戶。
-
選取導覽功能表
,然後按一下基礎結構
> 網路 > 存取控制清單。
-
按一下建立 +。
-
選取 編輯位置 圖示
,然後輸入下列欄位的值:
- 地理位置-選取存取控制清單的洲。
- 地區-選取存取控制清單的地區。
-
在詳細資訊下輸入下列欄位的值:
- 名稱- 輸入存取控制清單的唯一名稱。
- 資源群組-選取存取控制清單的資源群組。 您可以使用此存取控制清單的預設群組,或從資源群組清單中選取 (如果已定義的話)。 如需相關資訊,請參閱組織資源群組中資源的最佳作法。
佈建完成後,您就無法變更資源群組。
- 標籤-新增使用者標籤。 使用者標籤在整個帳戶中都是可看見的。 如需相關資訊,請參閱使用標籤。
- 存取管理標籤-新增存取管理標籤以協助組織存取控制關係。 如需相關資訊,請參閱 使用標籤控制對資源的存取權。
- 虛擬私有雲- 選擇 VPC。 您可以為此 ACL 使用預設 VPC,或從清單中選擇(如果已定義)。 如需詳細資訊,請參閱 開始使用虛擬私有雲。
-
在 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。
-
在頁面右下方的摘要功能表中檢視預估成本總計。
從 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-b5f8e8d1f479ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --source-acl-id 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3
使用 API 建立網路 ACL
若要使用 API 建立網路 ACL,請遵循下列步驟:
-
設定 API 環境。
-
將
VpcId值儲存在要在 API 指令中使用的變數中:export VpcId=<your_vpc_id> -
建立網路 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,任何埠 |