使用代理将 DataFlow 作业连接到 Cloud MySQL 是不是安全(通过 os.system)
Posted
技术标签:
【中文标题】使用代理将 DataFlow 作业连接到 Cloud MySQL 是不是安全(通过 os.system)【英文标题】:Is it safe to connect DataFlow job to Cloud MySQL with proxy (by os.system)使用代理将 DataFlow 作业连接到 Cloud MySQL 是否安全(通过 os.system) 【发布时间】:2020-11-04 23:16:35 【问题描述】:我正在尝试在 DataFlow 上创建一个需要 Cloud SQL 连接的 Python 作业(我完全是初学者)。我需要在 ParDo (Apache Beam) 中执行几个 mysql 查询。我正在使用 PyMySQL 并且有身份验证问题,所以我尝试了 this 答案,显然它有效:
class MyDoFn(beam.DoFn):
def setup(self):
os.system("wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy")
os.system("chmod +x cloud_sql_proxy")
os.system(f"./cloud_sql_proxy -instances=self.sql_args['cloud_sql_connection_name']=tcp:3306 &")
问题是,我发现这更像是一种变通方法。以这种方式进行身份验证是否安全?我将不胜感激任何帮助!提前谢谢你。
【问题讨论】:
【参考方案1】:是的,这是使用 Cloud SQL 连接的安全方式。 cloud_sql_proxy 使用来自 Compute Engine 实例的身份验证信息来正确验证连接。有关更多信息,请参阅https://cloud.google.com/sql/docs/mysql/sql-proxy#authentication-options。
【讨论】:
代理连接是不是需要马上关闭,还是等到工作完成后操作系统会自行关闭?非常感谢!! VM 关闭会终止代理进程,所以请等待作业终止以上是关于使用代理将 DataFlow 作业连接到 Cloud MySQL 是不是安全(通过 os.system)的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Python SDK 中的 Dataflow 作业连接到 CloudSQL?
将 Pub/Sub 连接到 Dataflow Python 管道
连接到 SOCKS5 代理以在 Java 中执行 FTP/S