Infograb logo
데이터베이스 접근 GUI 클라이언트

이 가이드는 Teleport와 함께 작동하도록 인기 있는 그래픽 데이터베이스 클라이언트를 구성하는 방법을 설명합니다.

Teleport 환경 설정하기

전제 조건

  • 실행 중인 Teleport 클러스터 버전 17.0.0-dev 이상. Teleport를 시작하려면 가입하여 무료 평가판을 이용하거나 데모 환경 설정 방법을 확인하십시오.

  • tctl 관리자 도구와 tsh 클라이언트 도구.

    tctltsh 다운로드 방법에 대한 지침은 설치를 방문하십시오.

  • 연결이 가능한지 확인하기 위해 tsh login 으로 로그인한 다음, 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 17.0.0-dev

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결할 수 있고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 후속 tctl 명령어를 실행할 수 있습니다.
    자신의 Teleport 클러스터를 호스팅하는 경우, Teleport Auth Service를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.
  • 데이터베이스에 접근하기 위해 구성된 Teleport 데이터베이스 서비스. 데이터베이스를 위해 Teleport 데이터베이스 서비스를 설정하는 방법에 대한 가이드는 다음을 참조하십시오.
    guides.

연결 정보 얻기

데이터베이스에 접근하기 위해 GUI 클라이언트를 구성할 수 있도록 데이터베이스가 사용 가능한 호스트 및 포트에 대한 정보를 얻습니다.

로컬 프록시 서버 사용하기

tsh proxy db 명령을 사용하여 GUI 데이터베이스 클라이언트가 연결할 로컬 TLS 프록시를 시작합니다. 이 명령은 Teleport Enterprise (Cloud)를 사용하거나, Teleport를 자가 호스팅하는 경우 TLS 라우팅 모드를 활성화해야 합니다.

다음과 유사한 명령을 실행하십시오::

tsh proxy db <database-name>
Started DB proxy on 127.0.0.1:61740
Use following credentials to connect to the <database-name> proxy: ca_file=/Users/r0mant/.tsh/keys/root.gravitational.io/certs.pem cert_file=/Users/r0mant/.tsh/keys/root.gravitational.io/alice-db/root/<database-name>-x509.pem key_file=/Users/r0mant/.tsh/keys/root.gravitational.io/alice

GUI 클라이언트를 구성할 때 표시된 로컬 프록시 호스트/포트 및 자격 증명 경로를 사용하십시오. 호스트 이름을 입력할 때는 127.0.0.1 대신 localhost 를 사용하십시오.

--tunnel 플래그를 사용하여 로컬 데이터베이스 프록시를 시작하면 데이터베이스 인스턴스에 연결하는 데 사용할 수 있는 인증된 터널이 생성됩니다. 이 터널에 연결할 때 자격 증명을 구성할 필요가 없습니다.

프록시를 시작하는 방법에 대한 예시는 다음과 같습니다:

Start the local proxy.

tsh proxy db --tunnel <database-name>
Started authenticated tunnel for the <engine> database "<database-name>" in cluster "<cluster-name>" on 127.0.0.1:62652.

데이터베이스에 연결할 때 기본적으로 사용할 데이터베이스 이름과 사용자를 선택적으로 지정할 수 있습니다:

tsh proxy db --db-user=my-database-user --db-name=my-schema --tunnel <database-name>

이제 프록시 명령이 반환하는 주소에 연결할 수 있습니다. 우리의 예에서는 127.0.0.1:62652 입니다.

원격 호스트 및 포트 사용하기

자가 호스팅하는 Teleport를 사용 중이고 TLS 라우팅을 사용하지 않는 경우 다음 명령을 실행하여 데이터베이스 연결 정보를 확인하십시오:

View configuration for the database you're logged in to.

tsh db config

View configuration for the specific database when you're logged into multiple.

tsh db config example

로컬에 캐시된 인증서 및 키 파일의 경로가 표시됩니다:

