InfoGrab Docs

동적 데이터베이스 등록

요약

동적 데이터베이스 등록을 통해 Teleport 관리자는 정적 구성을 업데이트하고 Teleport Database Service 인스턴스를 재시작하지 않고도 새 데이터베이스를 등록하거나 기존 데이터베이스를 업데이트/해제할 수 있습니다.

동적 데이터베이스 등록을 통해 Teleport 관리자는 정적 구성을 업데이트하고 Teleport Database Service 인스턴스를 재시작하지 않고도 새 데이터베이스를 등록하거나 기존 데이터베이스를 업데이트/해제할 수 있습니다.

동적 등록을 통해 관리자는 동일한 데이터베이스 리소스를 감시하도록 Database Service 복제본을 구성하여 고가용성을 위한 여러 Database Service 인스턴스를 배포할 수도 있습니다.

동적 등록을 활성화하려면 Teleport Database Service 구성에 resources 섹션을 포함하고 이 서비스가 등록을 위해 모니터링할 리소스 레이블 선택기 목록을 지정합니다:

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

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

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

현재 실행 중인 Database Service를 보려면 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 Database Service를 실행하는 에이전트의 호스트 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

To check that you can connect to your Teleport cluster, sign in with tsh login, then verify that you can run tctl commands using your current credentials.

For example, run the following command, assigning to the domain name of the Teleport Proxy Service in your cluster and to your Teleport username:

$ tsh login --proxy= --user=
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

If you can connect to the cluster and run the tctl status command, you can use your current credentials to run subsequent tctl commands from your workstation. If you host your own Teleport cluster, you can also run tctl commands on the computer that hosts the Teleport Auth Service for full permissions.

리소스가 생성된 후 적어도 하나의 Database Service 인스턴스가 레이블 선택기에 따라 선택하는 한 사용 가능한 데이터베이스 목록(tsh db ls 또는 UI)에 표시됩니다.

기존 데이터베이스 리소스를 업데이트하려면 실행합니다:

$ tctl create -f database.yaml

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

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

$ tctl rm db/example

tctl 외에도 다음을 통해 동적 리소스를 추가할 수 있습니다:

Teleport의 동적 리소스 관리에 대해 자세히 알아보려면 동적 리소스 사용을 참조하십시오.

동적 데이터베이스 등록

원문 보기
요약

동적 데이터베이스 등록을 통해 Teleport 관리자는 정적 구성을 업데이트하고 Teleport Database Service 인스턴스를 재시작하지 않고도 새 데이터베이스를 등록하거나 기존 데이터베이스를 업데이트/해제할 수 있습니다.

동적 데이터베이스 등록을 통해 Teleport 관리자는 정적 구성을 업데이트하고 Teleport Database Service 인스턴스를 재시작하지 않고도 새 데이터베이스를 등록하거나 기존 데이터베이스를 업데이트/해제할 수 있습니다.

동적 등록을 통해 관리자는 동일한 데이터베이스 리소스를 감시하도록 Database Service 복제본을 구성하여 고가용성을 위한 여러 Database Service 인스턴스를 배포할 수도 있습니다.

동적 등록을 활성화하려면 Teleport Database Service 구성에 resources 섹션을 포함하고 이 서비스가 등록을 위해 모니터링할 리소스 레이블 선택기 목록을 지정합니다:

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

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

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

현재 실행 중인 Database Service를 보려면 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 Database Service를 실행하는 에이전트의 호스트 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

To check that you can connect to your Teleport cluster, sign in with tsh login, then verify that you can run tctl commands using your current credentials.

For example, run the following command, assigning to the domain name of the Teleport Proxy Service in your cluster and to your Teleport username:

$ tsh login --proxy= --user=
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

If you can connect to the cluster and run the tctl status command, you can use your current credentials to run subsequent tctl commands from your workstation. If you host your own Teleport cluster, you can also run tctl commands on the computer that hosts the Teleport Auth Service for full permissions.

리소스가 생성된 후 적어도 하나의 Database Service 인스턴스가 레이블 선택기에 따라 선택하는 한 사용 가능한 데이터베이스 목록(tsh db ls 또는 UI)에 표시됩니다.

기존 데이터베이스 리소스를 업데이트하려면 실행합니다:

$ tctl create -f database.yaml

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

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

$ tctl rm db/example

tctl 외에도 다음을 통해 동적 리소스를 추가할 수 있습니다:

Teleport의 동적 리소스 관리에 대해 자세히 알아보려면 동적 리소스 사용을 참조하십시오.