【问题标题】:Connecting PHP code on Compute Engine to Cloud SQL securely将 Compute Engine 上的 PHP 代码安全连接到 Cloud SQL
【发布时间】:2014-05-13 14:37:48
【问题描述】:

我正在尝试将在计算实例上运行的 drupal cms 连接到 Cloud SQL 数据库,但我尝试的每个组合都失败了。我可以从另一台服务器连接到 Cloud SQl,但我不确定 MySQL 连接从我的实例到 Cloud SQL 的路径,但我还想尽可能安全地配置与 db 服务器的连接

这是我的配置

服务器

  • 已分配外部 IP 地址的 Cloud SQL。也授权 计算实例的外部IP地址和独立服务器的IP 连接地址。
  • 具有外部 IP 地址的计算实例在互联网上成功运行 apache & php
  • 尝试按照https://drupal.org/documentation/install/run-script 的第 4 步从 Web 浏览器配置数据库连接,以便在计算实例上运行 drupal 代码
  • 具有可访问 Internet 的 IP 地址的独立服务器

用户

  • SQL Root 用户密码已设置并成功用于从 使用 Workbench 的独立服务器
  • 创建了来自主机 % 的 Db 用户以访问 drupal 数据库,并且可以使用工作台从独立服务器成功连接
  • 同一数据库用户不会从计算实例连接

网络

  • 在计算实例上运行 ifconfig 只显示私有 IP 地址
  • 我已经在谷歌防火墙和实例防火墙上开启了3306

我的问题是如何通过提供 dbname、dbusername、dbuserpwd、host(IPAddress) 让计算实例连接到云 SQL,以便它完全像工作台一样连接但仍然尽可能受到限制? 问题是否出在计算实例的配置、使用提供的连接设置或云 sql

【问题讨论】:

  • 将应用引擎中运行的drupal连接到CloudSQL使用“localhost”,但这几乎不适用于GCE吗?
  • 是否需要包含CloudSQL实例名称?
  • 您能否详细说明“但仍尽可能受到限制?”。为什么您觉得目前使用 Compute Engine 无法实现这一目标?此外,如果您想尽可能安全地连接,您应该使用 SSL 加密连接并拒绝非 SSL 连接。
  • 我的意思是不要采取简单(错误)的方式并从任何 IP 地址打开 MySQL 连接
  • 好吧,只将您关心的特定 IP 列入白名单,包括 GCE 实例 IP。

标签: mysql drupal-7 google-cloud-sql google-compute-engine


【解决方案1】:

这似乎是安装程序丢弃或省略主机值的 drupal 问题和限制来自 CentOS 的远程数据库连接的 SELinux 保护强制问题的组合,CentOS 是我使用的来宾操作系统

在将文件添加到 Web 根文件夹后,可能还需要使用正确的 SELinux 标签重新标记文件

要解决它: 自己编辑 drupal 7 settings.php 以包含 mysql 连接

$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'dbname',
      'username' => 'dbuser',
      'password' => 'dbpassword',
      'host' => 'CloudSQLIPAddress',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

并从运行 CentOS 的 GCE 实例中的 ssh 运行以下命令以允许 db 连接,我认为此设置不会在服务器重新启动后继续存在,但我可以满足我的需要

 setsebool httpd_can_network_connect_db=1

要将 SElinux 上下文重新应用于复制的文件,请运行此

restorecon -rv /var/www/html 

【讨论】:

    猜你喜欢
    • 2018-08-15
    • 2023-03-04
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2017-11-11
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多