Name:      example
Host:      teleport.example.com
Port:      3080
User:      postgres
Database:  postgres
CA:        /Users/alice/.tsh/keys/teleport.example.com/certs.pem
Cert:      /Users/alice/.tsh/keys/teleport.example.com/alice-db/root/example-x509.pem
Key:       /Users/alice/.tsh/keys/teleport.example.com/alice

표시된 CA , Cert , 및 Key 파일은 pgAdmin 4, MySQL Workbench 및 상호 TLS 인증을 지원하는 기타 그래픽 데이터베이스 클라이언트를 통해 연결하는 데 사용됩니다.

MongoDB Compass

Compass 는 공식 MongoDB 그래픽 클라이언트입니다.

"새 연결" 패널에서 "연결 필드를 각각 채우기"를 클릭합니다.

MongoDB Compass 새 연결

"호스트 이름" 탭에서 데이터베이스에 접근할 프록시의 호스트 이름과 포트를 입력합니다 (자세한 정보는 연결 정보 가져오기를 참조하세요). "인증"을 None으로 설정합니다.

MongoDB Compass 호스트 이름

"더 많은 옵션" 탭에서 SSL을 "클라이언트 및 서버 검증"으로 설정하고 CA, 클라이언트 키 및 인증서를 설정합니다. CA 경로는 제공되어야 하며, Teleport Proxy Service의 웹 엔드포인트에서 제공하는 인증서를 검증할 수 있어야 합니다.

MongoDB Compass 더 많은 옵션

더 많은 옵션 탭의 다음 필드는 이전에 실행한 tsh proxy db 명령에서 출력된 경로와 일치해야 합니다:

필드경로
인증 기관ca_file
클라이언트 인증서cert_file
클라이언트 개인 키key_file

"연결" 버튼을 클릭합니다.

MySQL DBeaver

주 뷰의 "데이터베이스 탐색기" 메뉴에서 오른쪽 클릭하고 만들기 > 연결을 선택합니다:

DBeaver 서버 추가

열리는 "데이터베이스에 연결" 창의 검색창에 "mysql"을 입력하고 MySQL 드라이버를 선택한 후 "다음"을 클릭합니다:

DBeaver 드라이버 선택

새로 열린 "연결 설정" 탭에서 호스트는 localhost 로, 포트는 프록시 명령에서 반환된 포트(위의 예제에서 62652 )로 설정합니다:

같은 탭에서 Teleport를 사용하여 연결하는 사용자 이름을 설정하고 "비밀번호를 로컬에 저장" 박스를 체크 해제합니다:

DBeaver 사용자 구성 선택

"메인" 탭에서 "드라이버 설정 편집" 버튼을 클릭하고 "인증 없음" 박스를 체크한 후 "확인"을 클릭하여 저장합니다:

DBeaver 드라이버 설정

"연결 설정" 창으로 돌아오면 "확인"을 클릭하여 완료하고 DBeaver가 원격 MySQL 서버에 자동으로 연결됩니다.

MySQL Workbench

MySQL Workbench는 포괄적인 MySQL 관리 및 SQL 개발 도구를 제공하는 GUI 애플리케이션입니다.

MySQL Workbench의 "새 연결 설정" 대화 상자에서 "연결 이름", "호스트 이름", "포트", 및 "사용자 이름"을 입력합니다:

MySQL Workbench 매개변수

"SSL" 탭에서 "SSL 사용"을 필수 및 신원 검$1 으로 설정하고 CA, 인증서 및 개인 키 파일의 경로를 입력합니다(자세한 정보는 연결 정보 가져오기를 참조하세요):

MySQL Workbench SSL

SSL 탭의 다음 필드는 이전에 실행한 tsh proxy db 명령에서 출력된 경로와 일치해야 합니다:

필드경로
SSL 키 파일key_file
SSL 인증서 파일cert_file
SSL CA 파일ca_file

