Infograb logo
데이터베이스 액세스 GUI 클라이언트

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

Teleport 환경 설정

전제 조건

  • 실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.

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

    tctltsh 다운로드에 대한 지침은 설치를 방문하세요.

  • 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면, tsh login으로 로그인한 다음 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 16.2.0

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결하고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속 tctl 명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.
  • 데이터베이스에 액세스하도록 구성된 Teleport 데이터베이스 서비스. 데이터베이스를 위한 Teleport 데이터베이스 서비스를 설정하는 방법에 대한 내용은 가이드를 참조하세요.

연결 정보 가져오기

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

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

# 로컬 프록시 시작.
$ tsh proxy db --tunnel <database-name>
리모트 데이터베이스 "<database-name>"에 대한 인증된 터널을 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 라우팅 모드에서 사용하는 경우, 각 데이터베이스 프로토콜이 동일한 웹 프록시 포트에서 다중화되므로 GUI 데이터베이스 클라이언트가 연결할 지역 TLS 프록시를 시작하는 다음 명령을 사용하세요:

tsh proxy db <database-name>
127.0.0.1:61740에서 DB 프록시 시작됨
<database-name> 프록시에 연결할 자격 증명: 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를 사용하세요.

TLS 라우팅을 사용하지 않는 경우, 다음 명령을 실행하여 데이터베이스 연결 정보를 확인하세요:

로그인한 데이터베이스의 구성 보기.

tsh db config

여러 데이터베이스에 로그인했을 때 특정 데이터베이스의 구성 보기.

tsh db config example

로컬 캐시된 인증서 및 키 파일의 경로를 표시합니다:

이름:      example
호스트:    teleport.example.com
포트:      3080
사용자:    postgres
데이터베이스:  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 인증을 지원하는 기타 그래픽 데이터베이스 클라이언트를 통해 연결하는 데 사용됩니다.

GUI 데이터베이스 클라이언트가 연결할 지역 TLS 프록시를 시작하는 다음 명령을 사용하세요:

tsh proxy db <database-name>
127.0.0.1:61740에서 DB 프록시 시작됨
<database-name> 프록시에 연결할 자격 증명: 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를 사용하세요.

MongoDB Compass

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

"새 연결" 패널에서 "연결 필드를 개별적으로 입력"을 클릭하세요.

MongoDB Compass 새 연결

"Hostname" 탭에서 데이터베이스에 액세스하는 데 사용할 프록시의 호스트 이름과 포트를 입력하세요 (연결 정보 가져오기 참조: Get connection information). "Authentication"은 None으로 둡니다.

MongoDB Compass 호스트 이름

"More Options" 탭에서 SSL을 "Client and Server Validation"으로 설정하고 CA와 클라이언트 키 및 인증서를 설정하세요. CA 경로는 제공되어야 하며 Teleport Proxy Service의 웹 엔드포인트에 의해 제공되는 인증서를 확인할 수 있어야 합니다.

MongoDB Compass 추가 옵션

"Connect" 버튼을 클릭하세요.

MySQL DBeaver

메인 뷰의 "데이터베이스 탐색기" 메뉴에서 오른쪽 클릭하고 Create > Connection을 선택하세요:

DBeaver 서버 추가

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

DBeaver 드라이버 선택

새로 열린 "연결 설정" 탭에서 호스트를 localhost로 설정하고, 포트를 프록시 명령이 반환한 포트(62652, 앞의 예제에서)를 설정하세요:

같은 탭에서 사용자 이름을 Teleport를 사용하여 연결하는 사용자와 일치하도록 설정하고 "비밀번호를 로컬에 저장" 박스를 선택 해제하세요:

DBeaver 사용자 구성

"Main" 탭에서 "드라이버 설정 편집" 버튼을 클릭하고 "No Authentication" 박스를 체크한 후 "Ok"를 클릭하여 저장하세요:

DBeaver 드라이버 설정

"연결 설정" 창으로 돌아갔을 때 "Ok"를 클릭하여 완료하고 DBeaver가 원격 MySQL 서버에 자동으로 연결해야 합니다.

