跳转至

身份与机密管理 (Identity & Secret Management)

身份是新的边界。在云原生世界中,配置文件中的静态密码是大多数违规行为的根本原因。Cyberun Cloud 通过集中式身份和访问管理 (IAM) 以及动态机密消除了这种风险。

统一身份 (SSO)

我们提供由 Keycloak(行业标准的开源身份提供商)驱动的 身份即服务

  • 单点登录 (SSO): 一组凭据即可访问 Rancher 控制台、Harbor 仓库、OpenSearch 仪表板以及您自己的应用程序。
  • 联邦认证: 我们支持与企业 IdP(Google Workspace, Azure AD, Okta)集成。您的员工可以使用其现有的企业帐户登录。
  • 细粒度 RBAC: 权限直接映射到 OIDC 组。
  • dev-team -> 可以部署到 namespace-dev
  • ops-team -> 可以 SSH 进入节点。

机密管理 (金库)

我们利用 OpenBao(HashiCorp Vault 的开源分支)来管理敏感数据。我们严格遵守 机密永远不应存储在 Git 中 的原则。

动态机密

sequenceDiagram
    participant App as 业务应用
    participant Agent as Vault_Agent
    participant Bao as OpenBao_KMS
    participant DB as PostgreSQL_DB

    Note over App, DB: 初始化阶段
    App->>Agent: 1. 请求数据库权限
    Agent->>Bao: 2. 验证 Pod 身份 (K8s SA)
    Bao->>DB: 3. 创建临时账号 (TTL=1h)
    DB-->>Bao: 4. 返回临时账号/密码
    Bao-->>Agent: 5. 加密传输凭据
    Agent-->>App: 6. 注入凭据文件

    Note over App, DB: 运行阶段
    App->>DB: 7. 使用临时凭据连接

    Note over Bao, DB: 1小时后 (过期)
    Bao->>DB: 8. 自动撤销/删除账号

应用程序不再硬编码数据库密码,而是即时请求凭据。

  1. 请求: 应用程序向 OpenBao 请求访问 PostgreSQL。
  2. 生成: OpenBao 在数据库上动态创建一个具有 1 小时 TTL(生存时间)的临时用户名/密码。
  3. 注入: 凭据通过 Sidecar 或 CSI 驱动程序注入到 Pod 中。
  4. 撤销: 1 小时后,凭据自动过期。即使泄露,也毫无用处。

静态加密

存储在 Cyberun 平台内的所有机密都使用 AES-256-GCM 加密。

  • KMS 集成: 主加密密钥受到保护,可以定期轮换而无需停机。
  • etcd 加密: 我们为 Kubernetes 数据存储 (etcd) 启用了静态加密,确保服务器硬盘的物理被盗不会导致集群机密泄露。