원하는 경우 "연결 테스트"를 클릭하여 연결을 확인합니다:

MySQL Workbench 테스트

연결을 저장하고 데이터베이스에 연결합니다.

NoSQL Workbench

NoSQL Workbench 시작 화면에서 Amazon DynamoDB 옆의 Launch 를 클릭하십시오.
왼쪽 메뉴에서 Operation builder 를 선택한 다음 + Add connection 을 클릭하십시오.
DynamoDB local 탭을 선택하고 프록시의 엔드포인트를 지정하십시오. 이는 위 예시에서 localhost:62652 입니다. (자세한 정보는 Get connection information를 참조하십시오.)

SQL Server with Azure Data Studio

Azure Data Studio에서 프록시의 엔드포인트를 사용하여 연결을 생성하십시오. 이는 위 예시에서 localhost,62652 입니다. Windows 머신의 경우 localhost 대신 127.0.0.1,62652 형식을 사용할 필요가 있을 수 있습니다. (자세한 정보는 Get connection information를 참조하십시오.)

다음 설정으로 Microsoft SQL Server와 연결을 생성하십시오:

Connection DetailValue
서버host ,port of proxy endpoint
Authentication TypeSQL Login
비밀번호empty
EncryptFalse

예시:

Azure Data Studio connection options

Connect 를 클릭하여 연결하십시오.

PostgreSQL DBeaver

PostgreSQL 인스턴스에 연결하려면 인증된 프록시 주소를 사용하십시오. 이는 위 예시에서 127.0.0.1:62652 입니다 (자세한 정보는 Get connection information 의 “Authenticated Proxy” 섹션을 참조하십시오).

비밀번호가 없는 "Database native" 인증을 사용하십시오:

"Test connection"을 클릭하면 연결 성공 메시지가 반환되어야 합니다. 그런 다음 "Finish" 를 클릭하여 구성을 저장하십시오.

PostgreSQL pgAdmin 4

pgAdmin 4 는 PostgreSQL 서버를 위한 인기 있는 그래픽 클라이언트입니다.

새 연결을 구성하려면, 메인 브라우저 뷰에서 "Servers"를 마우스 오른쪽 버튼으로 클릭하고 새 서버를 생성하십시오:

pgAdmin Add Server

새 서버 대화 상자의 "General" 탭에서 서버 연결 이름을 입력하십시오:

pgAdmin General

"Connection" 탭에서 앞서 설정한 호스트 이름, 포트, 사용자 및 데이터베이스 이름을 입력하십시오:

pgAdmin Connection

"SSL" 탭에서 "SSL Mode"를 Verify-Full 로 설정하고, 앞서 설정한 클라이언트 인증서, 키 및 루트 인증서의 경로를 입력하십시오:

pgAdmin SSL

SSL 탭의 다음 필드는 이전에 실행한 tsh proxy db 명령의 출력 경로와 일치해야 합니다:

FieldPath
클라이언트 인증서cert_file
클라이언트 인증서 키key_file
루트 인증서ca_file

"Save"를 클릭하면 pgAdmin이 즉시 연결됩니다. pgAdmin이 비밀번호를 요청하면 비밀번호 필드를 비워두고 OK를 클릭하십시오.

Microsoft SQL Server Management Studio

Microsoft SQL Server Management Studio에서 프록시의 엔드포인트를 사용하여 데이터베이스 엔진에 연결합니다. 위의 예에서는 localhost,62652 입니다. Windows 머신에서는 localhost 대신 IP 127.0.0.1,62652 가 필요할 수 있습니다. (자세한 내용은 연결 정보 가져오기를 참조하세요.)

다음 설정으로 Microsoft SQL Server에 연결을 생성합니다:

Connection DetailValue
서버 유형Database Engine
서버 이름host ,port 프록시 엔드포인트
인증SQL Server Authentication
비밀번호비어 있음
암호화사용 안 함

예시:

Microsoft SQL Server Management Studio 연결 옵션

