环境独立凭据是什么
环境独立凭据指每个环境一套单独凭据:测试凭据无法访问生产数据与服务,边界之外的操作默认失败。实现上通常组合云账号或角色分离、数据库按环境与库授权、对象存储桶策略隔离;轮换也各环境独立、互不牵连。它是控制爆炸半径成本最低的一步——凭据隔离比流程约束更可靠,因为它是「默认拒绝」。
基本信息
| 适用平台 | 多云与自建环境:账号、角色、数据库账号按环境划分 |
|---|---|
| 原则 | 凭据与环境一一对应;跨环境访问默认禁止,需要时显式授权与留痕 |
| 实现 | 云账号与角色分离;数据库账号按环境与库授权;存储桶策略隔离 |
| 轮换 | 各环境独立轮换,互不牵连 |
典型使用场景
- 多环境部署:同一套代码用各环境自己的凭据完成部署
- 测试防误连:开发机凭据在结构上就不可能连上生产库
- 轮换隔离:生产轮换不影响测试联调,窗口可错开
- 审计归属:按环境分账,日志回答得出「谁在哪个环境做了什么」
- 安全演练:用越界访问测试验证拒绝行为符合预期
- 本地开发:开发者用个人化只读凭据,写接口在权限层面就不可达
授权示例(PostgreSQL)
授权示例(PostgreSQL)
CREATE ROLE app_staging LOGIN PASSWORD '...'; -- 各环境独立角色
GRANT CONNECT ON DATABASE app_staging TO app_staging;
-- 生产库对 app_staging 无任何授权,越界访问直接失败
-- 轮换:ALTER ROLE ... PASSWORD '...',只影响本环境定期做「凭据越界测试」:从测试环境尝试访问生产资源,验证拒绝符合预期,把结论写进演练记录。
「测试要读生产数据」应走脱敏导入而不是直连:权限面与数据面同时收敛,测试库随便造数据。
隔离靠自动化验证:「测试凭据访问生产应被拒绝」写成定期检查,比培训材料和口头约定可靠得多。