使用 SSH 隧道

为了在 Looker 和数据库之间实现最强大的加密,您可以创建连接到隧道服务器或数据库服务器本身的 SSH 隧道。

SSH 隧道不适用于缺少单个主机地址的数据库,例如 Google BigQuery 和 Amazon Athena 数据库。BigQuery 和 Athena 用户应直接跳到数据库配置

第 1 步:选择终止隧道的主机

要为您的数据库设置 SSH 隧道访问权限,第一步是选择将用于终止隧道的主机。隧道可以在数据库主机本身或单独的主机(隧道服务器)上终止。

使用数据库服务器

如果您未使用隧道服务器,Looker 会通过公共互联网通过 SSH 隧道直接连接到您的数据库服务器。终止数据库的优势在于操作简单。涉及的主机少一点,因此无需额外的机器及其相关费用。如果数据库服务器所在的受保护网络不能直接从互联网进行访问,则此选项可能无法使用。

使用隧道服务器

当您使用隧道服务器时,Looker 会通过受限网络中的单独隧道服务器连接到您的数据库服务器。在单独的服务器上终止隧道的好处是,您无法通过互联网访问数据库服务器。如果隧道服务器遭到入侵,则需将其从数据库服务器中移除。我们建议您从隧道服务器中移除所有非必要的软件和用户,并使用 IDS 等工具对其进行密切监控。

隧道服务器可以是任何具备下列特点的 Unix/Linux 主机:

  1. 可使用 SSH 从互联网访问
  2. 可以访问数据库

第 2 步:创建 IP 许可名单

第二步是允许网络流量通过 SSH(通常在 TCP 端口 22)到达隧道服务器或数据库主机。

针对托管您的 Looker 实例的区域,允许来自此处列出的每个 IP 地址的网络流量。默认情况下,此处是“美国”。

托管在 Google Cloud 上的实例

Looker 托管的实例默认托管在 Google Cloud 上。对于托管在 Google Cloud 上的实例,请将与您的区域匹配的 IP 地址添加到许可名单。

点击此处查看 Google Cloud 上托管的实例的 IP 地址的完整列表

美国南卡罗来纳蒙克斯科纳 (us-east1)

  • 34.23.50.137
  • 35.211.210.64
  • 35.211.95.55
  • 35.185.59.100
  • 34.111.239.102
  • 35.237.174.17
  • 34.73.200.235
  • 35.237.168.216
  • 34.75.58.123
  • 35.196.30.110
  • 35.243.254.166

美国北弗吉尼亚州阿什本 (us-east4)

  • 34.150.212.9
  • 34.150.174.54
  • 34.85.200.217
  • 35.221.30.177
  • 35.245.82.73
  • 34.86.214.226
  • 35.245.177.112
  • 35.245.211.109
  • 34.86.118.239
  • 34.86.136.190
  • 35.194.74.185
  • 34.86.52.188
  • 35.221.3.163
  • 35.221.62.218
  • 34.86.34.135
  • 35.236.240.168
  • 35.199.50.237
  • 34.145.252.255
  • 35.245.141.42
  • 35.245.20.16
  • 34.145.147.146
  • 34.145.139.22
  • 34.150.217.20
  • 35.199.35.176
  • 35.245.72.35
  • 34.85.187.175
  • 35.236.220.225
  • 34.150.180.94
  • 4.85.195.168
  • 34.86.126.124
  • 34.145.200.8
  • 34.85.142.95
  • 34.150.217.96
  • 35.245.140.36
  • 34.86.124.234
  • 35.194.69.239
  • 35.230.163.26
  • 35.186.187.48
  • 34.86.154.134
  • 34.85.128.250
  • 35.245.212.212
  • 35.245.74.75
  • 34.86.246.187
  • 34.86.241.216
  • 34.85.222.9
  • 34.86.171.127
  • 34.145.204.106
  • 34.150.252.169
  • 35.245.9.213

