InfoGrab DocsInfoGrab Docs

데이터베이스 접근 FAQ

요약

이 페이지는 Teleport로 데이터베이스를 등록하는 것에 대한 일반적인 질문들의 답변을 제공합니다. Teleport 데이터베이스 서비스는 현재 다음 프로토콜을 지원합니다: PostgreSQL, Oracle, MySQL의 경우 자체 호스팅 배포 외에도 다음 클라우드 호스팅 버전이 지원됩니다:

이 페이지는 Teleport로 데이터베이스를 등록하는 것에 대한 일반적인 질문들의 답변을 제공합니다. Teleport 전반에 관한 자주 묻는 질문 목록은 자주 묻는 질문을 참조하세요.

Teleport 데이터베이스 서비스가 지원하는 데이터베이스 프로토콜은 무엇인가요?#

Teleport 데이터베이스 서비스는 현재 다음 프로토콜을 지원합니다:

  • Cassandra
  • ClickHouse
  • CockroachDB
  • DynamoDB
  • MariaDB
  • Microsoft SQL Server
  • MongoDB
  • MySQL
  • Oracle
  • OpenSearch
  • PostgreSQL
  • Redis and Valkey
  • Snowflake

PostgreSQL, Oracle, MySQL의 경우 자체 호스팅 배포 외에도 다음 클라우드 호스팅 버전이 지원됩니다:

  • Amazon RDS
  • Amazon Aurora (IAM 인증을 지원하지 않는 Amazon Aurora Serverless 제외)
  • Amazon Redshift
  • Google Cloud SQL
  • Azure Database
  • Oracle Exadata

지원되는 모든 구성에 대해서는 이용 가능한 가이드를 참조하세요.

지원되지 않는 PostgreSQL 프로토콜 기능은 무엇인가요?#

다음 PostgreSQL 프로토콜 기능은 현재 지원되지 않습니다:

  • 클라이언트 인증서 인증과 클라우드 데이터베이스의 IAM 인증을 제외한 모든 인증 방법

데이터베이스 세션이 기록된 세션 목록에 표시되나요?#

감사 로그(audit log)에서 데이터베이스 세션 활동을 확인할 수 있습니다. 세션이 업로드된 후에는 tsh play 명령으로 감사 데이터를 재생할 수 있습니다.

데이터베이스 세션 ID는 UUID 형식입니다(예: 307b49d6-56c7-4d20-8cf0-5bc5348a7101). sid 키를 가진 데이터베이스 세션 ID를 얻으려면 감사 로그를 참조하세요.

PostgreSQL 데이터베이스 레코딩은 대화형 형식으로 제공됩니다:

$ tsh play 307b49d6-56c7-4d20-8cf0-5bc5348a7101
Session started to database "postgres-database" at Mon Jul 20 20:00 UTC

postgres=> SELECT * FROM products;
SUCCESS
(10 rows affected)

postgres=> INSERT INTO products (name, price) VALUES ('Phone', 150.00);
ERROR: permission denied for table products (SQLSTATE 42501)

Session ended at Mon Jul 20 20:30 UTC

모든 데이터베이스 프로토콜 레코딩은 JSON 형식(--format json)으로 지원됩니다:

$ tsh play --format json 307b49d6-56c7-4d20-8cf0-5bc5348a7101
{
    "cluster_name": "teleport.example.com",
    "code": "TDB02I",
    "db_name": "example",
    "db_origin": "dynamic",
    "db_protocol": "postgres",
    "db_query": "select * from sample;",
    "db_roles": [
        "access"
    ],
    "db_service": "example",
    "db_type": "rds",
    "db_uri": "databases-1.us-east-1.rds.amazonaws.com:5432",
    "db_user": "alice",
    "ei": 2,
    "event": "db.session.query",
    "sid": "307b49d6-56c7-4d20-8cf0-5bc5348a7101",
    "success": true,
    "time": "2023-10-06T10:58:32.88Z",
    "uid": "a649d925-9dac-44cc-bd04-4387c295580f",
    "user": "alice"
}

