更改平台 OIDC 客户端密钥
ACP 使用 OIDC Client Secret 在平台组件之间进行身份验证。出于安全合规、定期凭证轮换或在怀疑凭证泄露后,您可能需要轮换此密钥。更新 global 集群上的密钥后,平台会自动将其同步到所有成员集群。
先决条件
- 具有 cluster-admin 权限的
kubectl访问权限,可访问 global 集群。 - 平台管理的所有集群已升级到 ACP v4.3。
- 以下具有
Agnostic生命周期的插件已升级到与 ACP v4.3 兼容的版本:Alauda Container Platform GitopsAlauda Build of KialiKubeflow BaseAlauda AI
- 已准备好新的客户端密钥值。建议使用长度至少为 32 个字符的密码学随机字符串。
更改 Client Secret 会导致受影响的组件重启,从而引发短暂的身份验证中断。请在维护窗口期间执行此操作。
OIDC Secret 概览
平台 OIDC 凭证存储在一个 Kubernetes Secret 中,详细信息如下:
该 Secret 包含两个数据键:
client-id— OIDC 客户端标识符,默认值为alauda-auth。请勿修改此值。client-secret— OIDC 客户端密钥。此值将被轮换。
操作步骤
备份当前 Secret
在进行更改之前,请先备份当前的 Secret 清单,以便在需要时回滚。
备份文件包含敏感凭证数据。请将其存放在安全位置,并在操作完成后将其删除。
记录当前 client-secret 的哈希值,以便在更新后进行非明文验证:
更新 Client Secret
请勿修改 client-id 的值,也不要删除并重新创建该 Secret。否则可能导致平台范围内的级联身份验证失败。
使用以下任一方法,仅更新 client-secret 数据字段。
方法 1:使用 kubectl patch(推荐)
从安全的交互式输入中读取新密钥:
方法 2:使用 kubectl edit
使用默认编辑器打开该 Secret,并将 client-secret 的值替换为新的 base64 编码值。
您可以提前生成 base64 编码后的值:
在不暴露明文的情况下,验证该 Secret 已在 global 集群上更新:
验证组件健康状态
Secret 更新后,base-operator 会自动将其同步到所有成员集群。某些依赖 OIDC 凭证的组件会重启以加载新值。特别是,请验证 frontend 和 apollo 部署是否正常运行:
确认所有 Pod 的状态均为 READY 和 UP-TO-DATE。重启完成可能需要几分钟。
如果某个组件启动失败,请验证 cpaas-oidc-secret Secret 是否存在于 cpaas-system 命名空间中,并且包含有效的 client-id 和 client-secret 值。
回滚
如果在更改 Secret 后出现问题,请从 步骤 1 创建的备份中恢复之前的值:
或者,如果您知道之前的密钥值:
回滚后,请重复验证步骤,以确认所有组件均处于健康状态。