要实现最强大的 Looker 和数据库之间的加密,您可以创建一个隧道服务器或数据库服务器本身来创建一个 SSH 隧道。
SSH 隧道不适用于缺少单个主机地址的数据库,例如 Google BigQuery 和 Amazon Athena 数据库。BigQuery 和 Athena 用户应直接跳转到数据库配置。
第 1 步:选择终止隧道的主机
要为您的数据库设置 SSH 隧道访问权限,第一步是选择将用于终止隧道的主机。隧道可以在数据库主机本身或单独的主机(隧道服务器)上终止。
使用数据库服务器
在不使用隧道服务器的情况下,Looker 通过公共互联网通过 SSH 隧道直接连接到您的数据库服务器。终止数据库具有简单易用的优势。减少主机需求,因此不会增加额外的机器及其相关费用。如果您的数据库服务器所在的互联网未直接访问互联网,则此选项可能不可行。
使用隧道服务器
当您使用隧道服务器时,Looker 会通过受限网络上的单独隧道服务器连接到您的数据库服务器。在单独的服务器上终止隧道的好处是无法将您的数据库服务器从互联网访问。如果隧道服务器被破解,则只需再执行一步即可从数据库服务器中移除。建议您从隧道服务器中移除所有非必要的软件和用户,并使用 IDS 等工具密切监控。
隧道服务器可以是任何具备下列特点的 Unix/Linux 主机:
- 可以使用 SSH 从互联网访问
- 可以访问数据库
第 2 步:创建 IP 许可名单
第二步是允许网络流量通过 SSH(通常位于 TCP 端口 22)上到达隧道服务器或数据库主机。
允许托管您 Looker 实例的区域中列出的每个 IP 地址的网络流量。默认情况下,这将是美国。
在 Google Cloud 上托管的实例
默认情况下,Looker 托管的实例托管在 Google Cloud 上。对于托管在 Google Cloud 上的实例,请将与您的区域匹配的 IP 地址添加到许可名单。
点击此处获取 Google Cloud 上托管的实例的完整 IP 地址列表
美国南卡罗来纳州蒙克斯科纳 (us-east1
)
34.75.58.123
35.196.30.110
35.243.254.166
34.111.239.102
35.237.174.17
34.73.200.235
35.237.168.216
美国北弗吉尼亚州阿什本 (us-east4
)
35.221.30.177
35.245.82.73
35.194.74.185
35.245.177.112
34.86.118.239
34.86.52.188
35.221.3.163
35.245.211.109
34.86.136.190
34.86.214.226
35.221.62.218
34.86.34.135
35.236.240.168
34.150.212.9
34.150.174.54
34.85.200.217
34.145.147.146
35.245.20.16
34.145.139.22
34.150.217.20
35.199.35.176
35.245.72.35
35.236.220.225
34.150.180.94
34.85.187.175
美国爱荷华州康瑟尔布拉夫斯 (us-central1
)
34.69.207.176
34.70.128.74
35.239.118.197
104.154.21.231
35.192.130.126
35.184.100.51
34.172.2.227
34.71.191.210
34.173.109.50
美国俄勒冈州达尔斯 (us-west1
)
34.82.120.25
35.247.5.99
35.197.64.57
35.233.172.23
35.233.249.160
35.247.55.33
35.247.117.0
35.247.61.151
34.82.193.215
35.233.222.226
34.83.94.151
35.203.184.48
34.83.138.105
35.197.35.188
34.127.116.85
34.145.90.83
34.127.41.199
34.82.57.225
35.197.66.244
34.105.127.122
35.233.191.84
34.145.93.130
美国加利福尼亚州洛杉矶 (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.234.252.150
35.203.0.6
35.203.96.235
英国伦敦 (europe-west2
)
35.189.94.105
35.246.36.67
35.234.140.77
34.142.77.18
34.105.131.133
34.89.54.84
34.89.124.139
34.89.25.5
34.105.209.44
34.105.181.133
35.242.138.133
34.105.219.154
34.89.127.51
35.246.10.206
35.189.111.173
35.197.222.220
34.105.198.151
35.246.117.58
34.142.123.96
34.105.176.209
35.189.95.167
34.89.55.2
35.197.199.20
35.242.174.158
34.89.3.120
德国法兰克福 (europe-west3
)
34.159.224.187
34.159.10.59
34.159.72.77
35.242.243.255
34.159.247.211
35.198.128.126
34.89.159.138
34.159.253.103
34.159.244.43
印度孟买 (asia-south1
)
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
台湾彰化 (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
35.200.82.72
34.84.163.27
34.85.31.212
新加坡裕廊西 (asia-southeast1
)
34.143.210.116
34.143.132.206
34.87.134.202
35.197.143.5
35.247.186.68
34.142.215.26
35.198.246.81
印度尼西亚雅加达 (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
托管在 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
亚太地区(悉尼)(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 地址添加到许可名单。旧式托管
这些 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 中。
如果实例部署在 Kubernetes 基础架构上,且已启用将 SSH 服务器配置信息添加到 Looker 实例的功能,则 SSH 服务器选项可用。如果您的 Looker 实例未启用此选项,而您希望启用它,请与 Google Cloud 销售专员联系或打开支持请求。
在 Looker 管理部分的连接页面中,选择 SSH 服务器标签页。
然后选择添加服务器。Looker 会显示添加 SSH 服务器页面:
- 输入 SSH 服务器配置的名称。
- 选择 Download Key,将公钥下载到文本文件。请务必保存此文件,因为您稍后需要将公钥添加到 SSH 服务器的授权密钥文件中。
- 输入 Looker 将用于连接到 SSH 服务器的用户名。
- 输入 SSH 服务器 IP 地址或主机名。
- 输入用于连接到 SSH 服务器的端口号。
第 4 步:准备隧道主机
将公钥添加到 authorized_keys
文件
要对 SSH 隧道会话进行身份验证,Looker 需要使用唯一的公钥(Looker 不支持使用密码登录)。如果您的实例启用了 SSH 服务器标签页,您可以在输入 SSH 配置信息时选择下载密钥按钮,从而将公钥下载到文本文件。如果您是在 Looker 分析师的帮助下配置 SSH 隧道,您的 Looker 分析师将为您提供一个唯一的公钥。
您需要创建主机 looker
并将 Looker 公钥添加到 Looker .ssh/authorized_keys
文件中,从而准备好主机(数据库服务器或隧道服务器)。具体方法如下:
在命令行中,创建一个名为
looker
的组:sudo groupadd looker
创建用户
looker
及其主目录:sudo useradd -m -g looker looker
切换到
looker
用户:sudo su - looker
创建
.ssh
目录:mkdir ~/.ssh
设置权限:
chmod 700 ~/.ssh
切换到
.ssh
目录:cd ~/.ssh
创建
authorized_keys
文件:touch authorized_keys
设置权限:
chmod 600 authorized_keys
使用您喜爱的文本编辑器,将 Looker 分析师提供的 SSH 密钥添加到 authorized_keys
文件中。密钥必须始终位于一行中。在某些情况下,当您从电子邮件中检索该密钥时,您的电子邮件客户端将插入换行符。如果不移除,则无法建立 SSH 隧道。
将 ssh-rsa
添加到您的 sshd_config
文件中
OpenSSH 默认已停用 ssh-rsa,这可能会在设置 SSH 隧道时导致错误。如需解决此问题,请将 ssh-rsa
添加到您服务器接受的算法列表中。具体方法如下:
- 修改
sshd_config
文件。通常可以在以下位置找到它:~/etc/ssh/sshd_config
。 请将以下内容添加到
sshd_config
文件:HostKeyAlgorithms +ssh-rsa PubKeyAcceptedAlgorithms +ssh-rsa
隧道安全注意事项
当 SSH 隧道在数据库服务器上终止时,Looker 的连接看起来就像是数据库服务器上的本地连接。因此,它打破了数据库平台(如 MySQL)内置的基于连接的安全机制。例如,向本地用户授予没有密码的本地访问权限的情况很常见!
默认情况下,打开 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"
如需查看示例和完整详情,请参阅 man ssh
和 man authorized_keys
Linux 文档。
后续步骤
如果您的实例启用了 SSH 服务器标签页,请返回到添加 SSH 服务器页面,然后选择测试和请求指纹以验证你与 SSH 服务器的连接。Looker 会显示一个屏幕,其中显示了新的 SSH 配置和选项,供您下载或查看公钥以及查看 SSH 服务器配置的唯一指纹。
然后,在数据库连接设置页面上执行以下操作:
- 将 SSH 服务器切换开关上的滑块滑至开启位置,然后从下拉列表中选择您的 SSH 服务器配置。
- 在远程主机和端口字段中,输入数据库的 IP 地址或主机名和端口号。
使用 SSH 隧道的数据库连接无法向远程主机和端口字段应用用户属性。
如果您是在 Looker 分析师的帮助下配置 SSH 隧道,请通知您的 Looker 分析师您已准备好测试 SSH 隧道。他们确认隧道建立之后,会向您提供 SSH 隧道的 Looker 端的端口号。
然后,在数据库连接设置页面上执行以下操作:
- 在 Remote Host(远程主机)字段中输入
localhost
。 - 在端口字段中,输入 Looker 分析师提供的 SSH 隧道的 Looker 端的端口号。
关闭数据库连接页面上的验证 SSL 证书。
从 Looker 设置指向数据库的 SSH 隧道时,不支持 SSL 证书。相反,您在第 4 步中添加的 SSH 密钥会在 Looker 和数据库之间提供握手安全性。