감사 로그는 event 리소스에 대한 권한이 있는 사용자의 경우 Web UI에서 왼쪽 창의 Audit 아래에서 확인할 수 있습니다. 데이터베이스 세션은 세션 레코딩 페이지에 나열되지만, PostgreSQL 세션만 재생할 수 있습니다.

데이터베이스 클라이언트가 웹 공개 주소와 다른 공개 주소를 사용할 수 있나요?#

Teleport 프록시 서비스를 구성할 때 관리자는 postgres_public_addrmysql_public_addr 구성 필드를 각 데이터베이스 클라이언트가 연결해야 하는 공개 주소로 설정할 수 있습니다. 자세한 내용은 프록시 구성을 참조하세요.

이는 Teleport Web UI가 L7 로드 밸런서(예: AWS의 ALB) 뒤에서 실행될 때 유용하며, 이 경우 PostgreSQL/MySQL 프록시는 일반 TCP 로드 밸런서(예: AWS의 NLB)에 노출되어야 합니다.

Teleport 프록시 서비스에 TLS 라우팅을 사용하면 웹 공개 주소로 모든 데이터베이스 연결이 가능합니다.

Teleport Enterprise (Cloud)에서 데이터베이스 연결은 TLS 라우팅이 적용되므로 웹 공개 주소를 사용합니다.

X 데이터베이스 클라이언트를 지원하나요?#

Teleport는 인증에 클라이언트 인증서를 사용하므로, 이 인증 방법을 지원하고 최신 TLS(1.2+)를 사용하는 모든 데이터베이스 클라이언트가 작동해야 합니다.

psql, mysql, mongo 또는 mongosh와 같은 표준 명령줄 클라이언트가 지원됩니다. 선택한 그래픽 클라이언트 구성에 대한 지침도 있습니다.

X 데이터베이스는 언제 지원될 예정인가요?#

저희는 고객 수요에 따라 향후 더 많은 데이터베이스를 지원할 계획입니다.

관심 있는 데이터베이스가 이미 GitHub 이슈에 요청되었는지 확인하거나 관심 등록을 위해 새 이슈를 열어주세요.

사용자 정의 CA 인증서를 제공할 수 있나요?#

네, 구성 파일을 사용하여 사용자 정의 CA 인증서를 전달할 수 있습니다(ca_cert_file 항목 참조).

Teleport가 생성한 CA에 사용자 정의 DNS 이름을 제공할 수 있나요?#

네, Teleport 구성 파일의 tls 섹션 아래 server_name을 사용하세요. 자세한 내용은 참조 구성 파일을 참조하세요.

데이터베이스 연결 시 CA 검증을 비활성화할 수 있나요?#

네, 권장하지는 않습니다. 인증서 검증은 중간자 공격을 방지하고 의도한 데이터베이스에 연결되어 있는지 확인합니다.

Teleport를 사용하면 구성 파일을 편집하여 사용자 정의 CA 인증서(ca_cert_file) 또는 사용자 정의 DNS 이름(server_name)을 제공할 수도 있으며, 이것이 더 안전합니다.

위 옵션 중 어느 것도 적합하지 않고 여전히 CA 확인을 비활성화하려면 Teleport 구성 파일의 tls 옵션 아래 mode를 사용할 수 있습니다.

자세한 내용은 참조 구성 파일을 참조하세요.

자동 검색된 데이터베이스에서 읽기 전용 및 사용자 정의 엔드포인트를 비활성화할 수 있나요?#

네, aws 매처에서 Teleport가 생성한 레이블 endpoint-type을 사용하여 엔드포인트를 필터링할 수 있습니다. 예를 들어, RDS 자동 검색에서 읽기 전용 및 사용자 정의 엔드포인트를 비활성화하려면 다른 엔드포인트 유형을 지정하여 매칭할 수 있습니다:

  aws:
  - types: ["rds"]
    regions: ["us-west-1"]
    tags:
      "env": "dev"
      "endpoint-type":
        - "primary"
        - "instance"

Teleport가 생성한 레이블과 값의 전체 목록은 레이블 참조를 참조하세요.

