我想更改我的 postgres RDS 实例中的 pg_hba.conf,以便我可以使用证书身份验证。我发现 RDS 中的参数组管理器允许我更改参数,但它只引用了 pg_hba.conf 的路径。它似乎不允许我更改 pg_hba.conf。
答案1
截至目前,RDS 确实允许更改配置。因此您可以
- 查看您的 RDS 正在使用的配置列表。
- 您可以更改这些参数。但我相信您无法更改所有参数。您可以更改 RDS 参考页中列出的参数。
像往常一样,有一些静态(或固定)配置参数需要您重新启动数据库服务器,而有一些动态选项不需要重新启动。
RDS 参考手册中是这样说的:
您在 postgresql.conf 文件中为本地 PostgreSQL 实例设置的 PostgreSQL 参数将保留在数据库实例的数据库参数组中。如果您使用默认参数组创建数据库实例,则参数设置位于名为 default.postgres9.3 的参数组中。
创建数据库实例时,将加载关联的数据库参数组中的参数。您可以通过更改参数组中的值来修改参数值。如果您具有执行此操作的安全权限,还可以使用 ALTER DATABASE、ALTER ROLE 和 SET 命令更改参数值。请注意,您无法使用命令行 postgres 命令或 env PGOPTIONS 命令,因为您无法访问主机。
以下是 Amazon RDS 针对 postgres 的官方文档: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html#Appendix.PostgreSQL.CommonDBATasks.Parameters
答案2
使用 RDS 时,您无法直接编辑配置文件。而是通过 RDS 控制台或通过 API 编辑参数。
您可以在此处阅读有关“修改数据库参数组”的内容: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
您可以修改用户创建的数据库参数组中的参数值,但无法更改默认数据库参数组中的参数值。对参数的更改将立即应用于数据库参数组的成员数据库实例,或在数据库实例下次重新启动时应用于该数据库实例,具体取决于参数的类型(动态或静态)以及为参数更新选择的应用方法。
答案3
目前,您还不能:
https://forums.aws.amazon.com/thread.jspa?messageID=505301뗕
...至少他们知道人们想要这个。
我猜测当他们为 PostgreSQL 添加自定义选项组时,此功能将可用。
答案4
该pg_hba.conf
文件控制 PostgreSQL 数据库的客户端身份验证设置。但是,对于 RDS PostgreSQL 数据库,RDS 会代表您管理身份验证设置。
您需要使用受支持的RDS 身份验证选项(更多此处为 RDS 身份验证)。您可以通过 AWS 控制台、AWS CLI 或 AWS API 修改数据库的身份验证选项。
在某些情况下,你可能还需要修改数据库的附加安全组将允许访问数据库的 IP 地址列入白名单。