您可以通过 Neutron 安全组强制实施 NSX Data Center for vSphere 安全策略。此功能还可用于插入第三方网络服务。

提供商安全组和标准安全组都可以使用 NSX Data Center for vSphere 安全策略。基于规则的提供商安全组和标准安全组也可以与基于安全策略的安全组结合使用。但是,与安全策略相关联的安全组也不能包含规则。

安全策略优先于所有安全组规则。如果在端口上强制实施多个安全策略,则强制实施策略的顺序由 NSX Data Center for vSphere 确定。您可以在 vSphere Client 中的安全 > 防火墙页面的网络和安全下更改顺序。

前提条件

NSX Data Center for vSphere 中创建所需的安全策略。请参见《NSX 管理指南》中的创建安全策略

过程

  1. root 用户身份登录到 Integrated OpenStack Manager
    ssh root@mgmt-server-ip
  2. 修改 Neutron 配置。
    viocli update neutron
  3. nsxv 部分中,添加 use_nsx_policiesdefault_policy_idallow_tenant_rules_with_policy 参数并对其进行配置。
    选项 说明

    use_nsx_policies

    输入 true

    default_policy_id

    输入要与新项目的默认安全组相关联的 NSX Data Center for vSphere 安全策略的 ID。如果您不希望默认使用安全策略,则可以将此参数保持注释掉状态。

    要查找安全策略的 ID,请登录到 vSphere Client,然后选择菜单 > 网络连接和安全性。单击 Service Composer,然后打开安全策略选项卡。单击表左下角的显示列图标。选择对象 ID,然后单击确定。每个安全策略的 ID 都将显示在表中。

    allow_tenant_rules_with_policy

    输入 true 以允许租户创建安全组和规则,或者输入 false 以阻止租户创建安全组或规则。

    现在,配置文件看起来类似于以下内容:

    conf:
      [...]
      plugins:
        nsx:
          [...]
          nsxv:
            use_nsx_policies: true
            default_policy_id: policy-5
            allow_tenant_rules_with_policy: true
    
  4. 如果要将其他安全组与安全策略一起使用,则可以执行以下步骤:
    • 要将 NSX Data Center for vSphere 安全策略与新安全组相关联,请在创建组时指定所需的策略:
      toolbox
      export OS_PASSWORD=admin-account-password
      neutron security-group-create security-group-name --tenant-id tenant-uuid --policy=policy-id
    • 要将现有安全组迁移到基于安全策略的组,请从 Neutron 服务器运行以下命令:
      kubectl -n openstack exec -it neutron-server-pod-name -- /bin/bash
      nsxadmin -r security-groups -o migrate-to-policy --property policy-id=policy-id --property security-group-id=security-group-uuid
      注: 此命令会从指定的安全组中移除所有规则。请确保配置目标策略以便不会中断网络连接。
  5. 配置 Neutron 以使 NSX Data Center for vSphere 安全策略的优先级高于安全组。
    kubectl -n openstack exec -it neutron-server-pod-name -- /bin/bash
    sudo -u neutron nsxadmin --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/vmware/nsx.ini -r firewall-sections -o nsx-reorder