【问题标题】:Google Data Studio & AWS MySQL SSL Connection谷歌数据工作室和 AWS MySQL SSL 连接
【发布时间】:2018-03-01 10:35:57
【问题描述】:

我正在尝试将 Google Data Studio 与托管在 AWS 实例上的 MySQL 数据库远程连接。为了实现安全连接,我们按照documentation 中的建议为 AWS 的 MySQL 数据库用户添加了 SSL 访问权限:

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

这里的问题是,AWS 与GOOGLE CloudSQL 不同,它只生成一个服务器证书,而不是一个客户端证书,也不是一个客户端私钥(据我所知)。后者都需要为 Google Data Studio 和 MySQL 连接启用 SSL。

只是为了补充一点,我们还将 Google 推荐的 IP 列入白名单here。这个thread有很多用户抱怨白名单特定IP不起作用,他们不得不在子网上添加通配符。所以我们还为每个 IP 添加了 /16 子网的地址:

64.18.%.%
64.233.%.%
66.102.%.%
66.249.%.%
72.14.%.%
74.125.%.%
108.177.%.%
173.194.%.%
207.126.%.%
209.85.%.%
216.58.%.%
216.239.%.%

最后,将新 IP 列入白名单后无需重启 AWS 防火墙,它立即生效。

我的问题:

  • 是否绝对没有办法在 AWS 上托管的 MySQL 上创建客户端证书和客户端私钥?

  • 我真的很想在 Google Data Studio (GDS) 和我们的 MySQL-DB 之间使用 SSL,但是 GDS-UI 不允许我们在不填写客户端证书和客户端私钥的情况下进行连接。目前有什么办法让我允许这种安全连接吗?

提前致谢!

【问题讨论】:

  • 我也对这个问题感兴趣。我想到的事情是,我们可以终止 SSL 连接,例如在 EC2 实例上,使用正在运行的 stunnel 或其他东西。一旦我也尝试过,我也会分享我的经验。
  • 不幸的是,我认为这是不可能的。原因是 Google 似乎不允许使用自签名客户端证书。创建由同一 CA(亚马逊)签名的客户端证书的唯一方法是拥有私钥,这显然是不可能的。

标签: mysql amazon-web-services ssl google-data-studio


【解决方案1】:

我能够使用 Amazon 服务器证书和使用 OpenSSL 创建的自签名客户端证书 + 密钥在 Google Data Studio 和 Amazon RDS PostgreSQL 之间建立 SSL 连接:

openssl req -newkey rsa:2048 -nodes -keyout client.key -x509 -days 365 -out client.crt

取自https://stackoverflow.com/a/48994943/2789084

【讨论】:

  • 我得到一个很好的通用“无法连接到数据库。请仔细检查您的连接参数。”当我使用亚马逊的证书和我自己生成的客户端密钥和证书时。尝试调试此问题没有什么真正有用的...所以如果其他人知道更多,请发布信息:)
  • 理想情况下,上面的答案不应该被接受,因为它谈到了 Amazon RDS 和 PostgreSQL 之间的连接,而最初的问题是建立 Amazon RDS 和 MySQL 之间的连接,以及上面接受的解决方案对此不起作用。
  • 使用它对我有用。也许您需要在 AWS 中为 Google IP 地址制定入站规则? @Zubair 这帮助我找到了正确的解决方案,但由于我使用的是 Postgres,所以我在这里做了一个不同的 Q/A stackoverflow.com/questions/70625623/…
猜你喜欢
  • 2019-05-23
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多