创建安全政策规则

本页介绍了基础设施运营商 (IO) 如何创建和配置安全政策规则,以管理组织中的流量,并为客户工作负载流量启用入侵检测和防御系统 (IDPS)。您可以通过 Firewall API 使用 SecurityPolicyRule 自定义资源配置安全政策规则。

准备工作

在继续之前,请确保您已准备好以下内容:

  • 包含 kustomization.yaml 文件的 iac 代码库。
  • 一个名为 security-policy-rule 的文件夹,用于存储包含安全政策规则的文件。

允许任何地址访问组织

您可以通过以下两种方式创建安全政策规则。

创建具有 IP 地址范围或 IP 地址网络掩码的安全政策规则

  1. AddressGroup 资源创建 YAML 文件。AddressGroup 包含可供 SecurityPolicyRule 使用的 IP 地址范围或 IP 地址网络掩码。

  2. 添加以下内容以创建 AddressGroup 自定义资源:

    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: AddressGroup
    metadata:
      labels:
        firewall.private.gdc.goog/type: idps
      name: SOURCE_AG_OBJECT_NAME
      namespace: NAMESPACE
    spec:
      addressGroupName: SOURCE_ADDRESS_GROUP
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      members:
      - name: SOURCE_MEMBER_NAME
        type: SOURCE_MEMBER_TYPE
        value: SOURCE_MEMBER_VALUE
    ---
    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: AddressGroup
    metadata:
      labels:
        firewall.private.gdc.goog/type: idps
      name: DESTINATION_AG_OBJECT_NAME
      namespace: NAMESPACE
    spec:
      addressGroupName: DESTINATION_ADDRESS_GROUP
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      members:
      - name: DESTINATION_MEMBER_NAME
        type: DESTINATION_MEMBER_TYPE
        value: DESTINATION_MEMBER_VALUE
    
  3. 保存地址组并将其存储在 security-policy-rule 文件夹中。

  4. 添加以下内容以创建 SecurityPolicyRule 自定义资源:

    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: SecurityPolicyRule
    metadata:
      labels:
        firewall.private.gdc.goog/policy-type: idps
      name: RULE_NAME
      namespace: NAMESPACE
    spec:
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      priority: PRIORITY
      source:
        zones:
        - SOURCE_ZONE
        addresses:
        - SOURCE_ADDRESS_GROUP
      destination:
        zones:
        - DESTINATION_ZONE
        addresses:
        - DESTINATION_ADDRESS_GROUP
      action: ACTION
      service:
        option: OPTION
        ports:
        - protocol: PROTOCOL
          ports: "PORT"
      profile:
        type: PROFILE_TYPE
    

    执行以下变量替换操作:

    变量 说明
    SOURCE_AG_OBJECT_NAME 地址组对象的名称。例如 vsys2-org-1-org-infra-group
    NAMESPACE 命名空间必须与组织的名称一致。例如 org-1
    SOURCE_ADDRESS_GROUP 包含源 IP 地址的地址组的名称。例如 org-infra-group
    FIREWALL_VIRTUAL_SYSTEM_NAME 与组织关联的防火墙虚拟系统的名称。例如 vsys2-org-1。使用 kubectl get firewallvirtualsystems -A 列出所有虚拟系统名称。
    SOURCE_MEMBER_NAME 地址组中成员的名称。例如 org-infra-group-0。可以有多个成员,每个成员都有唯一的名称。
    SOURCE_MEMBER_TYPE 地址组中成员的类型。可用的值包括 IPRangeIPNetmask
    SOURCE_MEMBER_VALUE 成员中的 IP 地址。例如,如果会员类型为 IPNetmask,则值可以是 169.254.0.0/21。如果成员类型为 IPrange,则值可以是 192.168.1.1-192.168.1.10
    DESTINATION_AG_OBJECT_NAME 地址组对象的名称。例如 vsys2-org-1-org-data-external-all-group
    DESTINATION_ADDRESS_GROUP 包含源 IP 地址的地址组的名称。例如 org-data-external-all-group
    DESTINATION_MEMBER_NAME 地址组中成员的名称。例如 org-data-external-all-group-0。可以有多个成员,每个成员都有唯一的名称。
    DESTINATION_MEMBER_TYPE 地址组中成员的类型。可用的值包括 IPRangeIPNetmask
    DESTINATION_MEMBER_VALUE 成员中的 IP 地址。例如,如果会员类型为 IPNetmask,则值可以是 169.254.0.0/21。如果成员类型为 IPrange,则值可以是 192.168.1.1-192.168.1.10
    RULE_NAME 规则的名称。例如 allow-ingress-org-1
    PRIORITY 介于 100060000 之间的整数,用于定义优先级。最高优先级为 1000,最低优先级为 60000。此示例使用最高优先级 1000
    SOURCE_ZONE 流量的来源防火墙区域。例如 vsys2-oc
    DESTINATION_ZONE 流量的目标防火墙区域。例如 vsys2-gpc
    ACTION 用于定义是允许还是拒绝流量的操作。例如,使用操作 allow
    OPTION 用于设置服务的选项。用于设置服务的可选值包括:
    • any:定义使用任何端口。
    • application-default:应用的默认端口。
    • selected:您选择的协议和端口。
    PROTOCOL 您定义的网络协议。例如,TCPUDP 等协议
    PORT 端口号。例如 1234
    PROFILE_TYPE 配置文件的类型,例如 nonegroupprofiles
  5. 将安全政策规则保存并存储在 security-policy-rule 文件夹中。

  6. 前往您的 iac 代码库,并将安全政策规则提交到 main 分支。

    ls IAC_REPO_PATH/iac/infrastructure/global/orgs/root/kustomization.yaml
    

    如果该文件不存在,请按照使用 IAC 创建组织中的步骤 8 到 12 操作。

  7. 按照 runbook FW-G0003 中的第 3 步触发防火墙完整配置替换来处理防火墙配置替换。

