Connecting to PostgreSQL with Kerberos authentication
You can connect to PostgreSQL with Kerberos authentication with the pgAdmin interface or with a command-line interface such as psql. For more information about connecting, see Connecting to a DB instance running the PostgreSQL database engine .
To use pgAdmin to connect to PostgreSQL with Kerberos authentication, take the following steps:
Launch the pgAdmin application on your client computer.
On the Dashboard tab, choose Add New Server.
In the Create - Server dialog box, enter a name on the General tab to identify the server in pgAdmin.
-
On the Connection tab, enter the following information from your RDS for PostgreSQL database:
-
For Host, enter the endpoint. Use a format such as
.PostgreSQL-endpoint
.AWS-Region
.rds.amazonaws.comIf you're using an on-premises Microsoft Active Directory from a Windows client, then you need to connect using a specialized endpoint. Instead of using the Amazon domain
rds.amazonaws.com
in the host endpoint, use the domain name of the AWS Managed Active Directory.For example, suppose that the domain name for the AWS Managed Active Directory is
corp.example.com
. Then for Host, use the formatPostgreSQL-endpoint
.AWS-Region
.corp.example.com. -
For Port, enter the assigned port.
-
For Maintenance database, enter the name of the initial database to which the client will connect.
-
For Username, enter the user name that you entered for Kerberos authentication in Step 7: Create Kerberos authentication PostgreSQL logins .
-
Choose Save.
To use psql to connect to PostgreSQL with Kerberos authentication, take the following steps:
-
At a command prompt, run the following command.
kinit
username
Replace
with the user name. At the prompt, enter the password stored in the Microsoft Active Directory for the user.username
-
If the PostgreSQL DB instance is using a publicly accessible VPC, put a private IP address for your DB instance endpoint in your
/etc/hosts
file on the EC2 client. For example, the following commands obtain the private IP address and then put it in the/etc/hosts
file.% dig +short
PostgreSQL-endpoint
.AWS-Region
.rds.amazonaws.com ;; Truncated, retrying in TCP mode. ec2-34-210-197-118.AWS-Region
.compute.amazonaws.com. 34.210.197.118 % echo " 34.210.197.118PostgreSQL-endpoint
.AWS-Region
.rds.amazonaws.com" >> /etc/hostsIf you're using an on-premises Microsoft Active Directory from a Windows client, then you need to connect using a specialized endpoint. Instead of using the Amazon domain
rds.amazonaws.com
in the host endpoint, use the domain name of the AWS Managed Active Directory.For example, suppose that the domain name for your AWS Managed Active Directory is
corp.example.com
. Then use the format
for the endpoint and put it in thePostgreSQL-endpoint
.AWS-Region
.corp.example.com/etc/hosts
file.% echo " 34.210.197.118
PostgreSQL-endpoint
.AWS-Region
.corp.example.com" >> /etc/hosts -
Use the following psql command to log in to a PostgreSQL DB instance that is integrated with Active Directory.
psql -U
username
@CORP.EXAMPLE.COM
-p 5432 -hPostgreSQL-endpoint
.AWS-Region
.rds.amazonaws.com postgresTo log in to the PostgreSQL DB cluster from a Windows client using an on-premises Active Directory, use the following psql command with the domain name from the previous step (
corp.example.com
):psql -U
username
@CORP.EXAMPLE.COM
-p 5432 -hPostgreSQL-endpoint
.AWS-Region
.corp.example.com postgres