SSH トンネルを使用する

Looker とデータベース間の強力な暗号化を実現するには、トンネル サーバーまたはデータベース サーバー自体への SSH トンネルを作成します。

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

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

データベースの SSH トンネル アクセスを設定するには、まず、トンネルの終端に使用するホストを選択します。トンネルは、データベース ホスト自体、または別のホスト(トンネル サーバー)上で終了できます。

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

データベースで終端すると、シンプルになるという利点があります。ホストが 1 つ少ないため、追加のマシンとそれに関連する費用がかかりません。欠点は、データベース サーバーがインターネットから直接アクセスできない保護されたネットワーク上に置かれる可能性があることです。

トンネル サーバーの使用

別のサーバーでトンネルを終端すると、インターネットからデータベース サーバーにアクセスできないという利点が得られます。トンネル サーバーが不正使用された場合でも、データベース サーバーからは一歩距離があります。トンネル サーバーでは、重要でないソフトウェアやユーザーをすべて削除し、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.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 アドレスを許可リストに追加します。

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 インスタンスでこのオプションが有効になっておらず、有効にしたい場合は、Looker のアカウントマネージャーに連絡するか、Looker のヘルプセンターでサポート リクエストを上げてください。

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 トンネルを使用するデータベース接続では、[Remote Host:Port] フィールドにユーザー属性を適用できません。

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 セキュリティを提供します。