데이터베이스 접근 FAQ

Teleport v18.9
원문 보기
요약

이 페이지는 Teleport로 데이터베이스를 등록하는 것에 대한 일반적인 질문들의 답변을 제공합니다. Teleport 데이터베이스 서비스는 현재 다음 프로토콜을 지원합니다: PostgreSQL, Oracle, MySQL의 경우 자체 호스팅 배포 외에도 다음 클라우드 호스팅 버전이 지원됩니다:

이 페이지는 Teleport로 데이터베이스를 등록하는 것에 대한 일반적인 질문들의 답변을 제공합니다. Teleport 전반에 관한 자주 묻는 질문 목록은 자주 묻는 질문을 참조하세요.

Teleport 데이터베이스 서비스가 지원하는 데이터베이스 프로토콜은 무엇인가요?#

Teleport 데이터베이스 서비스는 현재 다음 프로토콜을 지원합니다:

  • Cassandra
  • ClickHouse
  • CockroachDB
  • DynamoDB
  • MariaDB
  • Microsoft SQL Server
  • MongoDB
  • MySQL
  • Oracle
  • OpenSearch
  • PostgreSQL
  • Redis and Valkey
  • Snowflake

PostgreSQL, Oracle, MySQL의 경우 자체 호스팅 배포 외에도 다음 클라우드 호스팅 버전이 지원됩니다:

  • Amazon RDS
  • Amazon Aurora (IAM 인증을 지원하지 않는 Amazon Aurora Serverless 제외)
  • Amazon Redshift
  • Google Cloud SQL
  • Azure Database
  • Oracle Exadata

지원되는 모든 구성에 대해서는 이용 가능한 가이드를 참조하세요.

지원되지 않는 PostgreSQL 프로토콜 기능은 무엇인가요?#

다음 PostgreSQL 프로토콜 기능은 현재 지원되지 않습니다:

  • 클라이언트 인증서 인증과 클라우드 데이터베이스의 IAM 인증을 제외한 모든 인증 방법

데이터베이스 세션이 기록된 세션 목록에 표시되나요?#

감사 로그(audit log)에서 데이터베이스 세션 활동을 확인할 수 있습니다. 세션이 업로드된 후에는 tsh play 명령으로 감사 데이터를 재생할 수 있습니다.

데이터베이스 세션 ID는 UUID 형식입니다(예: 307b49d6-56c7-4d20-8cf0-5bc5348a7101). sid 키를 가진 데이터베이스 세션 ID를 얻으려면 감사 로그를 참조하세요.

PostgreSQL 데이터베이스 레코딩은 대화형 형식으로 제공됩니다:

$ tsh play 307b49d6-56c7-4d20-8cf0-5bc5348a7101
Session started to database "postgres-database" at Mon Jul 20 20:00 UTC

postgres=> SELECT * FROM products;
SUCCESS
(10 rows affected)

postgres=> INSERT INTO products (name, price) VALUES ('Phone', 150.00);
ERROR: permission denied for table products (SQLSTATE 42501)

Session ended at Mon Jul 20 20:30 UTC

모든 데이터베이스 프로토콜 레코딩은 JSON 형식(--format json)으로 지원됩니다:

$ tsh play --format json 307b49d6-56c7-4d20-8cf0-5bc5348a7101
{
    "cluster_name": "teleport.example.com",
    "code": "TDB02I",
    "db_name": "example",
    "db_origin": "dynamic",
    "db_protocol": "postgres",
    "db_query": "select * from sample;",
    "db_roles": [
        "access"
    ],
    "db_service": "example",
    "db_type": "rds",
    "db_uri": "databases-1.us-east-1.rds.amazonaws.com:5432",
    "db_user": "alice",
    "ei": 2,
    "event": "db.session.query",
    "sid": "307b49d6-56c7-4d20-8cf0-5bc5348a7101",
    "success": true,
    "time": "2023-10-06T10:58:32.88Z",
    "uid": "a649d925-9dac-44cc-bd04-4387c295580f",
    "user": "alice"
}

