InfoGrab Docs

데이터베이스 접근 제어

Teleport 데이터베이스 접근을 위한 역할 기반 접근 제어(RBAC).

데이터베이스 접근 제어 는 데이터베이스와 그 내부 데이터에 대한 역할 기반 접근 제어를 구성할 수 있는 Teleport 기능입니다. 데이터베이스 접근 제어를 통해 사용자가 필요한 데이터만 관리할 수 있는 권한을 갖도록 보장할 수 있습니다. 접근 제어는 두 수준의 세분성을 포함합니다: 데이터베이스 서버: Teleport 클러스터에 등록된 데이터베이스 리소스. 데이터베이스 객체: 테이블, 뷰 또는 저장 프로시저. 데이터베이스 서버와 데이터베이스 객체 모두에 대해 데이터베이스 접근 제어는 Teleport 레이블을 기반으로 접근을 허용하거나 거부합니다. Teleport에 데이터베이스를 등록할 때 데이터베이스와 관련된 레이블을 구성할 수 있습니다. 데이터베이스 객체의 경우 Teleport Database Service가 가져오기 규칙 내에서 구성된 레이블과 일치하는 데이터베이스에서 가져온 데이터베이스 객체에 레이블을 적용하도록 지시하는 가져오기 규칙을 정의할 수 있습니다. 사용자가 데이터베이스에 연결하면 Database Service는 레이블을 사용자의 Teleport 역할에 대해 선택적으로 확인하여 권한을 부여합니다. Database Service는 연결 기간 동안 객체 수준 권한을 부여하고 연결이 종료되면 자동으로 취소합니다. Teleport 역할 및 예시에 대한 더 일반적인 설명은 RBAC 를 참조하십시오. 이 섹션은 데이터베이스 접근을 위한 RBAC 구성에 초점을 맞춥니다. Warning 데이터베이스 객체에 대한 데이터베이스 접근 제어는 PostgreSQL 데이터베이스만 지원합니다. 역할 구성 # Teleport의 역할 리소스는 데이터베이스 접근을 제한하기 위한 다음 수단을 제공합니다: kind: role version: v5 metadata: name: developer spec: allow: # 이 역할이 접근할 수 있는 데이터베이스 인스턴스에 대한 레이블 선택기. # # 이것들은 데이터베이스 서비스에 설정된 정적/동적 레이블과 매칭됩니다. db_labels: environment: [ "dev" , "stage" ] # 이 역할이 연결할 수 있는 데이터베이스 계정 이름. db_users: [ "viewer" , "editor" ] # 이 역할이 연결할 수 있는 데이터베이스 이름. # # 이것은 "db_service"의 "name" 필드와 동일하지 않으며, # 특정 데이터베이스 인스턴스 내의 데이터베이스 이름입니다. # # 또한 데이터베이스 이름은 PostgreSQL, MongoDB 및 Cloud Spanner 데이터베이스에서만 적용됩니다. db_names: [ "main" , "metrics" , "postgres" ] 와일드카드를 사용하여 모든 데이터베이스 이름/사용자와 매칭할 수 있습니다. 예를 들어, 다음 역할은 내부 "postgres" 데이터베이스/사용자를 제외한 프로덕션 데이터베이스 내 모든 데이터베이스/사용자에 대한 접근을 허용합니다: kind: role version: v5 metadata: name: developer