연결하려면 "Connect"를 클릭합니다.

Redis Insight

Note

Teleport의 Redis Insight 통합은 Redis 독립 실행형 인스턴스만 지원합니다.

Redis Insight를 열고 ADD REDIS DATABASE 를 클릭합니다.

이제 Redis 인스턴스를 위한 로컬 프록시를 시작합니다:

tsh proxy db --db-user=alice redis-db-name .

Add Database Manually 를 클릭합니다. Host127.0.0.1 을 사용하세요. 연결 정보 가져오기에서 실행한 tsh 명령에서 인쇄된 포트를 사용하세요.

Redis 사용자 이름을 Username 으로, 비밀번호를 Password 로 입력합니다.

다음으로, Use TLSVerify TLS Certificates 체크 박스를 선택합니다. 이전에 실행한 tsh proxy db 명령에서 반환된 경로의 파일 내용을 복사하여 해당 필드에 붙여넣습니다. 아래 표에서 각 경로에 해당하는 Redis Insight 필드를 참조하세요:

FieldPath
CA Certificateca_file
Client Certificatecert_file
Private Keykey_file

Add Redis Database 를 클릭합니다.

축하합니다! Redis 인스턴스에 연결했습니다.

Snowflake: DBeaver

Snowflake 통합은 인증된 프록시 모드에서만 작동합니다. 아래 명령어를 사용하여 Snowflake 데이터베이스에 대한 연결을 위한 로컬 프록시를 시작합니다:

tsh proxy db --tunnel --port 2000 snowflake

왼쪽 상단 코너의 "add" 아이콘을 클릭하여 새 데이터베이스를 추가합니다:

열리는 "Connect to a database" 창의 검색 바에 "snowflake"를 입력하고, Snowflake 드라이버를 선택한 후 "Next"를 클릭합니다:

"Host"를 localhost 로 설정하고, 이전에 실행한 tsh proxy db 명령에서 반환된 포트(2000 , 위 예시 참조)를 "Port"에 입력합니다. "Authentication" 섹션에서 "Username"을 Teleport에 --db-user 로 전달한 데이터베이스 사용자 이름과 일치하도록 설정하고 "Password" 필드에 임의의 값(예: "teleport")을 입력합니다. (연결을 설정할 때 "Password"의 값은 무시되지만 DBeaver가 데이터베이스를 등록하는 데 필요합니다):

다음으로 "Driver properties" 탭을 클릭하고 "account"를 임의의 값(예: "teleport")으로 설정합니다; "Password"와 마찬가지로 "account"의 값은 연결을 설정할 때 무시되지만 DBeaver가 데이터베이스를 등록하는 데 필요합니다. "User properties"에서 "ssl"을 off 로 설정합니다:

Teleport는 제공된 비밀번호와 계정 이름을 무시하며, 내부적으로 데이터베이스 에이전트 구성에서 값을 사용합니다. SSL을 off 로 설정하면 로컬 머신의 암호화만 비활성화됩니다. Snowflake에 대한 연결은 Teleport에 의해 암호화됩니다.

이제 왼쪽 하단 모서리에서 "Test Connection..."을 클릭할 수 있습니다:

축하합니다! Snowflake 인스턴스에 연결했습니다.

Snowflake: JetBrains (IntelliJ, Goland, DataGrip, PyCharm 등)

Snowflake 통합은 인증된 프록시 모드에서만 작동합니다. 아래 명령어를 사용하여 Snowflake 데이터베이스에 대한 연결을 위한 로컬 프록시를 시작하십시오:

tsh proxy db --tunnel --port 2000 snowflake

"Database Explorer"에서 "add" 버튼을 클릭하고 "Data Source"를 선택한 다음 "Snowflake"를 선택하십시오:

다음으로 "Host"를 localhost 로 설정하고 "Port"를 앞서 실행한 tsh proxy db 명령에서 반환된 포트로 설정합니다 (위 예에서 2000 ).

