teleport 中 tbot 与 teleport cluster 的安全通信
Table of Contents
1. 证书签名过程概述
当 tbot
请求证书时,它与 Teleport 集群的 Auth Service
交互:
-
私钥生成:
tbot
本地生成自己的私钥和公钥(通常使用 Elliptic Curve 或 RSA 算法)。- 这对密钥仅存储在
tbot
的环境中,私钥不会发送到 Teleport 集群。
-
CSR(Certificate Signing Request)生成:
tbot
使用生成的公钥创建一个 CSR(证书签名请求),并将其发送到 Teleport 集群的Auth Service
。- CSR 包含:
- 公钥
- 证书用途(如 SSH、Kubernetes、数据库等)
tbot
的身份信息(例如角色、用户名等)
-
CA 签名:
- Teleport 集群的
Auth Service
验证tbot
的身份(基于 token 或已有证书)。 - 一旦认证通过,
Auth Service
使用 Teleport 集群的 CA 私钥签署tbot
的公钥。 - 签名生成后,返回一个短期有效的证书给
tbot
。
- Teleport 集群的
-
证书使用:
tbot
将证书与自己的私钥组合起来,用于身份认证和通信。
2. 证书签名的责任归属
-
tbot
的私钥:- 由
tbot
本地生成,并用于与生成的证书配对。 - 私钥仅用于证明
tbot
对证书的控制权,整个签名过程与私钥无关。
- 由
-
Teleport 集群的 CA 私钥:
- Teleport 的
Auth Service
使用集群的 CA 私钥对tbot
的公钥进行签名。 - 这确保了证书受 Teleport 集群的信任链保护。
- Teleport 的
3. 为什么不使用 tbot
的私钥签名?
tbot
的私钥不会用来签名证书,因为:
-
信任模型:
- Teleport 使用集中化的 CA 来管理信任链,只有集群的 CA 才能发放可信证书。
- 如果
tbot
用自己的私钥签名证书,其他组件无法验证该证书是否可信。
-
证书信任链:
- 所有组件(如 Teleport 的节点和代理)都信任集群的 CA。
- 如果由
tbot
自签证书(self-signed certificate),其他组件将无法信任这些证书。
-
安全性和权限控制:
- 通过 CA 统一管理签名权限,可以集中控制和撤销证书,而不依赖于每个独立的
tbot
实例。
- 通过 CA 统一管理签名权限,可以集中控制和撤销证书,而不依赖于每个独立的
4. 短期证书的轮换机制
- Teleport 集群会签发短期有效的证书,通常有效期为几小时。
tbot
会定期与Auth Service
通信,在证书即将过期时请求新证书。- 整个轮换过程与初次签名类似,由 Teleport 的 CA 签发新证书。
5. 验证机制
- 当
tbot
使用证书与其他组件通信时,对方会验证:- 证书是否由集群的 CA 签名。
- 证书是否有效(未过期,且没有被撤销)。
- 证书中的身份信息(如角色)是否匹配请求的权限。
总结:
tbot
的证书是由 Teleport 集群的 CA 使用其私钥签名的,而不是用 tbot
的私钥。tbot
本地生成私钥和公钥后,通过 CSR 请求由 Teleport 集群完成签名,确保整个系统的信任链安全且集中化管理。
Comments |0|
Category: 似水流年