美国爱荷华州康瑟尔布拉夫斯 (us-central1)

  • 104.154.21.231
  • 35.192.130.126
  • 35.184.100.51
  • 34.70.128.74
  • 34.69.207.176
  • 35.239.118.197
  • 34.172.2.227
  • 34.71.191.210
  • 34.173.109.50
  • 35.225.65.3
  • 34.170.192.190
  • 34.27.97.67
  • 35.184.118.155
  • 34.27.58.160
  • 34.136.4.153
  • 35.184.8.255
  • 35.222.218.140
  • 34.123.109.49
  • 34.67.240.23
  • 104.197.72.40
  • 34.72.128.33
  • 35.226.158.66
  • 34.134.4.91
  • 35.226.210.85

美国俄勒冈州达尔斯 (us-west1)

  • 34.127.41.199
  • 34.82.57.225
  • 35.197.66.244
  • 35.197.64.57
  • 34.82.193.215
  • 35.247.117.0
  • 35.233.222.226
  • 34.82.120.25
  • 35.247.5.99
  • 35.247.61.151
  • 35.233.249.160
  • 35.233.172.23
  • 35.247.55.33
  • 34.83.138.105
  • 35.203.184.48
  • 34.83.94.151
  • 34.145.90.83
  • 34.127.116.85
  • 35.197.35.188
  • 34.105.127.122
  • 35.233.191.84
  • 34.145.93.130
  • 35.233.178.166
  • 34.105.18.120
  • 104.199.118.14
  • 35.185.228.216
  • 34.145.16.151
  • 34.82.91.75
  • 34.82.142.245
  • 34.105.35.19
  • 34.83.231.96
  • 34.168.230.47
  • 35.247.46.214
  • 34.105.44.25
  • 35.185.196.75
  • 34.145.39.113
  • 34.168.121.44

美国加利福尼亚州洛杉矶 (us-west2)

  • 35.236.22.77
  • 35.235.83.177
  • 35.236.51.71

加拿大魁北克省蒙特利尔 (northamerica-northeast1)

  • 35.234.253.103
  • 35.203.46.255
  • 34.152.60.210
  • 35.203.0.6
  • 35.234.252.150
  • 35.203.96.235
  • 34.152.34.229
  • 34.118.131.36
  • 35.203.113.51

英国英国伦敦 (europe-west2)

  • 34.105.198.151
  • 35.246.117.58
  • 34.142.123.96
  • 34.89.124.139
  • 34.89.127.51
  • 34.105.209.44
  • 35.242.138.133
  • 35.197.222.220
  • 35.189.111.173
  • 34.105.219.154
  • 34.105.181.133
  • 34.89.25.5
  • 35.246.10.206
  • 34.105.131.133
  • 34.142.77.18
  • 34.89.54.84
  • 35.189.94.105
  • 35.246.36.67
  • 35.234.140.77
  • 35.242.174.158
  • 35.197.199.20
  • 34.89.3.120
  • 34.105.156.107
  • 35.246.79.72
  • 34.105.139.38
  • 34.105.147.157
  • 34.105.195.129
  • 34.105.194.210
  • 34.142.79.123
  • 34.142.55.58
  • 34.142.85.249
  • 34.105.148.38
  • 35.246.100.66
  • 35.246.3.165
  • 34.105.176.209
  • 35.189.95.167
  • 34.89.55.2

德国法兰克福 (europe-west3)

  • 35.242.243.255
  • 34.159.247.211
  • 35.198.128.126
  • 34.159.10.59
  • 34.159.72.77
  • 34.159.224.187
  • 34.89.159.138
  • 34.159.253.103
  • 34.159.244.43
  • 35.246.162.187
  • 34.89.141.190
  • 34.159.65.106
  • 34.159.197.31
  • 34.89.194.134
  • 34.159.252.155
  • 34.141.65.216
  • 34.159.124.62
  • 35.246.130.213
  • 34.89.206.21
  • 34.89.185.201
  • 34.159.171.46
  • 35.246.217.228
  • 35.242.236.115
  • 34.159.148.253

