Tungsten Fabric架构解析丨TF基于应用程序的安全策略



  • Hi!这里是Tungsten Fabric架构解析内容的最后一篇,介绍TF基于应用程序的安全策略。
    
    Tungsten Fabric架构解析系列文章,由TF中文社区为你呈现,旨在帮助初入TF社区的朋友答疑解惑。我们将系统介绍TF有哪些特点、如何运作、如何收集/分析/部署、如何编排、如何连接到物理网络等话题。
    
    欢迎大家在后台留言给我们,把你最希望了解的问题告诉我们,小编去帮你寻找答案。想看前期已发布的文章,请留意文末链接。
    

    常规防火墙策略包含基于单个IP地址或子网范围的规则。在任何规模的数据中心中,这都会导致防火墙规则的激增,这些规则在创建时难以管理,在故障排除时也难以理解。

    这是因为服务器或VM的IP地址与应用程序、应用程序所有者、位置或任何其他属性无关。例如,考虑一个拥有两个数据中心并在开发和生产中部署三层应用程序的企业,如下图所示。

    0f5fbdc1-e5dc-48a2-a05e-c1181a26ce25-image.png

    在该企业中,要求每层应用程序的每个实例只能与同一实例中的下一层实例通信。如图所示,这需要针对每个应用程序实例的单独的策略。

    在解决问题时,管理员必须知道IP地址和应用程序实例之间的关系,并且每次部署新实例时,都必须编写新的防火墙规则。

    应用标签
    Tungsten Fabric控制器支持基于标签的安全策略,可应用于项目、网络、vRouters、VM和接口。

    标签在对象模型中,传播到应用了标签的对象中包含的所有对象,并且在包含层次结构的较低级别应用的标签,优先于在较高级别应用的标签。标签具有名称和值。许多标签名称作为Tungsten Fabric发布版本的一部分。

    下表显示了标签类型的典型用途:

    ab35f5f8-121a-4751-8373-1af9f1adc944-image.png

    如表中所示,除了Tungsten Fabric提供的标签类型之外,用户还可以根据需要创建自己的自定义标签名称,并且有一个_label _type标签,可用于更精细地调整数据流。

    创建应用程序策略
    应用程序策略包含基于标记值和服务组的规则,这些值是TCP或UDP端口号的集合。

    首先,安全管理员为应用程序堆栈分配类型为_application _的标签,并为应用程序的每个软件组件分配类型为_tier _的标签。如下图所示。

    ffce30ae-34a7-4f74-b4fe-f8147594ecf5-image.png

    在此示例中,应用程序被标记为FinancePortal _,层被标记为_web,app_和_db。Service组已为进入应用程序堆栈以及每一层之间的流量创建。

    然后,安全管理员创建一个名为_Portal-3-Tier _containing规则的应用程序策略,该策略将仅允许所需的流量。

    接下来,应用程序策略集与应用程序标记_FinancePortal关联,并包含应用程序策略_Portal-3-Tier。

    此时,可以启动应用程序堆栈,并将标签应用于Tungsten Fabric控制器中的各个VM。这会导致控制器计算需要将哪些路由发送到每个vRouter以强制执行应用程序策略集,并将这些路由发送到每个vRouter。

    如果每个软件组件都有一个实例,则每个vRouter中的路由表如下:

    9a763227-8a7e-4f68-a382-efe15ce2e581-image.png

    网络和虚拟机在这里被命名为它们所在的层。实际上,实体名称和层之间的关系通常不会那么简单。

    从表中可以看出,路由仅启用应用策略中指定的流量,但此处基于标签的规则已转换为vRouter能够应用的基于网络地址的防火墙规则。

    控制部署之间的流量

    成功创建应用程序堆栈之后,让我们看一下创建堆栈的另一个部署时会发生什么,如下所示。

    cacb3221-29a8-478a-ac9a-e105aabc0dfe-image.png

    原始策略中没有任何内容阻止流量在一个部署中的层之间流动到另一个部署中的层。

    可以通过以下方式来修改此行为:使用_deployment _tag标记每个堆栈的每个组件,并在应用程序策略中添加_match _condition来允许流量仅在部署标签匹配时才在层之间流动。

    更新后的政策如下所示:

    9136ac08-c725-4e78-a259-3c4c3bc65858-image.png

    现在,流量符合严格的要求,即流量仅在同一堆栈内的组件之间流动。

    更高级的应用程序策略
    通过应用不同类型的标签,可以将安全策略应用于多个维度,所有这些都可以在单个策略中应用。

    例如,在下图中,单个策略可以根据站点对单个堆栈内的流量进行分段,但允许在站点内共享数据库层。

    e6f5daab-1168-47b9-ab21-a2b7dc47f6c8-image.png

    如果在相同的站点和部署组合中部署了多个堆栈,则可以创建实例名称的自定义标签,并且可以使用实例标签上的匹配条件来创建所需的限制,如下图所示。

    ed89b2e3-c103-4069-a046-c0da5fb7febd-image.png

    Tungsten Fabric中的应用程序策略功能提供了一个非常强大的实施框架,同时可以显着简化策略并减少其数量。

    至此,Tungsten Fabric Carbide架构解析系列文章连载完毕,往期回顾——

    第一篇:TF主要特点和用例
    第二篇:TF怎么运作
    第三篇:详解vRouter体系结构
    第四篇:TF的服务链
    第五篇:vRouter的部署选项
    第六篇:TF如何收集、分析、部署?
    第七篇:TF如何编排
    第八篇:TF支持API一览
    第九篇:TF如何连接到物理网络?


Log in to reply