容器映像(container image)是开发人员创建并注册的程序包(package),包含在容器中运行所需的所有文件(通常采layering分层方式组织)。映像(image) 通常包含很多 层(layer),例如最小化的作业系统(OS)核心(又称基础层base layer),应用程序框架和自定义的代码。
即使容器 主机(host) 可以直接联系一个 登录中心(registry) 以取得映像并将其部署到一个容器中,容器的 协调器(orchestrators),如Kubernetes (K8S)、Docker Swarm及Mesos等,可以自动化部署过程,从登录中心下载映像、将其部署到容器,并管理容器运行等。
容器就像是"宠物、牛、鸡和昆虫"这个比喻中的鸡,它的部署主要是为了弹性(Elasticity)。所谓的弹性是指“规模可以自动放大并缩小(scale out and scale in)”和“性能可以自动升级与降级(scale up and scale down)”的能力。
我们会细心地照顾我们的宠物(pets),但会毫不後悔地杀死并吃掉了牛与鸡等动物。虚拟主机(VM)和容器都像是动物一样,可以根据我们的决定随时销毁、更换和增加的工作负载(workload)。然而,不变性(Immutability) 和 无状态(stateless) 是容器实现 弹性(Elasticity) 的两个关键属性。
不变性是指“随着时间的流逝不变或无法改变。”(Google) 我们可以将容器视为唯读;更新容器的唯一方法是用新容器将旧的取代。无状态意味着容器不会在其本地存储中保留数据;但是,远程存储库可用於在容器之间保留(persist)和共享状态。
大多数应用程序容器技术都实现了不变性的概念。换句话说,容器本身应作为已部署但未更改的无状态实体进行操作。当需要升级正在运行的容器或更改其内容时,只需将其销毁并替换为具有更新的新容器即可。
资料来源: NIST SP 800-192
覆盖网络通常用於隔离节点之间的流量。然而,这可能会导致非容器感知防御工具难以监控流量。
在某些情况下,适合将相同目的、敏感性和 威胁态势(threat posture) 的容器分组後,部署在同一个主机(host)上。但是,它并不适用於不具有相同安全要求的容器。
仅将具有相同目的,敏感性和威胁状态的容器分组在一个主机OS内核上,以允许进行深度防御。
按用途,敏感度和威胁状态对容器进行细分,可以提供更多的深度防御。可以通过使用多个物理服务器来提供此分段,但是现代虚拟机管理程序还提供了足够强大的隔离度,可以有效地缓解这些风险。
资料来源: NIST SP 800-192
NIST建议组织应遵循以下建议,以帮助确保其容器技术实施和使用的安全性:
我的新书 《追求高效能的CISSP:安全和风险管理》可帮助CISSP有志者建立可靠的概念安全模型。它不仅是信息安全的教程,还是CISSP考试的学习指南,也是安全专业人员的参考资料。
原始来源: The Basics of Containerization
还记得我们在 Day 14 的例子吗? 这是一个比较符合现实情境的 Input 元件状态,只有当 i...
Agenda 资安宣言 测试环境与工具 前情提要 技术原理 下期预告 资安宣言 撰写本系列文章目的在...
昨天 Day 14 跟大家介绍了 React Hooks 的基本概念之後,今天就要马上带大家来看第...
CSS背景属性 可以给页面元素添加背景样式 背景属性可设置背景颜色、背景图片、背景平舖、背景图片位置...
前言 今天, 是系列文的小小里程碑, 我们终於在今天找出了 task 的其中一种非同步演算法。 他被...