【问题标题】:Protect MySQL Server on Compute Engine保护 Compute Engine 上的 MySQL 服务器
【发布时间】:2020-06-21 08:12:11
【问题描述】:

我有一个在 App Engine 标准环境中运行的应用,但数据库位于 Compute Engine 实例上。 App Engine 标准环境没有我可以在 Compute Engine 实例上列入白名单的静态 IP。 让 App Engine 访问数据库的唯一方法是允许所有 IP 连接到它,这可能是个坏主意。 由于定价因素,我想将应用程序保留在 App Engine 标准环境中并且不使用 CloudSQL。 由于 SQL 服务器对所有 IP 开放,我还有什么其他方法可以保护它。

【问题讨论】:

  • 可能 ??有点理解:)
  • 应用程序和实例是否在同一个项目/网络上,您能否通过仅拥有内部 IP 来限制对数据库 VM 的访问?
  • @Gustavo 他们在不同的项目上。
  • @Gustavo 即使他们在同一个项目上,这并不意味着同一个网络。虚拟机有一个内部 IP,但这只适用于在 Compute Engine 本身上运行的应用程序。
  • 如果两者在同一个网络上或通过 Cloud VPN 或 Network Peering 连接,您可以使用无服务器 VPC 访问 [1] [2]。它旨在实现 App Engine Standard 和您的计算实例之间的安全连接 [1]:cloud.google.com/vpc/docs/configure-serverless-vpc-access [2]:cloud.google.com/appengine/docs/standard/python/connecting-vpc

标签: mysql google-app-engine debian google-compute-engine


【解决方案1】:

要从 App Engine 应用直接连接到 Compute Engine 实例,我建议查看 Serverless VPC Access。请求通过您的应用程序通过无服务器 VPC 访问发送到您实例的内部 IP。

Steps to create the connector

gcloud components update

gcloud services enable vpcaccess.googleapis.com

gcloud compute networks vpc-access connectors create CONNECTOR_NAME --network=VPC_NETWORK --region=REGION --range=IP_RANGE

确保您设置了适当的权限和不重叠的 IP 范围。

然后将以下代码添加到您应用的 yaml 文件并部署您的应用。

vpc_access_connector:
  name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME"

您还可以考虑配置VM as a network proxy。在这种情况下,您将拥有一个对 Internet 开放的 VM,并且您可以使用该 VM securely connect to your database instance

【讨论】:

    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2017-12-08
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 2015-08-02
    • 2017-09-30
    相关资源
    最近更新 更多