印度孟买 (asia-south1)

  • 35.200.234.34
  • 34.100.205.37
  • 34.93.225.12
  • 34.93.221.137
  • 35.244.24.198
  • 35.244.52.179

荷兰埃姆斯哈文 (europe-west4)

  • 35.204.118.28
  • 35.204.216.7
  • 34.90.52.191
  • 35.204.176.29
  • 34.90.199.95
  • 34.90.145.226
  • 34.141.162.7
  • 35.204.56.189
  • 35.204.11.229
  • 34.34.66.131
  • 34.32.195.89
  • 34.32.173.138

中国台湾彰化 (asia-east1)

  • 104.199.206.209
  • 34.80.173.212
  • 35.185.137.114

日本东京 (asia-northeast1)

  • 34.85.3.198
  • 34.146.68.203
  • 34.84.4.218

新加坡裕廊西 (asia-southeast1)

  • 34.143.210.116
  • 34.143.132.206
  • 34.87.134.202
  • 34.101.158.88
  • 34.101.157.238
  • 34.101.184.52

印度尼西亚雅加达 (asia-southeast2)

  • 34.101.158.88
  • 34.101.157.238
  • 34.101.184.52

澳大利亚悉尼 (australia-southeast1)

  • 34.87.195.36
  • 34.116.85.140
  • 34.151.78.48
  • 35.189.13.29
  • 35.189.9.81
  • 35.244.68.217

