当前位置: 首页 > news >正文

IAM联合(OIDC Federation、OIDC联合)介绍(Identity and Access Management 云厂商提供的身份与权限管理系统)

维度企业做法我们评价
部署凭据OIDC 联合身份,无长期密钥长期 ed25519 + forced command⚠️ 落后,但裸 VPS 无IAM 可联合
镜像引用digest 钉死digest 钉死✅ 很多团队还在部署 :latest
镜像可信cosign 签名 + SLSA 溯源 + 准入控制拒绝未签名仅 Trivy 扫描❌ 最值得补的一项
密钥管理Vault / Secrets Manager,可轮换可审计服务器上一个 600 的明文文件❌ 最弱环节
审批变更管理 + 职责分离(作者不能批自己的)必需审批人(同一人)单人项目的固有限制
发布策略金丝雀/蓝绿 + SLO 自动回滚up -d 硬切换单节点单用户,金丝雀无意义
版本可追溯部署标记打进 APM构建→标签→healthz→metrics→部署后核验✅ 比多数小团队做得好
数据库迁移独立步骤 + expand-contract容器启动时 alembic upgrade head❌ 公认反模式

IAM联合是什么?

文章目录

    • IAM 联合(OIDC Federation)
      • IAM(Identity and Access Management)
      • OIDC 联合(OpenID Connect Federation)
      • 为什么这比我们好?
      • 为什么我们暂时不这么做?

IAM 联合(OIDC Federation)

这是企业级部署中解决"CI 怎么安全地拿到部署权限"的标准做法。拆开来说:

IAM(Identity and Access Management)

云厂商提供的身份与权限管理系统。核心能力:

  • 创建角色(Role):一组权限,比如"可以拉镜像"、“可以部署到 K8s 集群”
  • 临时凭证(Temporary Credentials):不是长期密钥,而是有效期很短(比如 15 分钟)的 token
  • 策略(Policy):精确控制谁能做什么

OIDC 联合(OpenID Connect Federation)

让 CI 平台(如 GitHub Actions)和云平台的 IAM 互相信任,不需要给 CI 发任何密钥

工作流程:

1. GitHub Actions 运行 workflow ↓ 2. GitHub 发一个 OIDC token 给 workflow (token 里写着:这个 job 来自 repo X 的 branch Y,由 workflow Z 触发) ↓ 3. Workflow 拿着这个 token 去找云平台的 IAM ↓ 4. IAM 验证 token 的签名(信任 GitHub 是合法的 token 发行方) ↓ 5. IAM 检查:repo X 的 branch Y 是否被允许扮演角色 R? ↓ 6. 如果允许 → 发放临时凭证(有效期 15 分钟) ↓ 7. Workflow 用临时凭证执行部署 ↓ 8. 凭证自动过期,即使泄露也无法使用

为什么这比我们好?

OIDC 联合(企业)我们的做法
凭证类型临时 token,自动过期长期 ed25519 密钥
泄露后果最多 15 分钟有效永久有效,直到手动轮换
权限粒度可以限制到"只有 main 分支的这条 workflow 能部署"密钥要么能用要么不能用
密钥管理根本没有密钥需要管理密钥存在 GitHub Secrets 里

为什么我们暂时不这么做?

因为我们部署目标是裸 VPS。裸 VPS 没有 IAM 系统——它就是 SSH 登录。你不能让 VPS 去验证一个 OIDC token 然后给你临时 SSH 权限(至少没有现成的、简单的基础设施来做这件事)。

如果将来迁移到托管 K8s(EKS/GKE/AKS),OIDC 联合就是自然的选择,因为云平台原生支持它。但在裸 VPS 上,SSH 密钥 + forced command 已经是在没有 IAM 的情况下能做到的最合理的方案了。


一句话总结:裸 VPS 是一台只有 SSH 的远程机器,IAM 联合是让 CI 不用拿长期密钥就能安全部署的机制——前者限制了后者,所以我们用长期密钥 + forced command 来弥补。

http://www.jsqmd.com/news/1339037/

相关文章:

  • 如何用NucleusCoop实现PC游戏分屏联机:完整实战指南
  • 2025终极指南:原神帧率解锁工具完全解析,轻松突破60帧限制
  • KKCE: 基于边缘函数与缓存键计算的网站测速动态逻辑验证-快快测
  • 广西区各类技能考证中介机构推荐哪家专业
  • C#委托进阶:Action/Func与柯里化实战指南
  • Java动态权限管理:基于面具模式的Spring Boot实战
  • Windows热键冲突诊断专家:3步快速定位占用程序的终极解决方案
  • 炉石传说HsMod终极插件:3分钟快速安装,50+功能全面提升游戏体验
  • 微信聊天记录导出神器:无需越狱,永久保存你的数字记忆
  • PUBG罗技鼠标宏:三分钟掌握精准压枪,告别手抖困扰
  • WarcraftHelper:魔兽争霸3现代化改造终极方案,让经典游戏完美适配现代电脑
  • Linux性能优化:五维观察法实战指南
  • 记一次流量溯源题目解析
  • Claude Code AI编程助手:安装配置与核心命令详解
  • 代码硬编码与LLM决策分析及SOP执行情况
  • 2026年全国清水混凝土色差修复标准发布,5m视距无色差成硬
  • 3个理由告诉你为什么Linux用户需要这款B站桌面客户端
  • MyBatis-Plus 动态字段映射工具:一行代码实现字段名动态转换
  • 旗博士数字人口播智能体好用吗?适合什么人用?
  • 终极Wand-Enhancer使用指南:3分钟解锁WeMod完整功能
  • Flash擦除要等10秒?慢命令的隐藏设计
  • 如何快速配置DS4Windows:PS4手柄在Windows上的终极解决方案指南
  • 从零构建文本分析流程:Python处理非结构化数据的完整指南
  • Roaring Bitmap:亿级用户标签系统的高效存储与查询实战
  • 快捷键实战指南:从通用操作到专业软件,全面提升工作效率
  • 郑州知名背调公司,本地企业实用风控方案推荐
  • EV录屏绿色版使用技巧与性能优化指南
  • Python智能图书推荐系统开发实战
  • 华硕笔记本终极轻量控制工具:G-Helper完全指南,告别Armoury Crate卡顿烦恼
  • 细胞因子挑选指南:从实验需求到质控标准,避开选型踩坑