"Username"은 Teleport를 통해 Snowflake에 연결할 때 사용하는 것과 일치하도록 설정하고, "Password" 필드에 아무 값(예: "teleport")을 입력합니다 ("Password"의 값은 무시되지만 IDE에서 데이터 소스를 생성하는 데 필요함):

"Advanced" 탭으로 전환하고 "account"에 아무 값(예: "teleport")을 설정한 다음, ssl 이라는 새 레코드를 추가하고 값은 off 로 설정합니다( "Password"와 마찬가지로 "account"는 연결을 수립할 때 무시되지만 IDE에서 필요합니다):

Teleport는 제공된 비밀번호와 계정 이름을 무시하며, 내부적으로는 Database Agent 구성의 값을 사용합니다. "SSL"을 off 로 설정하면 로컬 머신에서만 암호화가 비활성화됩니다. Snowflake에 대한 연결은 Teleport에 의해 암호화됩니다.

이제 "Test Connection"을 클릭하여 구성을 확인할 수 있습니다.

축하합니다! 방금 Snowflake 인스턴스에 연결했습니다.

SQL Server DataGrip

DataGrip 연결 구성 메뉴에서 프록시의 엔드포인트를 사용하십시오. 아래 예에서 localhost:4242 입니다. (자세한 내용은 연결 정보 가져오기를 참조하십시오.)

"User & Password" 인증 옵션을 선택하고 "Password" 필드는 비워 둡니다:

DataGrip 연결 옵션

"OK"를 클릭하여 연결하십시오.

SQL Server DBeaver

DBeaver 연결 구성 메뉴에서 프록시의 엔드포인트를 사용하십시오. 위 예에서 localhost:62652 입니다. (자세한 내용은 연결 정보 가져오기를 참조하십시오.)

SQL Server 인증 옵션을 사용하고 비밀번호 필드는 비워 둡니다:

"OK"를 클릭하여 연결하십시오.

Cloud Spanner DataGrip

Cloud Spanner 통합은 로컬 프록시 터널 모드에서만 작동합니다.
스팬너 데이터베이스에 대한 연결을 위해 아래 명령어를 사용하여 로컬 프록시 터널을 시작하세요:

tsh proxy db --tunnel --port 1443 spanner --db-user=<service-account-name> --db-name=<spanner database name>

--db-user 에 지정된 데이터베이스 사용자는 Spanner 데이터베이스에 접근할 수 있는 GCP 서비스 계정의 이름이어야 합니다.
서비스 계정의 이름은 서비스 계정 이메일 주소의 "@" 이전의 모든 것이어야 합니다. 예를 들어, llama@example-project-123456.iam.gserviceaccount.com 의 이름은 "llama" 입니다.

이 명령은 로컬 포트 1443을 사용하지만 원하는 다른 포트를 선택하거나 --port 플래그를 생략하면 tsh 가 임의로 로컬 포트를 선택하도록 할 수 있습니다.
향후 GUI 클라이언트를 다시 구성할 필요가 없도록 포트를 지정하는 것이 좋습니다.

DataGrip 메뉴에서 "File > New > Data Source from URL"을 클릭한 다음, tsh proxy db 에서 출력된 JDBC URL을 복사하여 붙여넣습니다:

"Google Cloud Spanner" 드라이버가 자동으로 선택되어야 합니다. "Ok"를 클릭하십시오.

DataGrip은 GCP 자격 증명이 필요하지 않습니다 - 이는 이미 Teleport에 의해 제공됩니다. 새 데이터 소스의 "General" 탭에서 "Authentication" 드롭다운 설정을 선택하고 "No auth"를 선택합니다:

DataGrip Spanner 데이터 소스에 대해 인증 없음 선택

"Test connection"을 클릭하여 연결 구성이 올바른지 확인한 후, "Ok"를 클릭하여 데이터 소스를 생성합니다.

Note

