SPIRE(SPIFFE 运行时环境。)是一个 API 工具链,用于在各种托管平台上的软件系统之间建立信任。SPIRE 公开了 SPIFFE Workload API,该 API 可以证明正在运行的软件系统并向其发布 SPIFFE ID 和 SVID。这进而允许两个工作负载在彼此之间建立信任,例如通过建立 mTLS 连接或通过签名和验证 JWT 令牌。 SPIRE 还可以使工作负载安全地对秘密存储、数据库或云提供商服务进行身份验证。
SPIFFE (Secure Production Identity Framework For Everyone) 以特制的 X.509 证书形式为现代生产环境中的每个工作负载提供安全标识。SPIFFE 消除了对应用程序级身份验证和复杂网络级 ACL 配置的需求。SPIFFE 标准是许多 CNCF 参与者和其他相关方,聚集在一起提出的共同方法,以便服务彼此呈现和授权他们的身份。
一个 SPIRE 部署由一个 SPIRE 服务器和一个或多个 SPIRE 代理组成。服务器充当通过代理发布给一组工作负载的身份的签名授权机构。它还维护一个工作负载标识注册表,并且必须核实这些标识才能发布这些标识。代理将 SPIFFE Workload API 本地公开给工作负载,并且必须将其安装在运行工作负载的每个节点上。
SPIRE Server 负责管理和发布其配置的 SPIFFE 信任域中的所有身份。它存储注册条目(用于指定确定特定 SPIFFE ID发出条件的选择器)和签名密钥,使用节点证明自动认证代理的身份,并在经过认证的代理请求时为工作负载创建 SVID。
SPIRE Agent 在已确定工作负载的每个节点上运行:
- 从服务器请求 SVID 并缓存它们,直到工作负载请求其 SVID
- 将 SPIFFE Workload API 暴露给节点上的工作负载,并证明调用它的工作负载的身份
- 提供已识别的工作负载及其 SVID