AWS IAM DB Authentication (RDS/Aurora)
This article demonstrates how ClickPipes customers can leverage role-based access to authenticate with Amazon Aurora and RDS and access their databases securely.
For AWS RDS Postgres and Aurora Postgres you can only run Initial Load Only
ClickPipes due to the limitations of the AWS IAM DB Authentication.
For MySQL and MariaDB, this limitation does not apply, and you can run both Initial Load Only
and CDC
ClickPipes.
Setup
Obtaining the ClickHouse service IAM role Arn
1 - Login to your ClickHouse cloud account.
2 - Select the ClickHouse service you want to create the integration
3 - Select the Settings tab
4 - Scroll down to the Network security information section at the bottom of the page
5 - Copy the Service role ID (IAM) value belong to the service as shown below.
Let's call this value {ClickHouse_IAM_ARN}
. This is the IAM role that will be used to access your RDS/Aurora instance.
Configuring the RDS/Aurora instance
Enabling IAM DB Authentication
- Login to your AWS Account and navigate to the RDS instance you want to configure.
- Click on the Modify button.
- Scroll down to the Database authentication section.
- Enable the Password and IAM database authentication option.
- Click on the Continue button.
- Review the changes and click on the Apply immediately option.
Obtaining the RDS/Aurora Resource ID
- Login to your AWS Account and navigate to the RDS/Aurora instance you want to configure.
- Click on the Configuration tab.
- Note the Resource ID value. It should look like
db-xxxxxxxxxxxxxx
. Let's call this value{RDS_RESOURCE_ID}
. This is the resource ID that will be used in the IAM policy to allow access to the RDS instance.
Setting up the Database User
PostgreSQL
- Connect to your RDS/Aurora instance and create a new database user with the following command:
- Follow the rest of the steps in the PostgreSQL source setup guide to configure your RDS instance for ClickPipes.
MySQL / MariaDB
- Connect to your RDS/Aurora instance and create a new database user with the following command:
- Follow the rest of the steps in the MySQL source setup guide to configure your RDS/Aurora instance for ClickPipes.
Setting up the IAM role
Manually create IAM role.
1 - Login to your AWS Account in the web browser with an IAM user that has permission to create & manage IAM role.
2 - Browse to IAM Service Console
3 - Create a new IAM role with the following IAM & Trust policy.
Trust policy (Please replace {ClickHouse_IAM_ARN}
with the IAM Role arn belong to your ClickHouse instance):
IAM policy (Please replace {RDS_RESOURCE_ID}
with the Resource ID of your RDS instance). Please make sure to replace {RDS_REGION}
with the region of your RDS/Aurora instance and {AWS_ACCOUNT}
with your AWS account ID:
4 - Copy the new IAM Role Arn after creation. This is what needed to access your AWS Database securely from ClickPipes. Let's call this {RDS_ACCESS_IAM_ROLE_ARN}
.
You can now use this IAM role to authenticate with your RDS/Aurora instance from ClickPipes.