用途
本技能为使用 1Password 密钥管理生态提供全面指导,覆盖本地开发、自动化、项目环境变量管理以及 Kubernetes 集成等场景。
主要能力
1Password CLI(op)
CLI 采用名词-动词结构:op <noun> <verb> [flags]。
- 认证:
op signin、op signout、op whoami - 密钥检索:
op read "op://vault/item/field"、op run --(注入为环境变量)、op inject -i template.env -o .env(注入到文件) - 条目管理:
op item list、op item get、op item create、op item edit、op item delete - 保险库管理:
op vault list、op vault get、op vault create - 文档管理:
op document list、op document get、op document create
Developer Environments
为项目密钥提供专门存储位置,以环境变量形式组织管理。提供 TypeScript/Bun 与 Python SDK 两种 CLI 工具变体,支持创建、更新、删除、显示、列出、导出环境,以及挂载 .env 文件(仅 GUI 测试版)。
TypeScript 工具需 Bun 运行时;Python 工具使用官方 onepassword-sdk 包,需 uv,要求 Python 3.9+ 及 OP_SERVICE_ACCOUNT_TOKEN 环境变量。
环境密钥引用格式:op://<vault>/<environment>/variables/<key>
服务账号
用于无个人凭据的自动化。前置条件:1Password CLI 2.18.0 或更高版本、有效订阅、创建服务账号的管理员权限。通过 op service-account create 创建,可指定只读或读写权限。设置 OP_SERVICE_ACCOUNT_TOKEN 后 CLI 命令自动认证。
限制:无法访问 Personal、Private、Employee 或默认 Shared 保险库;创建后权限不可修改;每账户最多 100 个服务账号;受速率限制。
Kubernetes 集成
- External Secrets Operator(ESO):需 1Password Connect Server(v1.5.6+)、凭据文件、访问令牌及集群中已安装的 ESO。通过 ClusterSecretStore 与 ExternalSecret 配置同步。
- 原生 1Password Operator。
使用方式
密钥检索
标准引用格式:op://<vault>/<item>/<field>。
- 直接读取:
op read "op://Development/AWS/access_key_id" - 注入命令:
op run --env-file=.env.tpl -- ./deploy.sh - 注入文件:
op inject -i config.tpl.yaml -o config.yaml
条目管理
支持通过命令行参数或 JSON 模板创建条目,可生成密码,可编辑字段。
CI/CD 集成
提供 GitHub Actions、GitLab CI、CircleCI 配置示例。GitHub Actions 使用 1password/install-cli-action@v1 与 1password/load-secrets-action@v2。
环境工作流
创建(支持内联变量、.env 文件、自定义标签)、列出(可按保险库或标签过滤、JSON 输出)、显示(可掩码或显示值)、更新(增删变量、合并文件)、导出(标准、Docker、op-refs、JSON 格式,可加前缀)、删除(交互、强制、归档)。
适用场景
- 本地开发中检索密钥
- 管理项目环境变量
- 在 1Password 中管理条目与保险库
- 在 CI/CD 中自动化密钥
- 将密钥同步到 Kubernetes
- 为 CLI 工具配置 shell 插件
限制
服务账号存在上述访问范围、权限修改、数量与速率限制。Developer Environments 的 .env 文件挂载功能仅 GUI 测试版提供,两种 CLI 工具均不支持。SDK 不支持标签过滤。