SSH トンネルを使用する

Looker とデータベース間で最も強力な暗号化を行うために、トンネル サーバーまたはデータベース サーバー自体への SSH トンネルを作成できます。

SSH トンネルは、Google BigQuery や Amazon Athena データベースなど、ホストアドレスが 1 つもないデータベースでは使用できません。BigQuery と Athena のユーザーはここに記載の手順をスキップして、直接データベースの構成に進んでください。

ステップ 1: トンネルを終端するホストを選択する

データベースの SSH トンネル アクセスを設定する最初のステップは、トンネルの終端に使用するホストを選択することです。トンネルは、データベース ホスト自体で終端することも、別のホスト(トンネル サーバー)で終端することもできます。

データベース サーバーの使用

トンネル サーバーを使用しない場合、Looker は公共のインターネット経由で SSH トンネルを通じてデータベース サーバーに直接接続します。データベースで終端すると、シンプルになるという利点があります。ホストは 1 つ少ないため、追加のマシンとそれに関連する費用がかかりません。データベース サーバーが、インターネットから直接アクセスできない保護されたネットワーク上にある場合、このオプションは実行できない場合があります。

トンネル サーバーの使用

トンネル サーバーを使用する場合、Looker は制限付きネットワーク上の別のトンネル サーバーを通じてデータベース サーバーに接続します。別のサーバーでトンネルを終端すると、インターネットからデータベース サーバーにアクセスできないという利点が得られます。トンネル サーバーが不正使用された場合でも、データベース サーバーからは一歩距離があります。トンネル サーバーでは、重要でないソフトウェアやユーザーをすべて削除し、IDS などのツールで注意深く監視することをおすすめします。

トンネル サーバーには、次の条件を満たす Unix / Linux ホストを指定できます。

  1. SSH を使用してインターネットからアクセスできる
  2. データベースにアクセスできる

ステップ 2: IP 許可リストを作成する

2 番目のステップでは、ネットワーク トラフィックが 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

レガシーホスティング

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 インスタンスで有効になっておらず、有効にしたい場合は、Google Cloud セールス スペシャリストにお問い合わせいただくか、サポート リクエストを開いてください

Looker の [Admin] セクションの [Connections] ページで、[SSH Server] タブをクリックします。

それから、[Add Server] を選択します。Looker に [Add SSH Server] ページが表示されます。

  1. SSH サーバー構成の名前を入力します。
  2. [Download Key] を選択して、公開鍵をテキスト ファイルにダウンロードします。後で SSH サーバーの承認済の鍵ファイルに公開鍵を追加する必要があるため、このファイルを必ず保存してください。
  3. Looker が SSH サーバーに接続する際に使用するユーザー名を入力します。
  4. SSH サーバーの IP アドレスまたはホスト名を入力します。
  5. SSH サーバーへの接続に使用するポート番号を入力します。

ステップ 4: トンネルホストを準備する

公開鍵を authorized_keys ファイルに追加する

SSH トンネル セッションを認証するために、Looker は一意の公開鍵を要求します(Looker ではパスワードによるログインはサポートされていません)。[SSH Server] タブがインスタンスで有効になっている場合は、SSH の構成情報を入力する際に [Download Key] ボタンを選択して公開鍵をテキストファイルにダウンロードできます。Looker アナリストの支援を受けて SSH トンネルを構成する場合、Looker アナリストは一意の公開鍵を提供します。

looker ユーザーを作成して Looker の .ssh/authorized_keys ファイルに Looker 公開鍵を追加し、ホスト(データベース サーバーかトンネル サーバーのいずれか)を準備する必要があります。手順は次のとおりです。

  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 ファイルに追加します。キーはすべて 1 行にする必要があります。メールからキーを取得するときに、メール クライアントによって改行が挿入される場合があります。これを削除しないと、SSH トンネルを確立できなくなります。

sshd_config ファイルに ssh-rsa を追加する

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"

例と詳細については、man sshman authorized_keys の Linux ドキュメントをご覧ください。

次のステップ

[SSH Server] タブがインスタンスで有効になっている場合は、[Add SSH Server] ページにもどって [Test & Request Fingerprint] を選択し、SSH サーバーへの接続を確認します。新しい SSH 構成と、公開鍵のダウンロードまたは表示、SSH サーバー構成の一意のフィンガープリントの表示の各オプションが画面に表示されます。

次に、データベースの [Connection Settings] ページで次の操作を行います。

  1. [SSH Server] を有効にし、プルダウン リストから SSH サーバー構成を選択します。
  2. [Remote Host] フィールドと [Port] フィールドに、データベースの IP アドレスまたはホスト名とポート番号を入力します。

SSH トンネルを使用したデータベース接続では、リモートホストおよびポートフィールドにユーザー属性を適用することはできません。

Looker アナリストの支援を受けて SSH トンネルを構成する場合は、SSH トンネルをテストする準備ができていることを Looker アナリストに通知します。トンネルが確立されると、Looker アナリストは SSH トンネルの Looker 側のポート番号が通知されます。

次に、データベースの [Connection Settings] ページで次の操作を行います。

  1. [Remote Host] フィールドに「localhost」と入力します。
  2. [Port] フィールドに、Looker アナリストから提供された SSH トンネルの Looker 側のポート番号を入力します。
  3. データベースの [Connections] ページで [Verify SSL Cert] をオフにします。

    Looker からデータベースに SSH トンネルを設定する場合は、SSL 証明書はサポートされません。代わりに、ステップ 4 で追加した SSH 鍵により、Looker とデータベース間の handshake セキュリティが提供されます。