MySQL Workbench

MySQL Workbench는 포괄적인 MySQL 관리 및 SQL 개발 도구를 제공하는 GUI 응용 프로그램입니다.

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

MySQL Workbench 파라미터

"SSL" 탭에서 "SSL 사용"을 Require and Verify Identity로 설정하고 CA, 인증서 및 개인 키 파일의 경로를 입력하세요 (연결 정보 가져오기 참조: Get connection information):

MySQL Workbench SSL

옵션으로 "연결 테스트"를 클릭하여 연결이 가능성을 확인하세요:

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 기기에서는 127.0.0.1,62652 형식의 주소 사용이 필요할 수 있습니다. (연결 정보 가져오기 참조: Get connection information 더 많은 정보를 위해).

Microsoft SQL Server와 연결을 생성할 때 설정은 다음과 같습니다:

연결 세부 정보
서버프록시 엔드포인트의 host,port
인증 유형SQL Login
비밀번호
암호화False

예시:

Azure Data Studio 연결 옵션

Connect를 클릭하여 연결하세요.

PostgreSQL DBeaver

PostgreSQL 인스턴스에 연결하려면 인증된 프록시 주소를 사용하세요. 이는 위의 예에서 127.0.0.1:62652입니다 (연결 정보 가져오기 참조: Get connection information 더 많은 정보를 위해).

비밀번호가 비어 있는 "Database native" 인증을 사용하세요:

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

PostgreSQL pgAdmin 4

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

새 연결을 구성하기 위해, 메인 브라우저 뷰에서 "Servers"를 오른쪽 클릭하고 새 서버를 생성하세요:

pgAdmin 서버 추가

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

pgAdmin 일반

"Connection" 탭에서 설정 위의 구성에서 호스트 이름, 포트, 사용자 및 데이터베이스 이름을 작성하세요:

pgAdmin 연결

"SSL" 탭에서 "SSL Mode"를 Verify-Full로 설정하고 위의 구성에서 클라이언트 인증서, 키 및 루트 인증서의 경로를 입력하세요:

pgAdmin SSL

"Save"를 클릭하면 pgAdmin이 즉시 연결되어야 합니다. pgAdmin이 비밀번호를 요청하면 비밀번호 필드를 비워두고 OK를 클릭하세요.

Microsoft SQL Server Management Studio

Microsoft SQL Server Management Studio에서 데이터베이스 엔진에 연결하여 프록시의 엔드포인트를 사용하세요. 이는 위의 예에서 localhost,62652입니다. Windows 기기에서는 127.0.0.1,62652 IP 주소를 사용하는 연결이 필요할 수 있습니다. (연결 정보 가져오기 참조: Get connection information 더 많은 정보를 위해).

Microsoft SQL Server와 연결을 생성할 때 설정은 다음과 같습니다:

연결 세부 정보
서버 유형데이터베이스 엔진
서버 이름프록시 엔드포인트의 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를 클릭하세요. 127.0.0.1Host로 사용하세요. Get connection information에서 실행한 tsh 명령에서 인쇄된 포트를 사용하세요: Get connection information.

Redis 사용자 이름을 Username으로 제공하고 비밀번호를 Password로 제공하세요.

다음으로 Use TLSVerify TLS Certificates 박스를 체크하고 tsh proxy db에서 반환된 CA 인증서를 복사하세요. 개인 키와 인증서를 해당 필드에 복사하세요.

Add Redis Database를 클릭하세요.

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

Snowflake: DBeaver

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

tsh proxy db --tunnel --port 2000 snowflake

왼쪽 상단 코너에 있는 "add" 아이콘을 클릭하여 새로운 데이터베이스를 추가하세요:

열리는 "데이터베이스에 연결" 창에서 "snowflake"를 입력하고 Snowflake 드라이버를 선택한 다음 "다음"을 클릭하세요:

