用途
该技能用于在 Oracle Cloud Infrastructure(OCI)环境中管理凭据与密钥,覆盖 OCI Vault 的日常操作、密钥管理、检索排错、轮换与认证配置。它定位为对 OCI CLI/API 知识不足时的补充,提供 OCI 特有的 Vault 模式与常见陷阱。
主要能力
- Vault 操作与层级理解:Vault(容器)→ 主加密密钥(用于加解密)→ Secret(加密数据)→ Secret 版本(随时间轮换)。不同操作使用不同服务:Vault 操作用
oci kms management vault ...,密钥操作用oci kms management key ... --endpoint <vault-endpoint>,Secret 操作用oci vault secret ...(注意不是 kms)。 - IAM 权限要点:检索 Secret 需要同时具备两项权限——
read secret-family(列出与读取 Secret 元数据)和use keys(解密 Secret 内容)。缺少use keys会返回令人困惑的 403 错误。 - 检索失败排查:提供决策树,按 401(检查动态组成员、本地 ~/.oci/config、轮换后缓存)、403(检查两项权限)、404(检查 OCID、compartment、Secret 状态)、500(指数退避重试)分类定位。
- 成本优化:Vault API 计费为每 10,000 次请求 $0.03,每月前 10k 免费。通过缓存可大幅降低调用量,例如 60 分钟缓存可将每月 720,000 次请求降至 720 次,实现免费。缓存 TTL 需小于密钥轮换窗口。
- 零停机轮换:不要删除再重建 Secret(会改变 OCID 导致应用中断),而应使用
oci vault secret update-base64创建新版本,Secret OCID 保持不变,应用在下次缓存刷新时自动获取新版本,旧版本保留用于回滚。 - 实例主体认证:生产计算实例应使用实例主体,创建动态组并授予 Vault 访问权限,应用代码无需管理凭据,令牌自动刷新,审计可追溯。
- 审计日志:可创建日志组并启用 Vault 读取访问日志,记录访问者、Secret OCID、时间、来源 IP 与结果,并建议配置失败访问、越权访问、异常 IP 等监控告警。
使用方式
技能以参考文档形式提供 OCI 专用命令与模式,强调在需要 OCI 操作时使用技能中给出的确切 CLI 命令,不要猜测 OCI Vault CLI 语法,也不要假设 AWS Secrets Manager 的模式适用于 OCI。可按需加载 oci-vault-reference.md 获取官方 Vault 与 KMS API 文档,用于密钥管理、HSM 保护、跨区域复制等深入场景。
适用场景
- 在 Vault 中存储凭据、组织 Secret、配置 IAM。
- 排查 Secret 检索失败(尤其 403 权限问题)。
- 优化 Vault 调用成本(缓存策略)。
- 实施零停机密钥轮换与版本管理。
- 安全实践:临时文件处理、日志反模式、审计设置。
- 生产部署:实例主体配置与监控告警。
限制与注意事项
- 训练数据对 OCI CLI 语法、API 端点、Vault 服务操作、Secret 编码格式及最新 Vault/KMS 特性(含跨区域复制)了解有限且可能过时,需依赖技能提供的参考。
- 并非所有 OCI 区域都提供 Vault 服务,跨区域访问会增加 10-50ms 延迟。
- 密钥操作必须指定 Vault 管理端点。
- Secret 内容为 Base64 编码,读取后需解码。
- 安全反模式:禁止记录密钥内容(即使调试/错误日志);临时密钥文件须先设权限再写入;避免过宽 IAM 策略;不要硬编码 Vault OCID;不使用已弃用的 PLAIN 内容类型,应使用 BASE64。
- 建议使用 oracle-terraform-modules/landing-zone 进行 Vault 设置,以自动创建安全 compartment、集成 Cloud Guard 监控并启用审计日志。