Infograb logo
동적 데이터베이스 등록

동적 데이터베이스 등록을 통해 Teleport 관리자는 새로운 데이터베이스를 등록하거나 기존 데이터베이스를 업데이트/해제할 수 있습니다. 이 과정에서는 정적 구성 파일을 업데이트하고 Teleport 데이터베이스 서비스 인스턴스를 재시작할 필요가 없습니다.

동적 등록은 또한 관리자가 고가용성을 위해 동일한 데이터베이스 리소스를 모니터링하는 데이터베이스 서비스 복제품을 구성하여 여러 데이터베이스 서비스 인스턴스를 배포할 수 있게 합니다.

동적 등록을 활성화하려면, Teleport 데이터베이스 서비스 구성에서 모니터링할 리소스 레이블 선택 목록이 포함된 resources 섹션을 추가하세요:

db_service:
  enabled: "yes"
  resources:
  - labels:
      "*": "*"

와일드카드 선택기를 사용하여 데이터베이스 서비스에서 클러스터 내의 모든 동적 앱 리소스를 등록하거나 특정 레이블 세트를 제공하여 하위 집합만 등록할 수 있습니다:

resources:
- labels:
    "env": "prod"
    "engine": "postgres"
- labels:
    "env": "test"
    "engine": "mysql"

현재 실행 중인 데이터베이스 서비스를 보려면 tctl get db_services를 실행하세요:

kind: db_service
metadata:
  expires: "2024-08-27T11:38:10.207175Z"
  name: 2b5207e3-a258-423e-a41d-e50ea2f0dfdc
spec:
  hostname: my-host
  resources:
  - labels:
      env: prod
      engine: postgres
  - labels:
      env: test
      engine: mysql
version: v1

db_service 내의 name은 Teleport 데이터베이스 서비스를 실행하는 에이전트의 호스트 ID와 일치합니다.

다음으로 데이터베이스 리소스를 정의합니다:

kind: db
version: v3
metadata:
  name: example
  description: "예제 데이터베이스"
  labels:
    env: prod
    engine: postgres
spec:
  protocol: "postgres"
  uri: "localhost:5432"

동적 등록을 생성하는 사용자는 데이터베이스 레이블 및 db 리소스에 대한 액세스 권한이 있는 역할을 가져야 합니다. 이 예제 역할에서 사용자는 env: prodengine: postgres 레이블이 있는 데이터베이스만 생성하고 유지할 수 있습니다.

kind: role
metadata:
  name: dynamicregexample
spec:
  allow:
    db_labels:
      engine: postgres
      env: prod
    rules:
    - resources:
      - db
      verbs:
      - list
      - create
      - read
      - update
      - delete
version: v5

전체 데이터베이스 리소스 사양은 참고할 수 있습니다.

데이터베이스 리소스를 생성하려면 다음을 실행합니다:

tctl create database.yaml
  • 당신의 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 명령어를 실행할 수도 있습니다.

리소스가 생성된 후, 최소한 하나의 데이터베이스 서비스 인스턴스가 레이블 선택자에 따라 이를 수집하는 한, 사용 가능한 데이터베이스 목록(tsh db ls 또는 UI)에서 나타납니다.

기존 데이터베이스 리소스를 업데이트하려면:

tctl create -f database.yaml

업데이트된 리소스의 레이블이 특정 데이터베이스와 더 이상 일치하지 않으면 자동으로 해제되고 프록시가 중지됩니다.

데이터베이스 리소스를 삭제하려면 다음을 실행합니다:

tctl rm db/example

tctl 외에도 동적 리소스는 다음과 같은 방법으로 추가할 수 있습니다:

동적 리소스 사용을 참조하여 Teleport의 동적 리소스를 관리하는 방법에 대해 더 알아보세요.

Teleport 원문 보기