"Host"를 localhost로 설정하고 "Port"를 tsh proxy db 명령이 이전에 반환한 포트(2000, 위의 예에서)로 설정하세요. "Authentication" 섹션에서 "Username"을 Teleport에 전달된 데이터베이스 사용자와 일치하도록 설정하고 "Password" 필드에 아무 값 (예: "teleport")을 입력하세요 (Password 값은 연결을 설정할 때 무시됩니다만 DBeaver 상에서 데이터 소스를 등록하기 위해 필요합니다):

다음으로 "Driver properties" 탭으로 전환하고 "account"에 아무 값을 설정하세요 (예: "teleport"; Password와 마찬가지로 account 값도 연결시 무시됩니다만 DBeaver의 데이터 소스를 등록하기 위해 필요합니다). "User properties"에서 "ssl"을 off로 설정하세요:

Teleport는 제공된 비밀번호와 계정 이름을 무시하며 내부적으로 Database Agent 구성을 사용합니다. "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"을 Snowflake에 연결할 때 Teleport를 통해 사용하던 이름으로 설정하고 "Password" 필드에는 아무 값을 입력하세요 (Password 값은 무시되지만 데이터 소스를 만들기 위해 필요합니다):

"Advanced" 탭으로 전환하고 아무 값을 (예: "teleport") 위해 "account"에 값을 설정하고 ssl이라는 이름의 새로운 레코드를 추가하고 값으로 off를 설정하세요 (Password와 마찬가지로 account 값은 연결을 설정할 때 무시되지만 IDE에서 데이터 소스를 등록하기 위해 필요합니다):

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

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

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

SQL Server DataGrip

DataGrip 연결 구성 메뉴에서 프록시의 엔드포인트를 사용하세요. 이는 아래 예제에서 localhost:4242입니다. (연결 정보 가져오기 참조: Get connection information 더 많은 정보를 위해).

"User & Password" 인증 옵션을 선택하고 "Password" 필드를 비워두세요:

DataGrip 연결 옵션

"OK"를 클릭하여 연결하세요.

SQL Server DBeaver

DBeaver 연결 구성 메뉴에서 프록시의 엔드포인트를 사용하세요. 이는 위의 예에서 localhost:62652입니다. (연결 정보 가져오기 참조: Get connection information 더 많은 정보를 위해).

SQL Server 인증 옵션을 사용하고 비밀번호 필드를 비워두세요:

"OK"를 클릭하여 연결하세요.

Cloud Spanner DataGrip

Cloud Spanner 통합은 로컬 프록시 터널 모드에서만 작동합니다. 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 데이터 소스에 대해 No Auth 선택

연결이 올바르게 구성되었는지 확인하기 위해 "Test connection"을 클릭한 후 "Ok"를 클릭하여 데이터 소스를 만드세요.

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

Cloud Spanner DBeaver

Cloud Spanner 통합은 로컬 프록시 터널 모드에서만 작동합니다. 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"를 클릭하세요:

DBeaver 드라이버 관리자 열기

"Google Cloud Spanner" 드라이버를 검색하고 선택한 후 "Copy" 버튼을 클릭하여 사용자 정의 드라이버 구성을 만드세요:

DBeaver Google Spanner 드라이버 복사

사용자 정의 드라이버 이름을 지정하세요(예: "Teleport Spanner") 그런 다음 "URL Template"을 다음 패턴 문자열로 설정하세요:

jdbc:cloudspanner://127.0.0.1:{port}/projects/{server}/instances/{host}/databases/{database};usePlainText=true
DBeaver Google Spanner 드라이버 생성

"Ok"를 클릭한 후 "Close"를 클릭하세요.

메뉴에서 "Database > New Connection from JDBC URL"을 클릭하세요:

이제 tsh proxy db에서 출력된 JDBC URL을 복사하여 붙여넣으세요:

DBeaver Spanner JDBC URL에서 연결 생성

"Proceed"를 클릭한 후 "Finish"를 클릭하세요.

이 데이터 소스를 나중에 다시 사용하려면 동일한 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 원문 보기