巴西奥萨斯库(圣保罗,southamerica-east1

  • 34.151.199.201
  • 35.199.122.19
  • 34.95.180.122
  • 34.95.168.38
  • 34.151.235.241
  • 34.95.181.19
  • 35.199.91.120
  • 35.247.197.109
  • 35.199.86.48
  • 35.199.106.166
  • 35.198.1.191
  • 35.247.235.128
  • 35.247.211.2
  • 35.247.200.249
  • 34.95.177.253

Amazon Elastic Kubernetes Service (Amazon EKS) 上托管的实例

对于托管在 Amazon EKS 上的实例,请将与您的区域匹配的 IP 地址添加到许可名单。

点击此处查看 Amazon EKS 上托管的实例的 IP 地址的完整列表

美国东部(北弗吉尼亚)(us-east-1)

  • 18.210.137.130
  • 54.204.171.253
  • 50.17.192.87
  • 54.92.246.223
  • 75.101.147.97
  • 18.235.225.163
  • 52.55.239.166
  • 52.86.109.68
  • 54.159.176.199
  • 3.230.52.220
  • 54.211.95.150
  • 52.55.10.236
  • 184.73.10.85
  • 52.203.92.114
  • 52.3.47.189
  • 52.7.255.54
  • 54.196.92.5
  • 52.204.125.244
  • 34.200.64.243
  • 18.206.32.254
  • 54.157.231.76
  • 54.162.175.244
  • 54.80.5.17
  • 35.168.173.238
  • 52.44.187.22
  • 18.213.96.40
  • 23.22.133.206
  • 34.239.90.169
  • 34.236.92.87
  • 3.220.81.241
  • 54.197.142.238
  • 34.200.121.56
  • 3.83.72.41
  • 54.159.42.144
  • 3.229.81.101
  • 34.225.255.220
  • 54.162.193.165
  • 34.235.77.117
  • 3.233.169.63
  • 54.87.86.113
  • 18.208.86.29
  • 52.44.90.201

美国东部(俄亥俄州)(us-east-2

  • 3.135.171.29
  • 18.188.208.231
  • 3.143.85.223

美国西部(俄勒冈)(us-west-2

  • 44.237.129.32
  • 54.184.191.250
  • 35.81.99.30

加拿大(中部)(ca-central-1

  • 52.60.157.61
  • 35.182.169.25
  • 52.60.59.128
  • 35.182.207.128
  • 15.222.172.64
  • 3.97.27.51
  • 35.183.191.133
  • 15.222.86.123
  • 52.60.52.14

欧洲(爱尔兰)(eu-west-1)

  • 54.74.243.246
  • 54.195.216.95
  • 54.170.208.67
  • 52.49.220.103
  • 52.31.69.117
  • 34.243.112.76
  • 52.210.85.110
  • 52.30.198.163
  • 34.249.159.112
  • 52.19.248.176
  • 54.220.245.171
  • 54.247.22.227
  • 176.34.116.197
  • 54.155.205.159
  • 52.16.81.139
  • 54.75.200.188
  • 34.248.52.4
  • 54.228.110.32
  • 34.248.104.98
  • 54.216.117.225
  • 52.50.172.40

欧洲(法兰克福)(eu-central-1)

  • 18.157.231.108
  • 18.157.207.33
  • 18.157.64.198
  • 18.198.116.133
  • 3.121.148.178
  • 3.126.54.154

亚太地区(东京)(ap-northeast-1)

  • 54.250.91.57
  • 13.112.30.110
  • 54.92.76.241
  • 52.68.245.25
  • 3.114.138.0
  • 54.249.39.36

亚太地区(悉尼)(ap-southeast-2

  • 13.238.132.174
  • 3.105.238.71
  • 3.105.113.36

南美洲(圣保罗)(sa-east-1)

  • 54.232.58.181
  • 54.232.58.98
  • 177.71.134.208

托管在 Microsoft Azure 上的实例

对于托管在 Azure 上的实例,请将与您的区域匹配的 IP 地址添加到许可名单。

点击此处查看 Microsoft Azure 上托管的实例的 IP 地址的完整列表

美国弗吉尼亚州 (us-east2)

  • 52.147.190.201

旧版托管

这些 IP 地址适用于托管在 AWS 上且在 2020 年 7 月 7 日之前创建的所有实例。

点击此处可查看旧版托管 IP 地址的完整列表

美国(AWS 默认)

  • 54.208.10.167
  • 54.209.116.191
  • 52.1.5.228
  • 52.1.157.156
  • 54.83.113.5

加拿大

  • 99.79.117.127
  • 35.182.216.56

亚洲

  • 52.68.85.40
  • 52.68.108.109

爱尔兰

  • 52.16.163.151
  • 52.16.174.170

德国

  • 18.196.243.94
  • 18.184.246.171

澳大利亚

  • 52.65.128.170
  • 52.65.124.87

南美洲

  • 52.67.8.103
  • 54.233.74.59

第 3 步:SSH 隧道技术

如果 SSH 服务器标签页已启用,请按照本页面中的说明将您的 SSH 服务器配置信息添加到 Looker 中。

SSH 服务器选项只有在部署在 Kubernetes 基础架构上且已启用向 Looker 实例添加 SSH 服务器配置信息的功能的情况下才可用。如果您的 Looker 实例未启用此选项,但您想要启用它,请与 Google Cloud 销售专家联系提交支持请求

在 Looker 的管理部分的连接页面中,选择 SSH 服务器标签页。

然后选择添加服务器。Looker 会显示添加 SSH 服务器页面:

  1. 输入 SSH 服务器配置的名称。
  2. 选择 Download Key,将公钥下载到文本文件。请务必保存此文件,因为稍后您需要将公钥添加到 SSH 服务器的授权密钥文件中。
  3. 输入 Looker 将用于连接到 SSH 服务器的用户名。
  4. 输入 SSH 服务器 IP 地址或主机名。
  5. 输入用于连接到 SSH 服务器的端口号。

第 4 步:准备隧道主机

将公钥添加到 authorized_keys 文件中

如需对 SSH 隧道会话进行身份验证,Looker 需要唯一的公钥(Looker 不支持使用密码登录)。如果您的实例上启用了 SSH 服务器标签页,您可以在输入 SSH 配置信息时选择下载密钥按钮,将公钥下载到文本文件中。如果您在 Looker 分析师的协助下配置 SSH 隧道,则 Looker 分析师会为您提供唯一的公钥。

您需要创建 looker 用户并将 Looker 公钥添加到 Looker .ssh/authorized_keys 文件中,从而准备主机(数据库服务器或隧道服务器)。具体方法如下:

  1. 在命令行中,创建一个名为 looker 的组:

    sudo groupadd looker
    
  2. 创建用户 looker 及其主目录:

    sudo useradd -m  -g looker  looker
    
  3. 切换到 looker 用户:

    sudo su - looker
    
  4. 创建 .ssh 目录:

    mkdir ~/.ssh
    
  5. 设置权限:

    chmod 700 ~/.ssh
    
  6. 切换到 .ssh 目录:

    cd ~/.ssh
    
  7. 创建 authorized_keys 文件:

    touch authorized_keys
    
  8. 设置权限:

    chmod 600 authorized_keys
    

使用您喜爱的文本编辑器,将您的 Looker 分析师提供的 SSH 密钥添加到 authorized_keys 文件中。键必须全部位于一行上。在某些情况下,从电子邮件中检索密钥时,电子邮件客户端会插入换行符。如果不移除,则无法建立 SSH 隧道。

ssh-rsa 添加到您的 sshd_config 文件中

默认情况下,OpenSSH 停用了 ssh-rsa,这可能会导致在设置 SSH 隧道时出错。如需解决此问题,请将 ssh-rsa 添加到服务器接受的算法列表中。具体方法如下:

  1. 修改 sshd_config 文件。通常可以在 ~/etc/ssh/sshd_config 找到它。
  2. 请将以下内容添加到 sshd_config 文件:

       HostKeyAlgorithms +ssh-rsa
       PubKeyAcceptedAlgorithms +ssh-rsa
    

隧道安全注意事项

当 SSH 隧道在数据库服务器上终止时,来自 Looker 的连接似乎是数据库服务器上的本地连接。因此,它打破了 MySQL 等数据库平台内置的基于连接的安全机制。例如,通常将本地访问权限授予没有密码的 root 用户!

默认情况下,打开 SSH 访问权限还允许转发任何端口,绕过 Looker 与终止 SSH 隧道的数据库主机之间的任何防火墙。这种安全风险很可能被视为不可接受。通过正确配置 Looker 公钥的 .ssh/authorized_keys 条目,可以控制此端口转发以及登录隧道服务器的功能。

例如,您可以在 authorized_keys 文件中的 Looker SSH 密钥前面添加以下文本。请注意,必须根据您的环境自定义这些文字。

no-pty,no-X11-forwarding,permitopen="localhost:3306",permitopen="localhost:3307",
command="/bin/echo Login Not Permitted"

如需查看示例和完整详细信息,请参阅 Linux 文档 man sshman authorized_keys

后续步骤

如果您的实例上启用了 SSH 服务器标签页,请返回到添加 SSH 服务器页面,然后选择测试和请求指纹以验证与 SSH 服务器的连接。Looker 会显示一个屏幕,其中包含新的 SSH 配置和用于下载或查看公钥以及查看 SSH 服务器配置的唯一指纹的选项。

然后,在数据库连接设置页面上执行以下操作:

  1. SSH 服务器切换开关上的滑块滑至开启位置,然后从下拉列表中选择您的 SSH 服务器配置。
  2. 远程主机端口字段中,输入数据库的 IP 地址或主机名和端口号。

使用 SSH 隧道的数据库连接无法将用户属性应用于远程主机端口字段。

如果您在 Looker 分析师的协助下配置 SSH 隧道,请通知 Looker 分析师您已准备好测试 SSH 隧道。他们确认隧道已建立后,会为您提供 SSH 隧道的 Looker 端的端口号。

然后,在数据库连接设置页面上执行以下操作:

  1. 远程主机字段中输入 localhost
  2. 端口字段中,输入由 Looker 分析师提供的 SSH 隧道的 Looker 端的端口号。
  3. 在数据库连接页面上,关闭验证 SSL 证书

    设置从 Looker 到数据库的 SSH 隧道时,不支持 SSL 证书。相反,您在第 4 步中添加的 SSH 密钥可提供 Looker 和数据库之间的握手安全性。