创建具有特定 IP 地址的安全政策规则

  1. SecurityPolicyRule 资源创建 YAML 文件。

  2. 添加以下内容以创建 SecurityPolicyRule 自定义资源:

    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: SecurityPolicyRule
    metadata:
      labels:
        firewall.private.gdc.goog/policy-type: idps
      name: RULE_NAME
      namespace: NAMESPACE
    spec:
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      priority: PRIORITY
      source:
        zones:
        - SOURCE_ZONE
        addresses:
        - SOURCE_IP_ADDRESS
      destination:
        zones:
        - DESTINATION_ZONE
        addresses:
        - DESTINATION_IP_ADDRESS
      action: ACTION
      service:
        option: OPTION
        ports:
        - protocol: PROTOCOL
          ports: "PORT"
      profile:
        type: PROFILE_TYPE
    

    执行以下变量替换操作:

    变量 说明
    RULE_NAME 规则的名称。例如 allow-ingress-org-1
    NAMESPACE 命名空间必须与组织的名称一致。例如 org-1
    FIREWALL_VIRTUAL_SYSTEM_NAME 防火墙的名称。例如 vsys2-org1
    PRIORITY 介于 100060000 之间的整数,用于定义优先级。最高优先级为 1000,最低优先级为 60000。例如,如果规则需要最高优先级,请使用 1000
    SOURCE_ZONE 流量的来源防火墙区域。例如 vsys2-oc
    SOURCE_IP_ADDRESS 允许流量通过的 IP 地址。IP 地址格式可以是单个 IP 地址 10.250.10.1、无类别域间路由 (CIDR) 10.250.10.0/27、IP 地址范围 10.250.10.1-10.250.10.8any

    例如,172.21.0.0/20 表示 172.21.0.0/20 CIDR 中的任何源 IP 地址都与此规则匹配。
    DESTINATION_ZONE 流量的目标防火墙区域。例如 vsys2-gpc
    DESTINATION_IP_ADDRESS 允许流量通过的 IP 地址。IP 地址格式可以是单个 IP 地址 10.250.10.1、无类别域间路由 (CIDR) 10.250.10.0/27、IP 地址范围 10.250.10.1-10.250.10.8any

    例如,值 any 表示任何目标 IP 地址都将与该规则匹配。
    ACTION 用于定义是allow还是deny流量的操作。例如,allow 允许流量。
    OPTION 用于设置服务的选项。用于设置服务的可选值包括:
    • any:定义使用任何端口。
    • application-default:应用的默认端口。
    • selected:您选择的协议和端口。
    如需了解详情,请参阅 API 参考文档
    PROTOCOL 您定义的网络协议。例如,TCP 表示传输控制协议。
    PORT 端口号。例如 443
    PROFILE_TYPE 配置文件的类型,例如 nonegroupprofiles。例如,使用 none 的配置文件类型意味着不应用任何 IDPS。
  3. 将安全政策规则保存并存储在 security-policy-rule 文件夹中。

  4. 前往您的 iac 代码库,并将安全政策规则提交到 main 分支。

    ls IAC_REPO_PATH/iac/infrastructure/global/orgs/root/kustomization.yaml
    

    如果该文件不存在,请按照使用 IAC 创建组织中的步骤 8 到 12 操作。

  5. 按照 runbook FW-G0003 中的第 3 步触发防火墙完整配置替换来处理防火墙配置替换。