Error in connect to Mysql in RDS by using IAM through Python code.

0

I am trying to connect with Mysql DB instance (inside RDS) using IAM permissions from EMR(pyspark) for test purpose i have provided policy 'AmazonRDSFullAccess' to my EMR role, and trying below python code

pymysql.connect(host=host, user=user, passwd='mypswd', ssl=ssl)

and i am getting error as

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '-.eu-central-1.rds.amazonaws.com' (timed out)")

The above code is working fine if i add my EMR cluster IP address in inbound rule of the security group attached in the db instance.

But my requirement is to connect with the db instance with just by using IAM since my IP address is dynamic(each time I create new EMR cluster), so each time i cannot add a new IP in security group and i do not want to allow all ip(0.0.0.0) in inbound rule,

asked 7 months ago231 views
1 Answer
0

Hello.

Security group settings are required even for RDS IAM authentication.

I don't think it is necessary to allow it with 0.0.0.0/0 if you set the security group associated with EMR as the security group source for RDS.
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html

profile picture
EXPERT
answered 7 months ago
profile picture
EXPERT
reviewed 7 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions