允许Google App Engine应用只访问一个Cloud SQL Instance数据库

时间:2015-05-01 12:31:56

标签: google-app-engine google-cloud-sql

我有几个小型Google App Engine应用程序正在访问相同的Cloud SQL实例(以节省资源),我不想限制每个应用程序访问这些个人数据库;例如

textCard

Configuring Google Could SQL Instance Access

当前系统似乎允许应用程序访问全局实例数据库,但会产生安全漏洞。如果入侵者可以访问数据库,那么他就可以访问所有数据库。

EG。 CoolApp5的Wordpress网站

1. CoolApp5 ---> global_db_instance -> coolapp5_db
2. EatFood ----> global_db_instance -> eatfood_db
3. WebsiteCo --> global_db_instance -> websiteco_db

正如您所看到的,应用<?php // wp-config.php define('DB_HOST', ':/cloudsql/global_db_instance:db'); // define('DB_USER', 'root'); define('DB_PASSWORD', ''); define('DB_NAME', 'coolapp5_db'); ?> 可以访问coolapp5并可以访问其他数据库(coolapp5_db),因为该应用具有超级用户权限。

Google seems to allow this through an external IP address

一个明显的解决方案可能是为每个应用程序提供许多单独的实例,但这对于小型应用程序来说效率低,因为Cloud SQL数据库可以同时运行多个网站。

是否有其他解决方案,或者我的策略是否无法用于Google Cloud SQL?

1 个答案:

答案 0 :(得分:3)

在单个Cloud SQL实例中为每个数据库/应用程序(docs)设置MySQL用户,并将这些新用户的访问权限授予他们所需的数据库。