用于隔离和边界保护的多网格部署
将需要隔离的环境部署到单独的网格中,并通过网格联合启用网格间通信。
各种合规性标准要求保护敏感数据环境。以下表格列出了一些重要的标准及其保护的敏感数据类型。
标准 | 敏感数据 |
---|---|
PCI DSS | 支付卡数据 |
FedRAMP | 联邦信息、数据和元数据 |
HIPAA | 个人健康数据 |
GDPR | 个人数据 |
例如,PCI DSS 建议将持卡人数据环境放在与系统其余部分分开的网络上。它还要求使用DMZ,并在公共互联网与 DMZ 之间以及 DMZ 与内部网络之间设置防火墙。
将敏感数据环境与其他信息系统隔离可以缩小合规性检查的范围并提高敏感数据的安全性。根据合规性要求,缩小范围可以降低合规性检查失败的风险,并降低合规成本,因为需要检查和保护的组件更少。
您可以通过将处理这些数据的应用程序部分分离到一个单独的服务网格(最好在单独的网络上),然后在多网格部署中将具有不同合规性要求的网格连接起来,来实现敏感数据的隔离。连接网格间应用程序的过程称为网格联合。
请注意,使用网格联合创建多网格部署与创建多集群部署非常不同,后者定义了一个由跨越多个集群的服务组成的单个服务网格。与多网格不同,多集群部署不适用于需要隔离和边界保护的应用程序。
在这篇博文中,我将描述隔离和边界保护的要求,并概述多网格部署的原则。最后,我将简要介绍 Istio 目前对网格联合的支持以及正在进行的自动化工作。
隔离和边界保护
隔离和边界保护机制在NIST 特别出版物 800-53,修订版 4,联邦信息系统和组织的安全和隐私控制,附录 F,安全控制目录,SC-7 边界保护中进行了说明。
特别是,边界保护,信息系统组件的隔离控制增强功能
各种合规性标准建议将处理敏感数据的环境与组织的其余部分隔离。 支付卡行业 (PCI) 数据安全标准 建议对持卡人数据环境实施网络隔离,并要求将此环境与DMZ隔离。FedRAMP 授权边界指南 描述了联邦信息和数据的授权边界,而NIST 特别出版物 800-37,修订版 2,信息系统和组织的风险管理框架:安全和隐私的生命周期方法建议在附录 G,授权边界注意事项中保护此类边界。
边界保护,特别是指
- 在边界处设置访问控制机制(防火墙、网关等)
- 监控边界处的传入/传出流量
- 所有访问控制机制默认必须为拒绝所有
- 不要从边界公开私有 IP 地址
- 不要让边界外的组件影响边界内的安全性
多网格部署有助于将系统划分为具有不同安全和合规性要求的子系统,并促进边界保护。您将每个子系统放入一个单独的服务网格中,最好在单独的网络上。您使用网关连接 Istio 网格。网关监控和控制每个网格边界处的跨网格流量。
多网格部署的功能
- 非统一命名。一个网格中
accounts
命名空间中的withdraw
服务可能与其他网格中accounts
命名空间中的withdraw
服务具有不同的功能和 API。这种情况可能发生在组织中没有关于命名空间和服务命名的统一策略,或者网格属于不同组织时。 - 默认情况下不公开。默认情况下,网格中的任何服务都不会公开,网格所有者必须明确指定要公开哪些服务。
- 边界保护。必须在入口网关处执行流量的访问控制,以阻止禁止的流量进入网格。此要求实现了纵深防御原则,并且是某些合规性标准(例如支付卡行业 (PCI) 数据安全标准)的一部分。
- 可能不存在共同信任。由于某些安全要求或网格所有者最初没有计划联合网格,因此一个网格中的 Istio sidecar 可能不信任其他网格中的 Citadel 证书。
虽然默认情况下不公开和边界保护是促进合规性和提高安全性的必要条件,但非统一命名和可能不存在共同信任在连接不同组织的网格或无法执行统一命名或无法或可能未在网格之间建立共同信任的组织时是必需的。
您可能想要使用的一个可选功能是服务位置透明性:使用本地服务名称,使用服务的客户端向远程网格中的公开服务发送请求。使用服务的客户端不知道某些目标位于远程网格中,而某些是本地服务。访问是统一的,使用本地服务名称,例如,在 Kubernetes 中,reviews.default.svc.cluster.local
。服务位置透明性在您需要能够更改使用服务的客户端的服务位置的情况下非常有用,例如,当某些服务从私有云迁移到公共云时,无需更改应用程序的代码。
当前的网格联合工作
虽然您今天可以使用标准的 Istio 配置执行网格联合,但这需要编写大量的样板 YAML 文件,并且容易出错。目前正在努力使网格联合过程自动化。同时,您可以查看这些多网格部署示例,以了解生成的联合可能包含的内容。
总结
在这篇博文中,我描述了使用 Istio 多网格部署隔离和保护敏感数据环境的要求。我概述了 Istio 多网格部署的原则,并报告了 Istio 中网格联合的当前工作。
我很乐意听到您对多网格和多集群在discuss.istio.io上的意见。