这篇文章将向你介绍 SPIRE 的架构、基本概念及原理。
SPIRE 是 SPIFFE API[1] 的一个生产就绪的实现,它执行节点和工作负载认证,以便根据一组预先定义的条件,安全地向工作负载发出 SVID,并验证其他工作负载的 SVID。
SPIFFE,即 Secure Production Identity Framework for Everyone,是一套开源标准,用于在动态和异构环境中安全地进行身份识别。采用 SPIFFE 的系统无论在哪里运行,都可以轻松可靠地相互认证。
SPIRE 架构和组件
SPIRE 部署由一个 SPIRE 服务器和一个或多个 SPIRE 代理组成。服务器充当通过代理向一组工作负载发放身份的签名机构。它还维护一个工作负载身份的注册表,以及为签发这些身份而必须验证的条件。代理在本地向工作负载公开 SPIFFE 工作负载 API,必须安装在工作负载运行的每个节点上。

服务器
SPIRE 服务器负责管理和发布其配置的 SPIFFE 信任域中的所有身份。它存储注册条目(指定决定特定 SPIFFE ID 应被签发的条件的选择器)和签名密钥,使用节点证明来自动验证代理的身份,并在被验证的代理请求时为工作负载创建 SVID。

服务器的行为是通过一系列的插件决定的。SPIRE 包含几个插件,你可以建立额外的插件来扩展 SPIRE 以满足特定的使用情况。插件的类型包括:
• 节点证明器插件:与代理节点证明器一起,验证代理运行的节点的身份。
• 节点解析器插件:它通过验证关于节点的额外属性来扩展服务器可以用来识别节点的选择器集合。
• 数据存储插件:服务器用它来存储、查询和更新各种信息,如注册条目、哪些节点已认证、这些节点的选择器是什么。有一个内置的数据存储插件,可以使用 MySQL、SQLite3 或