1. Node Attestation 插件选型(aws_iid、k8s_sat、k8s_psat)差异中各插件的信任根、适用场景与安全假设
请对比 SPIRE 的 Node Attestation 插件(aws_iid、k8s_sat、k8s_psat)的差异,包括各自的信任根、适用场景与安全假设?
- Node Attestation 各插件的信任模型
- 信任根与安全假设
- 适用场景选型
Node Attestation(节点证明)用于让 SPIRE Agent 在首次连接时向 Server 证明自己的节点身份,常用插件有 aws_iid、k8s_sat、k8s_psat。aws_iid 基于 AWS 实例身份文档(IID):Agent 从实例元数据获取 IID 并使用其签名,Server 通过 AWS 的签名验证来确认节点是合法 EC2 实例,信任根是 AWS 的实例身份签名与账号角色,适用于运行在 AWS 上的节点。k8s_sat 基于 Kubernetes ServiceAccount Token(JWT):Agent 用 ServiceAccount 的 Token 做节点证明,Server 通过 Kubernetes API 校验 Token 签名,信任根是 K8s 集群的 Token 签名密钥,适用于 Agent 直接运行在 Pod 中的场景。k8s_psat 基于 Projected ServiceAccount Token(PSAT):验证的是含 audience/expiration 等约束的投射 Token,Server 校验 Token 的签名与声明,信任根同样是 K8s Token 签名密钥,但比 k8s_sat 更安全(支持 audience、短有效期、多证书绑定)。安全假设上:aws_iid 假设 AWS 账号与元数据可信;k8s_sat/psat 假设 K8s API 与 Token 签名密钥受控。选型应结合节点所在云与运行形态:云原生且在 K8s 内优先 k8s_psat,纯 AWS 场景用 aws_iid。
选型核心是"信任根落在哪":aws_iid 信任云厂商的身份签名,k8s_sat/psat 信任 K8s Token 签名。k8s_psat 因支持 audience 与短有效期而比 k8s_sat 更安全,是 K8s 场景的推荐选择。