容器化基本概念

Container Technology Architecture

容器映像(container image)是开发人员创建并注册的程序包(package),包含在容器中运行所需的所有文件(通常采layering分层方式组织)。映像(image) 通常包含很多 层(layer),例如最小化的作业系统(OS)核心(又称基础层base layer),应用程序框架和自定义的代码。

即使容器 主机(host) 可以直接联系一个 登录中心(registry) 以取得映像并将其部署到一个容器中,容器的 协调器(orchestrators),如Kubernetes (K8S)、Docker Swarm及Mesos等,可以自动化部署过程,从登录中心下载映像、将其部署到容器,并管理容器运行等。

不变性(Immutability)和弹性(Elasticity)

容器就像是"宠物、牛、鸡和昆虫"这个比喻中的鸡,它的部署主要是为了弹性(Elasticity)。所谓的弹性是指“规模可以自动放大并缩小(scale out and scale in)”和“性能可以自动升级与降级(scale up and scale down)”的能力。

我们会细心地照顾我们的宠物(pets),但会毫不後悔地杀死并吃掉了牛与鸡等动物。虚拟主机(VM)和容器都像是动物一样,可以根据我们的决定随时销毁、更换和增加的工作负载(workload)。然而,不变性(Immutability)无状态(stateless) 是容器实现 弹性(Elasticity) 的两个关键属性。

不变性是指“随着时间的流逝不变或无法改变。”(Google) 我们可以将容器视为唯读;更新容器的唯一方法是用新容器将旧的取代。无状态意味着容器不会在其本地存储中保留数据;但是,远程存储库可用於在容器之间保留(persist)和共享状态。

大多数应用程序容器技术都实现了不变性的概念。换句话说,容器本身应作为已部署但未更改的无状态实体进行操作。当需要升级正在运行的容器或更改其内容时,只需将其销毁并替换为具有更新的新容器即可。
资料来源: NIST SP 800-192

叠加网路 (Overlay Network)

覆盖网络通常用於隔离节点之间的流量。然而,这可能会导致非容器感知防御工具难以监控流量。

分割(Segmenting)和分组(Grouping)容器

在某些情况下,适合将相同目的敏感性威胁态势(threat posture) 的容器分组後,部署在同一个主机(host)上。但是,它并不适用於不具有相同安全要求的容器。

仅将具有相同目的,敏感性和威胁状态的容器分组在一个主机OS内核上,以允许进行深度防御。
按用途,敏感度和威胁状态对容器进行细分,可以提供更多的深度防御。可以通过使用多个物理服务器来提供此分段,但是现代虚拟机管理程序还提供了足够强大的隔离度,可以有效地缓解这些风险。
资料来源: NIST SP 800-192

NIST应用程序容器安全性指南

NIST建议组织应遵循以下建议,以帮助确保其容器技术实施和使用的安全性:

  1. 量身定制组织的运营文化技术流程,以支持通过容器实现的新的开发,运行和支持应用程序的方式。
  2. 使用容器特定的主机操作系统而不是通用的主机操作系统来减少攻击面。
  3. 仅将具有相同目的,敏感性和威胁状态的容器分组在单个主机OS内核上,以允许进行进一步的防御。
  4. 为映像采用 特定於容器(container-specific) 的漏洞管理工具和过程,以防止资安事故。
  5. 考虑使用基於硬件的对策为可信计算提供基础。
  6. 使用 容器感知(container-aware) 的运行时防御工具。

参考

  1. 什麽是容器安全性?
  2. NIST SP 800-192(应用程序容器安全性指南)
  3. 容器安全指南–您需要知道的一切
  4. 宠物和牛的比喻展示了无服务器如何适应软件基础架构的前景
  5. 宠物与牛的历史以及如何正确使用类比
  6. 弹性
  7. 自动化弹性

CISSP成功的蓝图

我的新书 《追求高效能的CISSP:安全和风险管理》可帮助CISSP有志者建立可靠的概念安全模型。它不仅是信息安全的教程,还是CISSP考试的学习指南,也是安全专业人员的参考资料。

原始来源: The Basics of Containerization


<<:  职位描述 (job description)

>>:  [Vue2] 从初学到放弃 Day3-Vue架构

Day24 - 在 XState 中的阶层式状态 Hierarchical States

还记得我们在 Day 14 的例子吗? 这是一个比较符合现实情境的 Input 元件状态,只有当 i...

【Day 12】- 找出看不见也摸不着的 Process,终极办法!

Agenda 资安宣言 测试环境与工具 前情提要 技术原理 下期预告 资安宣言 撰写本系列文章目的在...

[ Day 15 ] React Hooks 中的 useState

昨天 Day 14 跟大家介绍了 React Hooks 的基本概念之後,今天就要马上带大家来看第...

Day 09 CSS <背景属性>

CSS背景属性 可以给页面元素添加背景样式 背景属性可设置背景颜色、背景图片、背景平舖、背景图片位置...

[Day 10] .Net Task 底层(3)

前言 今天, 是系列文的小小里程碑, 我们终於在今天找出了 task 的其中一种非同步演算法。 他被...