Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用本地客户端连接到VPC中的AWS RDS实例_Mysql_Amazon Web Services_Amazon Rds_Amazon Vpc_Aws Security Group - Fatal编程技术网

Mysql 使用本地客户端连接到VPC中的AWS RDS实例

Mysql 使用本地客户端连接到VPC中的AWS RDS实例,mysql,amazon-web-services,amazon-rds,amazon-vpc,aws-security-group,Mysql,Amazon Web Services,Amazon Rds,Amazon Vpc,Aws Security Group,我有一个运行在EC2实例上的应用程序,它将数据存储在RDS实例中。所有这些实例都位于AWS VPC中,安全组配置为允许它们相互连接 出于报告目的,我想从笔记本电脑连接到RDS实例(例如使用SQLAlchemy)以运行简单查询。每次我尝试使用EC2应用程序使用的连接字符串进行连接时,连接都会超时 对于谷歌来说,可以使用云SQL代理来实现这一点,但我找不到类似的AWS产品。相反,我应该做的似乎是将一个internet网关连接到VPC,并配置安全组以允许从我的机器连接。但是,除了允许所有入站连接或允许

我有一个运行在EC2实例上的应用程序,它将数据存储在RDS实例中。所有这些实例都位于AWS VPC中,安全组配置为允许它们相互连接

出于报告目的,我想从笔记本电脑连接到RDS实例(例如使用SQLAlchemy)以运行简单查询。每次我尝试使用EC2应用程序使用的连接字符串进行连接时,连接都会超时

对于谷歌来说,可以使用云SQL代理来实现这一点,但我找不到类似的AWS产品。相反,我应该做的似乎是将一个internet网关连接到VPC,并配置安全组以允许从我的机器连接。但是,除了允许所有入站连接或允许静态IP之外,这些文档还不清楚如何做到这一点。不幸的是,我的笔记本电脑没有静态IP,我不喜欢允许所有入站连接,因为这似乎不安全,而且会引发攻击。我还无法找到一种方法来配置安全组以允许基于IAM凭据的连接,例如使用AWS CLI。由于我将定期生成报告,因此每当我想要连接时,涉及更新安全组(即允许我的当前IP)的解决方案似乎不太理想

我尝试了以下文档,但到目前为止没有找到一个不允许所有连接的解决方案:
*

*我的RDS实例配置不允许我启用IAM身份验证,我不知道为什么

IAM Database Authentication is not supported for the configuration in the DB Instance db. 
Modify your Db Instance to another instance class and try again. 
(Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; 
Request ID: a6194fb8-2ab9-4a6a-a2be-63835e6e0184)
有什么我不理解或忽视的吗?由于DB实例仍然由DB用户凭据保护,因此允许从所有IP连接不是一件大事吗?

根据屏幕截图选择此连接。然后填写所有详细信息,使用nat instance.pem文件进行连接。这就像你是通过Nat网关或互联网网关绕过这个连接到VPC

在VPC上安装VPN并连接的另一个选项

根据屏幕截图选择此连接。然后填写所有详细信息,使用nat instance.pem文件进行连接。这就像你是通过Nat网关或互联网网关绕过这个连接到VPC


在VPC上安装VPN并连接的另一个选项

VPC内是否有既有公共IP又能访问RDS的机器?如果是这样的话,我通常使用ssh隧道来完成这类工作。我没有想到这个想法。我当然可以添加一个,看看它是否适合我的需要。你能澄清一下你目前的设置吗?RDS实例是在公共子网中还是在私有子网中?我相信它在公共子网中(这不是我所期望的,但据我所知是这样的)。我对AWS云堆栈和我们正在运行的系统有点陌生,它主要是自动提供VPC、EKS群集和设置各种策略等。但是,RDS实例是手工创建的,我承认是新手。VPC内有任何既有公共IP又能访问RDS的机器吗?如果是这样的话,我通常使用ssh隧道来完成这类工作。我没有想到这个想法。我当然可以添加一个,看看它是否适合我的需要。你能澄清一下你目前的设置吗?RDS实例是在公共子网中还是在私有子网中?我相信它在公共子网中(这不是我所期望的,但据我所知是这样的)。我对AWS云堆栈和我们正在运行的系统有些陌生,它主要是自动提供VPC、EKS群集和设置各种策略等。但是,RDS实例是手工创建的,我承认是新手。