Looker とデータベース間の強力な暗号化を実現するには、トンネル サーバーまたはデータベース サーバー自体への SSH トンネルを作成します。
Google BigQuery や Amazon Athena データベースなど、単一のホストアドレスがないデータベースでは SSH トンネルを使用できません。BigQuery と Athena のユーザーはここに記載の手順をスキップして、直接データベースの構成に進んでください。
ステップ 1: トンネルを終端するホストを選択する
データベースの SSH トンネル アクセスを設定するには、まず、トンネルの終端に使用するホストを選択します。トンネルは、データベース ホスト自体、または別のホスト(トンネル サーバー)上で終了できます。
データベース サーバーの使用
データベースで終端すると、シンプルになるという利点があります。ホストが 1 つ少ないため、追加のマシンとそれに関連する費用がかかりません。欠点は、データベース サーバーがインターネットから直接アクセスできない保護されたネットワーク上に置かれる可能性があることです。
トンネル サーバーの使用
別のサーバーでトンネルを終端すると、インターネットからデータベース サーバーにアクセスできないという利点が得られます。トンネル サーバーが不正使用された場合でも、データベース サーバーからは一歩距離があります。トンネル サーバーでは、重要でないソフトウェアやユーザーをすべて削除し、IDS などのツールで注意深く監視することをおすすめします。
トンネル サーバーには、次の条件を満たす Unix / Linux ホストを指定できます。
- インターネットから SSH 経由でアクセスできる
- データベースにアクセスできる
ステップ 2: IP 許可リストを作成する
2 番目のステップでは、ネットワーク トラフィックが 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 アドレスを許可リストに追加します。レガシーホスティング
2020年7月7日より前に作成され、AWSでホストされているすべてのインスタンスでは、以下のIPアドレスを使用してください。従来のホスティング向けの 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 Servers] タブが有効になっている場合は、このページの手順で Looker に SSH サーバー構成情報を追加します。
[SSH Server] オプションは、インスタンスが Kubernetes インフラストラクチャにデプロイされており、Looker インスタンスに SSH サーバー設定情報を追加する機能が有効になっている場合に限り利用できます。Looker インスタンスでこのオプションが有効になっておらず、有効にしたい場合は、Looker のアカウントマネージャーに連絡するか、Looker のヘルプセンターでサポート リクエストを上げてください。
Looker の [Admin] セクションの [Connections] ページで、[SSH Server] タブをクリックします。
[Add Server] をクリックします。Looker に [Add SSH Server] ページが表示されます。
- SSH サーバー構成の名前を入力します。
- [Download Key] をクリックして、公開鍵をテキスト ファイルにダウンロードします。この公開鍵は、後で SSH サーバーの承認済み鍵ファイルに追加する必要があるので、必ず保存してください。
- Looker が SSH サーバーに接続する際に使用するユーザー名を入力します。
- SSH サーバーの IP アドレスまたはホスト名を入力します。
- SSH サーバーへの接続に使用するポート番号を入力します。
ステップ 4: トンネルホストを準備する
公開鍵を authorized_keys
ファイルに追加する
SSH トンネル セッションを認証するために、Looker は一意の公開鍵を要求します(Looker ではパスワードによるログインはサポートされていません)。[SSH Server] タブがインスタンスで有効になっている場合は、SSH の構成情報を入力する際に [Download Key] ボタンをクリックして公開鍵をテキストファイルにダウンロードできます。Looker アナリストの支援を受けて SSH トンネルを構成する場合、Looker アナリストが一意の公開鍵を提供します。
looker
ユーザーを作成して Looker の .ssh/authorized_keys
ファイルに Looker 公開鍵を追加し、ホスト(データベース サーバーかトンネル サーバーのいずれか)を準備する必要があります。手順は次のとおりです。
コマンドラインで、
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
ファイルに追加します。キーはすべて 1 行にする必要があります。メールからキーを取得する際、メール クライアントが改行を挿入することがあります。これを削除しないと SSH トンネルを確立できません。
sshd_config
ファイルに ssh-rsa
を追加する
OpenSSH はデフォルトで ssh-rsa を無効にしているため、SSH トンネルの設定時にエラーが発生する可能性があります。この問題を解決するには、サーバーの受け入れアルゴリズムのリストに ssh-rsa
を追加します。手順は次のとおりです。
sshd_config
ファイルを編集します。これは通常、~/etc/ssh/sshd_config
にあります。次のコードを
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"
例と詳細については、man ssh
と man authorized_keys
の Linux のドキュメントをご覧ください。
次のステップ
[SSH Server] タブがインスタンスで有効になっている場合は、[Add SSH Server] ページにもどって [Test & Request Fingerprint] をクリックし、SSH サーバーへの接続を確認します。新しい SSH 構成と、公開鍵のダウンロードまたは表示、SSH サーバー構成の一意のフィンガープリントの表示の各オプションが画面に表示されます。
次に、データベースの [Connection Settings] ページで次の操作を行います。
- [SSH Server] を有効にし、プルダウン リストから SSH サーバー構成を選択します。
- [Remote Host:Port] フィールドに、データベースの IP アドレスまたはホスト名とポート番号を入力します。
SSH トンネルを使用するデータベース接続では、[Remote Host:Port] フィールドにユーザー属性を適用できません。
Looker アナリストの支援を受けて SSH トンネルを構成する場合は、SSH トンネルをテストする準備ができていることを Looker アナリストに通知します。トンネルが確立されると、Looker アナリストは SSH トンネルの Looker 側のポート番号が通知されます。
次に、データベースの [Connection Settings] ページで次の操作を行います。
- [Remote Host] フィールドに「
localhost
」と入力します。 - [Port] フィールドに、Looker アナリストから提供された SSH トンネルの Looker 側のポート番号を入力します。
データベースの [Connections] ページで [Verify SSL Cert] をオフにします。
Looker からデータベースに SSH トンネルを設定する場合は、SSL 証明書はサポートされません。代わりに、ステップ 4 で追加した SSH 認証鍵は、Looker とデータベース間の handshake セキュリティを提供します。