SSH 터널 사용

Looker와 데이터베이스 간에 가장 강력한 암호화를 위해서는 터널 서버 또는 데이터베이스 서버 자체에 대한 SSH 터널을 만들면 됩니다.

Google BigQuery 및 Amazon Athena 데이터베이스와 같이 단일 호스트 주소가 없는 데이터베이스에는 SSH 터널을 사용할 수 없습니다. BigQuery 및 Athena 사용자는 데이터베이스 구성으로 바로 건너뛰어야 합니다.

1단계: 터널을 종료할 호스트 선택

데이터베이스에 대해 SSH 터널 액세스를 설정하는 첫 번째 단계는 터널을 종료하는 데 사용할 호스트를 선택하는 것입니다. 데이터베이스 호스트 자체 또는 별도의 호스트(터널 서버)에서 터널을 종료할 수 있습니다.

데이터베이스 서버 사용

터널 서버를 사용하지 않는 경우 Looker가 공개 인터넷을 통해 SSH 터널을 통해 데이터베이스 서버에 직접 연결합니다. 데이터베이스를 종료하면 단순성 이점이 있습니다. 관련된 호스트가 하나 적기 때문에 추가적인 머신 및 관련 비용이 발생하지 않습니다. 데이터베이스 서버가 인터넷에서 직접 액세스할 수 없는 보호된 네트워크에 있으면 이 옵션을 사용하지 못할 수 있습니다.

터널 서버 사용

터널 서버를 사용하면 Looker가 제한된 네트워크의 별도의 터널 서버를 통해 데이터베이스 서버에 연결합니다. 별도의 서버에서 터널을 종료하면 인터넷에서 데이터베이스 서버에 액세스할 수 없다는 이점이 있습니다. 터널 서버가 손상된 경우 데이터베이스 서버에서 한 단계가 삭제됩니다. 터널 서버에서 필수가 아닌 소프트웨어 및 사용자를 모두 삭제하고 IDS와 같은 도구로 면밀히 모니터링하는 것이 좋습니다.

터널 서버는 다음과 같은 모든 Unix/Linux 호스트일 수 있습니다.

  1. SSH를 사용하여 인터넷에서 액세스할 수 있음
  2. 데이터베이스에 액세스할 수 있음

2단계: IP 허용 목록 만들기

두 번째 단계는 일반적으로 TCP 포트 22에 있는 SSH를 통해 네트워크 트래픽이 터널 서버 또는 데이터베이스 호스트에 도달하도록 허용하는 것입니다.

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

기존 호스팅

AWS에서 호스팅되고 2020년 7월 7일 이전에 생성된 모든 인스턴스에 이러한 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 서버이 사용 설정된 경우 이 페이지의 안내에 따라 SSH 서버 구성 정보를 Looker에 추가합니다.

SSH 서버 옵션은 인스턴스가 Kubernetes 인프라에 배포된 경우 및 Looker 인스턴스에 SSH 서버 구성 정보를 추가하는 기능이 사용 설정된 경우에만 사용할 수 있습니다. Looker 인스턴스에서 이 옵션을 사용 설정하지 않고 이를 사용 설정하려면 Google Cloud 영업 전문가에게 문의하거나 지원 요청을 제출합니다.

Looker의 관리 섹션에 있는 연결 페이지에서 SSH 서버 탭을 선택합니다.

그런 다음 서버 추가를 선택합니다. Looker에 SSH 서버 추가 페이지가 표시됩니다.

  1. SSH 서버 구성의 이름을 입력합니다.
  2. 키 다운로드를 선택하여 공개 키를 텍스트 파일로 다운로드합니다. 나중에 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 터널을 설정할 수 없습니다.

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과 같은 데이터베이스 플랫폼에 내장된 연결 기반 보안 메커니즘이 무산됩니다. 예를 들어 비밀번호 없이 로컬 액세스 권한을 루트 사용자에게 부여하는 것이 매우 일반적입니다.

기본적으로 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 서버을 사용 설정한 경우 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와 데이터베이스 간에 핸드셰이크 보안을 제공합니다.