나중에 이 데이터 소스를 재사용하려면, 동일한 tsh 로컬 포트(이 예에서는 1443)를 사용해야 하거나, tsh 로컬 프록시가 청취하는 포트에 맞게 드라이버 URL을 수정해야 합니다.

Cloud Spanner DBeaver

Cloud Spanner 통합은 로컬 프록시 터널 모드에서만 작동합니다.
스팬너 데이터베이스에 대한 연결을 위해 아래 명령어를 사용하여 로컬 프록시 터널을 시작하세요:

tsh proxy db --tunnel --port 1443 spanner --db-user=<service-account-name> --db-name=<spanner database name>

--db-user 에 지정된 데이터베이스 사용자는 Spanner 데이터베이스에 접근할 수 있는 GCP 서비스 계정의 이름이어야 합니다.
서비스 계정의 이름은 서비스 계정 이메일 주소의 "@" 이전의 모든 것이어야 합니다. 예를 들어, llama@example-project-123456.iam.gserviceaccount.com 의 이름은 "llama" 입니다.

이 명령은 로컬 포트 1443을 사용하지만 원하는 다른 포트를 선택하거나 --port 플래그를 생략하면 tsh 가 임의로 로컬 포트를 선택하도록 할 수 있습니다.
향후 GUI 클라이언트를 다시 구성할 필요가 없도록 포트를 지정하는 것이 좋습니다.

메뉴에서 "Database > Driver Manager"를 클릭합니다:

Open DBeaver Driver Manager

"Google Cloud Spanner" 드라이버를 검색하고 선택한 다음, "Copy" 버튼을 클릭하여 사용자 정의 드라이버 구성을 만듭니다:

Copy DBeaver Google Spanner Driver

사용자 정의 드라이버에 이름을 지정합니다, 예: "Teleport Spanner", 그런 다음 "URL Template"을 다음 패턴 문자열로 설정합니다:

jdbc:cloudspanner://127.0.0.1:{port}/projects/{server}/instances/{host}/databases/{database};usePlainText=true
Create Custom DBeaver Google Spanner Driver

"Ok"를 클릭한 다음, "Close"를 클릭합니다.

메뉴에서 "Database > New Connection from JDBC URL"을 클릭합니다:

이제 tsh proxy db 에서 출력된 JDBC URL을 복사하여 붙여넣습니다:

Create DBeaver Spanner Connection From JDBC URL

"Proceed"를 클릭한 다음, "Finish"를 클릭합니다.

Note

나중에 이 데이터 소스를 재사용하려면, 동일한 tsh 로컬 포트(이 예에서는 1443)를 사용해야 하거나, tsh 로컬 프록시가 청취하는 포트에 맞게 드라이버 URL을 수정해야 합니다.

Oracle SQL Developer

Oracle 통합은 인증된 프록시 모드에서만 작동합니다. 아래 명령을 사용하여 Oracle 데이터베이스에 대한 연결을 위해 로컬 프록시를 시작합니다:

tsh proxy db --tunnel --port 1521 --db-user=<user> --db-name=<db-name> oracle

이 명령은 로컬 포트 1521을 사용하지만, 원하는 포트를 선택하거나 --port 플래그를 생략하면 tsh 가 무작위로 로컬 포트를 선택하게 할 수 있습니다. 다시 GUI 클라이언트를 다시 구성할 필요가 없도록 하기 위해 포트를 지정해야 합니다.

"Connections"에서 새로운 데이터베이스 연결을 위해 "+" 버튼을 클릭합니다:

다음으로, --db-user 매개변수에서 이름과 사용자 이름을 설정합니다. 연결 유형을 "Custom JDBC"로 설정하고 tsh proxy db 명령에서 "Custom JDBC URL"을 설정합니다.

이제 "Test"를 클릭하여 구성을 확인할 수 있습니다.

축하합니다! 이제 Oracle 인스턴스에 연결되었습니다.

Teleport 원문 보기