尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

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/infisicalInfisical PAMPrivileged Access Management可以把 PostgreSQL 数据库账号的密码按固定周期自动轮换缩短泄露或共享密码的有效窗口。一次可用的自动轮换需要两部分配置配合账号模板决定是否轮换、多久一次、新密码的格式账号决定由哪个特权账号执行轮换即轮换账号。只有模板开启了轮换、且账号选定了轮换账号账号才会真正进入轮换计划。这篇文章覆盖完整配置路径重点讲委派轮换即用一个权限更高的 PostgreSQL 角色代替目标账号修改其密码以及在 PostgreSQL 16 上为这个委派角色补齐必要的ADMIN OPTION授权。轮换的执行机制轮换触发时Infisical 使用轮换账号连接到目标数据库执行ALTER USER target_role WITH PASSWORD generated_password;连接使用账号在 PAM 中已保存的连接信息包括 SSL 设置因此 TLS 启用的数据库不需要额外配置。整个流程分四步按模板的密码格式生成一个新密码用轮换账号连接目标资源并应用新密码用新密码打开一次全新连接做验证验证通过后将新密码提升为当前凭据。任何一步失败已有凭据保持不动账号的轮换状态会记录错误。所以轮换本身自带验证后生效的语义不会把目标数据库改成一个谁都登不上的状态。准备数据库侧的委派轮换角色先确认你需要的操作角色模板级轮换设置是否自动轮换、频率、密码格式由Product Admin角色管理给账号选择轮换账号、手动触发轮换需要该账号所在文件夹或账号本身上有Admin角色。如果目标账号自己改自己的密码自轮换任何角色都可以无需额外授权。委派轮换则要求轮换账号能够ALTER目标角色给它授予CREATEROLE或者直接使用 superuser。在目标 PostgreSQL 库中创建专用的委派轮换角色。下面的示例来自官方文档temporary_password是示例值请按你的密码策略替换为真实密码infisical_rotator和app_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区域打开Automatically rotate credentials并设置轮换频率可选every 1 hour、12 hours、24 hours、7 days、30 days。该频率适用于所有由该模板创建的账号。如果暂时关闭模板变为 on-demand only账号仍可手动触发轮换但不会按计划自动执行。设置生成密码的长度和字符类别大写字母、小写字母、数字、符号确保满足目标数据库的密码策略。一个硬限制符号集合中不能包含、、、\、;、?因为这些字符会破坏针对目标执行的改密语句。注意修改模板的轮换设置会立即更新该模板下所有账号的轮换计划尚未选定轮换账号的账号仍保持未排期直到设置完成。第二步创建轮换账号和目标账号在 PAM 中轮换账号和目标账号必须是同一个资源上的两个独立 PostgreSQL 账号。委派轮换账号必须与被轮换账号连接同一资源——对数据库来说就是同一个 host 和 port两者可以是不同用户例如一个特权管理员轮换权限较低的账号。进入Privileged Access Management → Accounts → Add Account选择文件夹和 PostgreSQL 模板填写连接信息Host数据库主机名或 IP也可以直接粘贴连接串自动填充、Port默认 5432、Database、SSL Enabled如启用 TLS 建议按实际情况勾选并可设置Reject Unauthorized和自定义 CA 证书认证方式选Password标准用户名/密码登录填入对应角色infisical_rotator或app_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),仅供参考
返回列表