SPIFFE目前被各种项目用于发行(issue)和消费(consume)SPIFFE ID。 发行者 SPIRE项目 SPIRE是一个开源工具链,可在各种环境中实现SPIFFE规范。...了解更多: https://spiffe.io/spire Istio Citadel Istio Citadel 发布所有工作负载的SPIFFE ID。...规范建立服务身份,使Consul Connect服务能够与其他符合SPIFFE标准的系统连接。...了解更多: https://github.com/square/ghostunnel ---- spiffe.io最近发布了新的主页。例如,“谁使用SPIFFE?”...了解更多: https://github.com/spiffe/new-website
https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Workload_API.md SPIRE的实验支持 虽然它尚未正式标准化为SPIFFE...网络中断容错 每次SPIFFE实现,从同等的SPIFFE实现,导入新证书时,它都会使用上一个已知捆绑包对连接进行身份验证。...加入SPIFFE Slack与专家讨论SPIFFE。 加入SPIFFE SIG-SPEC双月会议,设计SPIFFE联邦会的未来。 (不久将有一个单独的联邦工作组。)...https://github.com/spiffe/spiffe-example/tree/master/java-spiffe-federation-jboss http://spiffe.slack.com.../ https://github.com/spiffe/spiffe
://spiffe.dom/server-node Token: [Token Hash] 上面命令生成了一个 Token,其 SPIFFE ID 为 spiffe://spiffe.dom/server-node...://spiffe.dom/ghost \ -parentID spiffe://spiffe.dom/server-node Entry ID : fe4b1fd5-9e0a-...440b-b08e-5c2c886b6a6e SPIFFE ID : spiffe://spiffe.dom/ghost Parent ID : spiffe://spiffe.dom...而 --allow-uri 参数则是一种访问控制手段,此处是允许 spiffe://spiffe.dom/curl 的 SPIFFE ID 访问本服务。...50911ef7-f191-4917-adde-1bf4e6192002 SPIFFE ID : spiffe://spiffe.dom/curl Parent ID : spiffe
SPIRE(SPIFFE 运行时环境, SPIFFE Runtime Environment)是在各种平台上实现 SPIFFE 规范的代码,并为身份的发布实施多因素证明。...“看到 SPIFFE 和 SPIRE 项目的发展,真是令人肃然起敬。现代 SPIFFE 帮助为拥有数十亿月活跃用户的世界上最大的超级计算机和社交平台提供动力,其覆盖范围和规模令人难以置信。...SPIFFE 和 SPIRE 是非常简单优雅的技术之一。这只是开始;还会有更多。我很高兴看到 SPIFFE 在 CNCF 毕业。”...祝贺 SPIFFE/SPIRE 社区在 CNCF 毕业。”...参考资料 [1] SPIFFE: https://github.com/spiffe/spiffe [2] SPIRE: https://github.com/spiffe/spire [3] 毕业项目
最近,Cure53 完成了SPIRE 的审计[1],SPIRE 是 SPIFFE 项目的一部分。...SPIRE(SPIFFE Runtime Environment)是一个 API 工具链,用于跨各种托管平台在软件系统之间建立信任。该审计于 2021 年初完成,并于 2021 年年中开放源代码。...它确实发现了一些值得修复的小漏洞和实现问题,范围从中等到高,包括: CVE-2021-27099:Spiffe ID 路径规范化允许冒充(中) CVE-2021-27098:通过遗留节点 API 进行服务器冒充.../spiffe/spire/blob/main/doc/cure53-report.pdf [3] 了解更多: https://github.com/spiffe/spire#learn-about-spire...[4] 参与: https://github.com/spiffe/spire#contribute-to-spire
前言 大概很多人和我一样,是从 Istio 那里听说 SPIFFE(读音 Spiffy [ˈspɪfi]) 的,Istio 中用 SPIFFE 方式为微服务提供身份。...SPIFF 的基本概念 SPIFFE 由五个部分组成,分别是 SPIFFE ID、Workload API、SVID、SPIFFE Trust Bundle 以及 SPIFFE Federation。...Trust Bundle SPIFFE 的公钥组合 SPIFFE 联邦 一种简单的用于共享 SPIFFE Trust Bundle 的机制 SPIFFE/SPIRE 和其它安全技术的关系 SPIFFE/...SPIFFE 的身份提供能力正适用于这种场景,Istio 和 Consule 都可以使用 SPIFFE 提供身份解决方案。...SPIRE 简介 综合前面对 SPIFFE 的讲述,可以知道,这东西的核心能力: 工作负载(业务应用)可以通过一种本地的、无需认证的方式获取到一个 SPIFFE ID SPIFFE ID 可以签署成为
采用SPIFFE的系统无论在何处运行,都可以轻松可靠地进行相互身份验证。...SPIRE(SPIFFE Runtime Environment,SPIFFE运行时环境)是一个工具链,用于在各种平台上的工作负载之间建立信任。...在下面的示例中,SPIRE以嵌入到TLS证书中的SPIFFE ID的形式,为每个工作负载提供一个身份,以方便mTLS通信。然后,OPA可以使用每个工作负载的SPIFFE ID来构建授权政策。...== "spiffe://domain.test/backend-server" } svc_spiffe_id = client_id { [_, _, uri_type_san] :=...OPA利用SPIFFE/SPIRE提供的身份验证框架,通过将Envoy配置为转发客户端证书细节,OPA能够基于客户端X.509证书的URI SAN中包含的SPIFFE ID做出授权决策。
互信的技术细节可以参考 https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE_Trust_Domain_and_Bundle.md#5-...spiffe-bundle-endpoint,具体操作可以阅读 https://github.com/spiffe/spire-tutorials/tree/main/docker-compose/federation...和外部系统的互动 SPIFFE 兼容系统 SPIFFE 身份能够和其它提供了 SPIFFE 联邦接口的系统对接,在联邦中进行安全的认证和通信。...和 SPIRE 联邦类似,可以在 SPIFFE 兼容的系统之间(例如 Istio 和 SPIRE,或者两个 Istio 之间)建立联邦。...联邦 SPIFFE 就可以用来够完成网格之间或者网格内外的互信关系。
查看该 filter chain 的配置,可以看到其中配置了一个 TCP Proxy filter,对应的 cluster 是和 filter chain 同名的 spiffe://cluster.local...destination\"])%" } } ] } Internal Listener 中 TCP Proxy 指定的 Cluster outbound_tunnel_clus_spiffe...cluster 中有三个 endpoint,endpoint 对应的是 Internal Listener outbound_tunnel_lis_spiffe://cluster.local/ns/...outbound_tunnel_lis_spiffe://cluster.local/ns/default/sa/bookinfo-productpage 中配置了一个 tcp_proxy,该 tcp_proxy...tcp_proxy 中设置的 cluster 为 outbound_tunnel_clus_spiffe://cluster.local/ns/default/sa/bookinfo-productpage
这包括 SPIFFE、Vault、SMI、Istio、…… 握手缓存和重新身份验证:握手一次可以完成缓存,并且可以在经过身份验证的服务之间进行通信,而不会为已经经过身份验证的服务对服务对引入额外的延迟。...我们将使用即将到来的 SPIFFE 与 Cilium 集成的示例。这允许在创建网络策略时使用 SPIFFE 身份来选择工作负载。...' spec: endpointSelector: - matchLabels: - spiffe://mycluster/app1: '' ingress: -...fromEndpoints: - matchLabels: - spiffe://mycluster/app2: '' 如上例所示,网络策略通过 SPIFFE...如果网络策略同时指定 SPIFFE 身份和端点选择器,这能够有效阻断恶意流量负载。 对于离开 pod 或服务的所有流量,目的地必须由 pod 的出口策略允许。
其中包括SPIFFE、Vault、SMI、Istio等。 握手缓存和重新认证。...我们将以SPIFFE与Cilium的为例。其允许在创建网络策略时使用SPIFFE身份来选择工作负载。...' spec: endpointSelector: - matchLabels: - spiffe://mycluster/app1: '' ingress: -...fromEndpoints: - matchLabels: - spiffe://mycluster/app2: '' 如上例所示,网络策略通过SPIFFE身份指定允许的...如果一个网络策略同时指定了SPIFFE身份和端点选择器,那么恶意的工作负载就无法通过被破坏的服务级证书来冒充该服务。
匹配 reviews 的 service port (port:9080) filter_chain_matcher 中的 action name 即为选中的 filter chain 的名称,即 spiffe...查看该 filter chain 的配置,可以看到其中配置了一个 TCP Proxy filter,对应的 cluster 是和 filter chain 同名的 spiffe://cluster.local...cluster 中有三个 endpoint,endpoint 对应的是 Internal Listener outbound_tunnel_lis_spiffe://cluster.local/ns/...outbound_tunnel_lis_spiffe://cluster.local/ns/default/sa/bookinfo-productpage 中配置了一个 tcp_proxy,该 tcp_proxy...tcp_proxy 中设置的 cluster 为 outbound_tunnel_clus_spiffe://cluster.local/ns/default/sa/bookinfo-productpage
在上述 TLS 握手中,我略过了细节,但是如果您阅读 Cilium 文档,您会看到用于“mTLess”的 X509 证书有一个可选的基于“面向所有人的安全生产身份框架(SPIFFE)”的身份模型。...事实上,在部署实现 Cilium 双向认证所必需的组件时,您可以选择部署 SPIFFE 运行时环境(SPIRE),这是 Cilium 用来生成代表工作负载及其身份的证书的 SPIFFE 实现。...这个 SPIFFE 身份用于握手中使用的证书,但 SPIFFE 不是 Cilium 中用于构建的通用工作负载身份。SPIFFE 被用作一个独立的身份层,映射到 Cilium 现有的身份实现。...Cilium 的身份模型包括 SPIFFE,但其核心身份是基于整数的独立身份层。 核心问题是 IP 到身份映射存储在每个节点上的本地缓存中,这可能导致最终一致的更新。
https://mp.weixin.qq.com/s/ICVDO3U5Ea1DzP3LFJq8mQ 9 零信任安全:SPIFFE 和 SPIRE 通用身份验证的标准和实现 本文主要介绍了零信任安全模型中的通用身份验证框架...SPIFFE,以及一种生产就绪、开源的SPIFFE实现——SPIRE架构的介绍。
这里会大量使用来自 https://github.com/spiffe/spire-tutorials.git 的代码。...注意:目前(2023-01-16)代码中涉及的部分配置已经过期,请参考 https://github.com/spiffe/spire-tutorials/pull/107 的内容进行修复。...kubectl exec -n spire spire-server-0 -- \ /opt/spire/bin/spire-server entry create \ -spiffeID spiffe...://example.org/ns/default/sa/default \ -parentID spiffe://example.org/ns/spire/sa/spire-agent \...他应该位于相应信息的 SVID 附近(例如 token(spiffe://xxxxx))。是一个长字符串。
:// 开头的字符串,这个字符串就是 SPIFFE ID,这个 SPIFFE ID 就是用来表示服务的身份的,后面我们会详细介绍 SPIFFE。...Secure Production Identity Framework For Everyone (SPIFFE) 是一套服务之间相互进行身份识别的标准,主要包含以下内容: SPIFFE ID 标准,...SPIFFE Verifiable Identity Document (SVID) 标准,将 SPIFFE ID 编码到一个加密的可验证的数据格式中。 颁发与撤销 SVID 的 API 标准。...SPIFFE ID 规定了形如 spiffe:/// 的 URI 格式,作为工作负载(Workload)的唯一标识。...Istio 使用形如 spiffe:///ns//sa/ 格式的 SPIFFE ID 作为安全命名,注入到 X.509
SPIRE 只是 SPIFFE 规范的一种实现。SPIRE 公开了 SPIFFE Workload API ,它可以保障正在运行的软件系统并向它们颁发 SPIFFE ID 和 SVID 。...SPIFFE ID 是用于标识资源或调用者的结构化字符串,SPIFFE 组件致力于 SPIFFE ID 的发布及验证。...SVID(SPIFFE 可验证身份文件)即,计算端点可以通过密码验证来信任或者拒绝 某一 SPIFFE ID 。SVID 可以引用相关联的非对称密钥对,还可以用于形成安全通信通道。...如下图所示, img SPIRE Server 负责管理和发布其配置的 SPIFFE 信任域中的所有 ID 。...它还存储注册条目(选定选择器来明确应发布的 SPIFFE ID 的条件)和签名密钥,使用 Node API 自动验证 Agent 的身份,并在经过身份验证的 Agent 请求时为 Workload 创建
说明:SPIFFE(Secure Production Identity Framework For Everyone)以特制的X.509证书形式为现代生产环境中的每个工作负载提供安全标识。...SPIFFE消除了对应用程序级身份验证和复杂网络级ACL配置的需求。SPIFFE标准是许多CNCF参与者和其他相关方,聚集在一起提出的共同方法,使便服务彼此呈现和授权他们的身份。...SPIFFE仍处于早期实施阶段,尚未准备好进行生产部署 - 您可以通过贡献来提供帮助。SPIFFE和SPIRE的工作由Scytale的员工协调。...网站/代码:https://spiffe.io/ https://github.com/spiffe 如何着手采用一种/另一种/两者/两者都不采用 我之前的一篇博客中,我已经列出了一些采用 API
从那时起,它一直在不断发展,以更好地适应不同软件生态系统中的实践,并更好地与其他云技术(如 SPIFFE 和 SPIRE)集成。...在过去的三年中,in-toto 团队专注于通过添加或修改特性来实现稳定性,包括对 SPIFFE 的支持、更有表现力的证据收集以及不同语言(如 Rust)的实现。...gRPC、KEDA、Knative、KubeEdge、Litmus、Longhorn、NATS、Notary、OpenMetrics、OpenTelemetry、Operator Framework、SPIFFE
领取专属 10元无门槛券
手把手带您无忧上云