그룹 프로바이더
그룹 프로바이더 (Group provider)
Trino는 사용자 이름을 그룹으로 매핑해서 접근 제어 관리를 쉽게 할 수 있어요. 이 매핑은 GroupProvider 구현체가 담당해요.
출처: 문서
본문
구현 (Implementation)
GroupProviderFactory는 GroupProvider 인스턴스를 만드는 책임을 가져요. 그리고 설정 파일에서 쓰는 그룹 프로바이더의 이름도 정의해요.
GroupProvider에는 getGroups(String user) 메서드 하나가 있어요. 이 메서드는 그룹 이름의 Set을 반환해요. 이 그룹 이름 집합은 그 사용자를 나타내는 Identity와 ConnectorIdentity 객체의 일부가 되고, 이후 시스템 접근 제어에서 사용할 수 있어요.
GroupProvider와 그에 대응하는 GroupProviderFactory의 구현은 Trino 플러그인으로 감싸서 클러스터에 설치해야 해요.
설정 (Configuration)
GroupProviderFactory를 구현한 플러그인을 코디네이터에 설치한 뒤에는 etc/group-provider.properties 파일로 설정해요. group-provider.name을 제외한 모든 속성은 GroupProviderFactory 구현체별로 달라요.
group-provider.name 속성은 Trino가 GroupProviderFactory.getName()이 반환하는 이름을 기준으로 등록된 GroupProviderFactory를 찾는 데 사용해요. 나머지 속성은 맵으로 묶여 GroupProviderFactory.create(Map)에 전달돼요.
예제 설정 파일:
group-provider.name=custom-group-provider
custom-property1=custom-value1
custom-property2=custom-value2
이 파일을 두면 Trino가 사용자 그룹 이름 해석을 시도하고, 접근 제어 규칙을 평가할 때 그룹 이름을 사용할 수 있어요.
더 알아보기 (Learn more)
그룹 기반 권한 부여와 관련된 실제 규칙 작성법은 시스템 접근 제어 문서에서 확인할 수 있어요.