Tutorial

Connect to Amazon RDS PostgreSQL from Ubuntu VM using AWS KMS

AWS
67views

Introduction:

Are you trying to connect to your Amazon RDS PostgreSQL instance from an Ubuntu VM at AWS? Do you have your password stored in AWS KMS? In this post, we’ll walk you through the steps to connect to your RDS instance using psql from your Ubuntu VM.

Step 1: Install the AWS CLI

Before you can connect to your RDS instance, you need to install the AWS CLI on your Ubuntu VM. You can do this by running the following command:

sudo apt-get update && sudo apt-get install awscli -y

Step 2: Configure the AWS CLI

Once the AWS CLI is installed, you need to configure it with your AWS credentials. You can do this by running the following command:

aws configure

Follow the prompts to enter your Access Key ID, Secret Access Key, and choose the correct region.

Step 3: Install the AWS KMS client

Next, you need to install the AWS KMS client on your Ubuntu VM. You can do this by running the following command: Copy Code

sudo apt-get install libaws4-kms-dev -y

Step 4: Set environment variables

Before you can decrypt your password, you need to set some environment variables. You can do this by running the following commands:

export AWS_REGION=<your-region>  # e.g., us-west-2
export KMS_KEY_ID=<your-kms-key-id>  # e.g., arn:aws:kms:us-west-2:123456789012:key/12345678-1234-1234-1234-123456789012
export RDS_INSTANCE_IDENTIFIER=<your-rds-instance-identifier>  # e.g., my-rds-instance
export RDS_USERNAME=<your-rds-username>  # e.g., myuser

Step 5: Decrypt the password using AWS KMS

Now that you have the environment variables set, you can decrypt your password using the following command:

aws kms decrypt --key-id $KMS_KEY_ID --ciphertext-blob $(aws rds describe-db-instances --db-instance-identifier $RDS_INSTANCE_IDENTIFIER --query 'DBInstances[0].MasterUserPassword' --output text)

This will output the decrypted password. You can store it in an environment variable or save it to a secure location.

Step 6: Connect to the RDS instance using psql

Finally, you can connect to your RDS instance using psql by running the following command:

psql -h <your-rds-instance-endpoint> -U $RDS_USERNAME -d <your-database-name> -p 5432

Replace <your-rds-instance-endpoint> with the endpoint of your RDS instance, <your-database-name> with the name of your database, and enter the decrypted password when prompted.

Conclusion:

Connecting to your Amazon RDS PostgreSQL instance from an Ubuntu VM at AWS can be a bit tricky, but by following these steps, you should be able to get it done. Remember to always store your passwords securely and never hardcode them into your scripts.

Leave a Response