감사 로그는 event 리소스에 대한 권한이 있는 사용자의 경우 Web UI에서 왼쪽 창의 Audit 아래에서 확인할 수 있습니다. 데이터베이스 세션은 세션 레코딩 페이지에 나열되지만, PostgreSQL 세션만 재생할 수 있습니다.

데이터베이스 클라이언트가 웹 공개 주소와 다른 공개 주소를 사용할 수 있나요?#

Teleport 프록시 서비스를 구성할 때 관리자는 postgres_public_addrmysql_public_addr 구성 필드를 각 데이터베이스 클라이언트가 연결해야 하는 공개 주소로 설정할 수 있습니다. 자세한 내용은 프록시 구성을 참조하세요.

이는 Teleport Web UI가 L7 로드 밸런서(예: AWS의 ALB) 뒤에서 실행될 때 유용하며, 이 경우 PostgreSQL/MySQL 프록시는 일반 TCP 로드 밸런서(예: AWS의 NLB)에 노출되어야 합니다.

Teleport 프록시 서비스에 TLS 라우팅을 사용하면 웹 공개 주소로 모든 데이터베이스 연결이 가능합니다.

Teleport Enterprise (Cloud)에서 데이터베이스 연결은 TLS 라우팅이 적용되므로 웹 공개 주소를 사용합니다.

X 데이터베이스 클라이언트를 지원하나요?#

Teleport는 인증에 클라이언트 인증서를 사용하므로, 이 인증 방법을 지원하고 최신 TLS(1.2+)를 사용하는 모든 데이터베이스 클라이언트가 작동해야 합니다.

psql, mysql, mongo 또는 mongosh와 같은 표준 명령줄 클라이언트가 지원됩니다. 선택한 그래픽 클라이언트 구성에 대한 지침도 있습니다.

X 데이터베이스는 언제 지원될 예정인가요?#

저희는 고객 수요에 따라 향후 더 많은 데이터베이스를 지원할 계획입니다.

관심 있는 데이터베이스가 이미 GitHub 이슈에 요청되었는지 확인하거나 관심 등록을 위해 새 이슈를 열어주세요.

사용자 정의 CA 인증서를 제공할 수 있나요?#

네, 구성 파일을 사용하여 사용자 정의 CA 인증서를 전달할 수 있습니다(ca_cert_file 항목 참조).

Teleport가 생성한 CA에 사용자 정의 DNS 이름을 제공할 수 있나요?#

네, Teleport 구성 파일의 tls 섹션 아래 server_name을 사용하세요. 자세한 내용은 참조 구성 파일을 참조하세요.

데이터베이스 연결 시 CA 검증을 비활성화할 수 있나요?#

네, 권장하지는 않습니다. 인증서 검증은 중간자 공격을 방지하고 의도한 데이터베이스에 연결되어 있는지 확인합니다.

Teleport를 사용하면 구성 파일을 편집하여 사용자 정의 CA 인증서(ca_cert_file) 또는 사용자 정의 DNS 이름(server_name)을 제공할 수도 있으며, 이것이 더 안전합니다.

위 옵션 중 어느 것도 적합하지 않고 여전히 CA 확인을 비활성화하려면 Teleport 구성 파일의 tls 옵션 아래 mode를 사용할 수 있습니다.

자세한 내용은 참조 구성 파일을 참조하세요.

자동 검색된 데이터베이스에서 읽기 전용 및 사용자 정의 엔드포인트를 비활성화할 수 있나요?#

네, aws 매처에서 Teleport가 생성한 레이블 endpoint-type을 사용하여 엔드포인트를 필터링할 수 있습니다. 예를 들어, RDS 자동 검색에서 읽기 전용 및 사용자 정의 엔드포인트를 비활성화하려면 다른 엔드포인트 유형을 지정하여 매칭할 수 있습니다:

  aws:
  - types: ["rds"]
    regions: ["us-west-1"]
    tags:
      "env": "dev"
      "endpoint-type":
        - "primary"
        - "instance"

Teleport가 생성한 레이블과 값의 전체 목록은 레이블 참조를 참조하세요.