本文介绍如何配置ECS实例的AD域控制器,以及如何将RDS PostgreSQL实例接入域。
背景信息
活动目录AD(Active Directory),是微软提供的目录服务。目录是一种分层结构,用于存储同一局域网络上对象的信息。在目录中可以收录公司的电脑账号、用户账号、组等以提供更好的安全性和更便捷的管理能力。
RDS PostgreSQL提供接入自建AD域功能,用于企业中心化管理,同时提升用户访问安全性,支持数据库级别和用户级别的黑白名单能力。
说明 RDS PostgreSQL对AD域服务信息的修改是通过修改RDS PostgreSQL实例上pg_hba.conf文件实现的,修改或导入AD域服务信息的内容即修改实例的pg_hba.conf文件,所以RDS管理控制台除了可以配置AD域服务之外,还支持其他常用的pg_hba.conf文件配置,具体参考:PostgreSQL pg_hba.conf介绍。
前提条件
- RDS PostgreSQL实例版本需要满足以下条件。
- 实例大版本:10或以上版本。
- 内核小版本:大于等于20210228,如需升级内核小版本,请参见升级内核小版本。
- 存储类型:云盘存储。
- 已创建ECS实例。RDS PostgreSQL接入自建域必须使用内网,ECS需要满足以下条件:
- AD域控制器所在ECS与目标RDS PostgreSQL实例处于相同VPC。
- ECS安全组放通RDS的内网IP。详情请参见添加安全组规则。
- ECS实例系统防火墙默认关闭,如果您开启过,ECS实例系统防火墙需要放通RDS的内网IP。
- 系统镜像选择Windows Server 2016及以上版本。
- 域账号属于Domain Admins组。
- 登录的阿里云账号为主账号。
操作步骤
- ECS实例配置AD域控制器。
- AD域控制器中添加管理员用户。
- AD域控制器中添加普通用户用于登录。说明 添加普通用户步骤与域控制器中添加管理员用户方法相同,普通登录用户不需要加入Domain Admins管理员组。
本示例以
ldapuser
用户为例,作为AD域控制器中的普通用户,用于登录RDS PostgreSQL实例。 - 配置ECS实例安全组规则。
- 配置RDS实例。
- (可选)除手动添加AD域服务信息配置外,RDS PostgreSQL还支持通过导入方式批量设置AD域服务信息。导入方式支持以下三总种模式
- 覆盖已有服务信息
- 追加服务信息(优先度最高):在已有服务信息前追加AD域记录,优先级高于已有服务信息。
- 追加服务信息(优先度最低):在已有服务信息最后追加AD域记录,优先级低于已有服务信息。
配置格式:TYPE|DATABASE|USER1|ADDRESS|MASK|METHOD|OPTION
请在编辑AD域的编辑框中按顺序填写需要导入的服务信息。各参数取值请参见参数说明。
配置示例:host|all|<AD域中创建的普通用户的用户名>|0.0.0.0/0||ldap|ldapserver=<ECS服务器的私网IP> ldapbasedn="CN=Users,DC=<根域名前缀,例如本示例为pgsqldomain>,DC=<根域名后缀,例如本示例为net>" ldapbinddn="CN=<AD域中创建的管理员用户名>,CN=Users,DC=<根域名前缀,例如本示例为pgsqldomain>,DC=<根域名后缀,例如本示例为net>" ldapbindpasswd="<AD域中创建的管理员用户密码>" ldapsearchattribute="sAMAccountName"
- 测试连接。使用PostgreSQL命令行终端连接RDS。说明 连接RDS PostgreSQL数据库可以通过多种方式,本示例以PostgreSQL命令行终端为例,连接前需要安装PostgreSQL客户端,具体方法及其他连接方式,请参见连接PostgreSQL实例。
使用如下命令连接RDS PostgreSQL数据库,使用在AD域控制器中普通用户的用户名及密码。
psql -h <实例连接地址> -U <AD域中创建的普通用户的用户名> -p 5432 -d postgres
查看AD域修改记录
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
- 单击左侧导航栏的账号管理,选择AD域修改记录页签。
- 您可以在操作列查看变更详情,当修改失败时,状态为未生效,您可以单击变更日志,查看错误信息。