IBM Cloud Docs
创建网络 ACL

创建网络 ACL

您可以配置 ACL 来限制子网的入站和出站流量。 缺省情况下,将允许所有流量。

每个子网只能连接到一个 ACL。 但是,每个 ACL 可以连接到多个子网。

开始之前,请确保已创建 VPC 和子网。

在控制台中创建网络 ACL

要在 IBM Cloud 控制台中配置 ACL,请执行以下步骤:

  1. 转至 IBM Cloud 控制台 并登录到您的帐户。

  2. 选择导航菜单 图标,然后单击基础设施 > 网络 > 访问控制列表

  3. 单击创建 +

  4. 选择 编辑位置 图标 "编辑位置" 图标,然后输入以下字段的值:

    • 地理位置-为您的访问控制表选择大陆。
    • 区域-选择访问控制表的区域。
  5. 为详细信息下的以下字段输入值:

    • 公共网关名称-输入访问控制表的唯一名称。
    • 资源组-选择访问控制表的资源组。 您可以使用此访问控制表的缺省组,或者从资源组列表 (如果已定义) 中进行选择。 有关更多信息,请参阅在资源组中组织资源的最佳实践

    调配完成后,不能更改资源组。

    • 标记-添加用户标记。 用户标记在帐户范围内可见。 有关更多信息,请参阅使用标记
    • 访问管理标记-添加访问管理标记以帮助组织访问控制关系。 有关更多信息,请参阅 使用标记控制对资源的访问
    • VPC- 选择一个 VPC。 您可以对此公共网关使用缺省 VPC,或者从列表中进行选择 (如果已定义)。 有关详细信息,请参阅 虚拟专用云入门
  6. 在“规则”下,单击“创建 +”配置入站和出站规则,以定义允许哪些流量进入或流出子网。 对于每个规则,请指定以下信息:

    • 选择是允许还是拒绝指定的流量。
    • 选择应用规则的协议。
    • 对于规则的源和目标,请指定应用规则的 IP 范围和端口。 例如,如果希望允许所有入站流量到达子网中的 IP 范围 192.168.0.0/24,请将 任何 指定为源,将 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 的标识。
  • --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 允许 全部 10.10.20.0/24,任何端口 任何 IP,任何端口
3 拒绝 全部 任何 IP,任何端口 任何 IP,任何端口

然后,配置以下出站规则:

  • 允许 HTTP 流量上网。
  • 允许所有出站流量进入子网 10.10.20.0/24
  • 拒绝所有其他出站流量。
配置出站规则的信息。
优先级 允许/拒绝 协议 目标
1 允许 TCP 任何 IP,任何端口 任何 IP,端口 80-80
2 允许 全部 任何 IP,任何端口 10.10.20.0/24,任何端口
3 拒绝 全部 任何 IP,任何端口 任何 IP,任何端口