SSH 터널 사용

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

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

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

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

데이터베이스 서버 사용

데이터베이스에서 종료하는 것은 단순하다는 이점이 있습니다. 관련된 호스트가 하나 더 적으므로 추가 머신과 관련 비용이 없습니다. 단점은 데이터베이스 서버가 인터넷에서 직접 액세스할 수 없는 보호 네트워크에 있을 수 있다는 것입니다.

터널 서버 사용

별도의 서버에서 터널을 종료하면 인터넷에서 데이터베이스 서버에 액세스할 수 없다는 이점이 있습니다. 터널 서버가 손상된 경우 데이터베이스 서버에서 한 단계만 삭제됩니다. 터널 서버에서 필수가 아닌 소프트웨어와 사용자를 모두 삭제하고 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.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

기존 호스팅

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 인프라에 배포되고 SSH 서버 구성 정보를 Looker 인스턴스에 추가할 수 있는 기능이 사용 설정된 경우에만 사용할 수 있습니다. Looker 인스턴스에 이 옵션이 사용 설정되지 않은 상태에서 사용 설정하려면 Looker 계정 관리자에게 문의하거나 Looker 고객센터에서 지원 요청을 여세요.

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

기본적으로 SSH 액세스를 열면 어떤 포트도 전달하여 SSH 터널을 종료하는 Looker와 데이터베이스 호스트 간의 방화벽을 우회할 수 있습니다. 이러한 보안 위험은 용납되지 않는 것으로 간주될 수 있습니다. 이 포트 전달과 터널 서버에 로그인하는 기능은 Looker 공개 키의 .ssh/authorized_keys 항목을 적절하게 구성하여 제어할 수 있습니다.

예를 들어 authorized_keys 파일의 Looker SSH 키 앞에 다음 텍스트를 추가할 수 있습니다. 이 텍스트는 환경에 맞게 맞춤설정되어야 합니다(MUST).

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와 데이터베이스 간에 핸드셰이크 보안을 제공합니다.