news 2026/9/12 14:03:22

Infisical PAM 如何配置 PostgreSQL 账号密码自动轮换(含委派轮换角色授权)?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Infisical PAM 如何配置 PostgreSQL 账号密码自动轮换(含委派轮换角色授权)?

Infisical PAM 如何配置 PostgreSQL 账号密码自动轮换(含委派轮换角色授权)?

【免费下载链接】infisicalInfisical is the open-source platform for secrets, certificates, and privileged access management.项目地址: https://gitcode.com/GitHub_Trending/in/infisical

Infisical PAM(Privileged Access Management)可以把 PostgreSQL 数据库账号的密码按固定周期自动轮换,缩短泄露或共享密码的有效窗口。一次可用的自动轮换需要两部分配置配合:账号模板决定"是否轮换、多久一次、新密码的格式",账号决定"由哪个特权账号执行轮换"(即轮换账号)。只有模板开启了轮换、且账号选定了轮换账号,账号才会真正进入轮换计划。

这篇文章覆盖完整配置路径,重点讲委派轮换:即用一个权限更高的 PostgreSQL 角色代替目标账号修改其密码,以及在 PostgreSQL 16+ 上为这个委派角色补齐必要的ADMIN OPTION授权。

轮换的执行机制

轮换触发时,Infisical 使用轮换账号连接到目标数据库,执行:

ALTER USER "<target_role>" WITH PASSWORD '<generated_password>';

连接使用账号在 PAM 中已保存的连接信息(包括 SSL 设置),因此 TLS 启用的数据库不需要额外配置。

整个流程分四步:

  1. 按模板的密码格式生成一个新密码;
  2. 用轮换账号连接目标资源并应用新密码;
  3. 用新密码打开一次全新连接做验证;
  4. 验证通过后将新密码提升为当前凭据。

任何一步失败,已有凭据保持不动,账号的轮换状态会记录错误。所以轮换本身自带"验证后生效"的语义,不会把目标数据库改成一个谁都登不上的状态。

准备:数据库侧的委派轮换角色

先确认你需要的操作角色:

  • 模板级轮换设置(是否自动轮换、频率、密码格式)由Product Admin角色管理;
  • 给账号选择轮换账号、手动触发轮换需要该账号所在文件夹或账号本身上有Admin角色。

如果目标账号自己改自己的密码(自轮换),任何角色都可以,无需额外授权。委派轮换则要求轮换账号能够ALTER目标角色:给它授予CREATEROLE,或者直接使用 superuser。

在目标 PostgreSQL 库中创建专用的委派轮换角色。下面的示例来自官方文档,temporary_password是示例值,请按你的密码策略替换为真实密码(infisical_rotatorapp_user是文档中的示例角色名,同样可替换):

-- Infisical 执行轮换时连接的账号 CREATE ROLE infisical_rotator WITH LOGIN PASSWORD 'temporary_password' CREATEROLE; -- 密码会被轮换的目标账号 CREATE ROLE app_user WITH LOGIN PASSWORD 'temporary_password';

PostgreSQL 16 及之后的版本有一条额外限制CREATEROLE角色只能修改自己持有ADMIN OPTION的角色。如果你的库是 16+,需要补一条授权,或者干脆用 superuser 做轮换账号:

GRANT app_user TO infisical_rotator WITH ADMIN OPTION;

第一步:在账号模板上启用轮换

以 Product Admin 身份进入Privileged Access Management → Account Templates,打开目标账号所用的模板(PostgreSQL 账号对应的模板,如默认的postgres或自建模板),在Credential settings区域:

  1. 打开Automatically rotate credentials,并设置轮换频率,可选:every 1 hour、12 hours、24 hours、7 days、30 days。该频率适用于所有由该模板创建的账号。如果暂时关闭,模板变为 on-demand only:账号仍可手动触发轮换,但不会按计划自动执行。
  2. 设置生成密码的长度字符类别(大写字母、小写字母、数字、符号),确保满足目标数据库的密码策略。

一个硬限制:符号集合中不能包含'"`\;?,因为这些字符会破坏针对目标执行的改密语句。

注意:修改模板的轮换设置会立即更新该模板下所有账号的轮换计划;尚未选定轮换账号的账号仍保持未排期,直到设置完成。

第二步:创建轮换账号和目标账号

在 PAM 中,轮换账号和目标账号必须是同一个资源上的两个独立 PostgreSQL 账号。委派轮换账号必须与被轮换账号连接同一资源——对数据库来说就是同一个 host 和 port(两者可以是不同用户,例如一个特权管理员轮换权限较低的账号)。

进入Privileged Access Management → Accounts → Add Account

  • 选择文件夹和 PostgreSQL 模板;
  • 填写连接信息:Host(数据库主机名或 IP,也可以直接粘贴连接串自动填充)、Port(默认 5432)、DatabaseSSL Enabled(如启用 TLS 建议按实际情况勾选,并可设置Reject Unauthorized和自定义 CA 证书);
  • 认证方式选Password(标准用户名/密码登录),填入对应角色(infisical_rotatorapp_user)的用户名和密码;
  • 选择Create

按同样方式为第二个角色创建另一个账号。两个账号指向同一实例即可。

注意:使用AWS IAM认证方式的 PostgreSQL 账号(RDS/Aurora)不存储密码,没有可轮换的对象,不能设置轮换账号。本文路径只适用于密码认证的账号。

第三步:在 Rotation 页签选择轮换账号

打开被轮换的账号,进入Rotation页签。该页签会显示从模板继承的频率和密码格式。从同一资源的合格账号列表中选择轮换账号

  • 选另一个权限更高的账号(如infisical_rotator):委派轮换,对应数据库侧已完成的CREATEROLE/ superuser 授权;
  • 选列表中的this account:自轮换,账号修改自己的密码,数据库侧无需额外授权;
  • 保持None:轮换未配置,即使模板已开启,账号也不会轮换。

如果账号显示"配置前不会轮换",就是这里还没选轮换账号(或尚未配置自轮换所需的凭据),补上选择即可。

立即触发并验证结果

不想等下一个计划时间点时,在 Rotation 页签选择Rotate now立即执行一次。手动轮换计为一次正式轮换:计划周期会重置,下一次自动轮换在完整一个周期之后发生。

验证方式依据轮换机制本身:

  • 成功:新密码经过全新连接验证后才提升为当前凭据,账号凭据即为新密码;
  • 失败:已有凭据保持不动,账号的轮换状态中记录错误信息——此时应检查轮换账号是否具备改密权限(委派场景下重点核对CREATEROLE,以及 PostgreSQL 16+ 的ADMIN OPTION是否已授予),以及两个账号是否指向同一 host/port。

限制与边界

  • 委派轮换账号与被轮换账号必须同资源(同 host 和 port),跨实例无法委派。
  • 密码格式中的符号不能包含'"`\;?,配置模板时就要避开。
  • AWS IAM 认证的 PostgreSQL 账号没有存储密码,不适用凭据轮换。
  • 模板改频率后,所有使用该模板的账号计划同步更新;个别账号需要不同频率时应放到另一个模板。

相关文档:凭据轮换总览、PostgreSQL 轮换说明、PostgreSQL 账号、账号模板。

【免费下载链接】infisicalInfisical is the open-source platform for secrets, certificates, and privileged access management.项目地址: https://gitcode.com/GitHub_Trending/in/infisical

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 14:02:25

用Python重写地震易损性分析:从IDA数据到易损性曲线

简介&#xff1a;这是一份基于Python实现的地震易损性分析源码包&#xff0c;面向土木工程、地震工程方向的研究生、科研人员及结构设计人员&#xff0c;解决从地震需求计算到易损性曲线绘制的代码实现难题。压缩包共147个文件&#xff0c;包含6个Python源程序、100个out结果数…

作者头像 李华
网站建设 2026/9/12 13:58:47

迭代与增量开发:核心概念与实战策略解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 13:57:44

openpi 环境搭建:三条命令跑通 Docker 部署与 GPU 配置

openpi 环境搭建&#xff1a;三条命令跑通 Docker 部署与 GPU 配置 【免费下载链接】openpi 项目地址: https://gitcode.com/GitHub_Trending/op/openpi openpi 是 Physical Intelligence 开源的机器人模型&#xff08;VLA&#xff09;工具包&#xff0c;包含 π₀、π…

作者头像 李华
网站建设 2026/9/12 13:57:24

短信与VoIP路由技术解析及实践应用

1. 短信与网络电话路由基础概念 在通信技术领域&#xff0c;SMS&#xff08;Short Message Service&#xff09;和VoIP&#xff08;Voice over Internet Protocol&#xff09;是两种截然不同却又相辅相成的通信方式。短信服务作为移动通信网络的经典功能&#xff0c;已经伴随我…

作者头像 李华
网站建设 2026/9/12 13:55:42

HC-SR501+ESP32人体感应实战:从脏信号到稳定中断的嵌入式入门硬核课

1. 这不是“接个传感器就完事”的入门课——为什么HC-SR501ESP32的组合&#xff0c;是零基础跨入真实嵌入式感知世界的第一个硬核台阶你搜“ESP32教程”&#xff0c;满屏都是点亮LED、串口打印“Hello World”、连WiFi发HTTP请求——这些确实重要&#xff0c;但它们离“让设备真…

作者头像 李华