Password file authentication
Password file authentication (비밀번호 파일 인증)
파일에 저장된 사용자 이름과 비밀번호를 이용해 Trino에 HTTPS로 인증하도록 구성하는 방법이에요. LDAP 인증과 매우 유사한 간단한 방식이에요.
출처: 문서
본문
Trino는 CLI나 JDBC·ODBC 드라이버 같은 클라이언트에 대해 HTTPS를 통한 프런트엔드 비밀번호 인증을 활성화하도록 구성할 수 있어요. 사용자 이름과 비밀번호는 파일에 저장된 사용자 이름·비밀번호와 대조해 검증돼요.
비밀번호 파일 인증은 LDAP 인증과 매우 비슷해요. 서버와 클라이언트가 TLS를 사용하고 사용자 이름·비밀번호로 인증하도록 구성하는 일반적인 지침은 LDAP 문서를 참고하세요.
비밀번호 파일 인증에는 TLS 사용과 구성된 공유 시크릿(shared secret)이 필요해요.
비밀번호 인증기 구성 (Password authenticator configuration)
비밀번호 파일 인증을 활성화하려면 etc/config.properties에서 비밀번호 인증 타입을 설정하세요:
http-server.authentication.type=PASSWORD
추가로 코디네이터에 etc/password-authenticator.properties 파일을 만들고 file 인증기 이름을 지정하세요:
password-authenticator.name=file
file.password-file=/path/to/password.db
다음 구성 속성을 사용할 수 있어요:
| Property | Description |
|---|---|
file.password-file |
비밀번호 파일의 경로. |
file.refresh-period |
비밀번호 파일을 다시 로드하는 주기. 기본값은 5s. |
file.auth-token-cache.max-size |
캐시되는 인증된 비밀번호의 최대 수. 기본값은 1000. |
비밀번호 파일 (Password files)
파일 형식 (File format)
비밀번호 파일에는 한 줄에 하나씩, 콜론으로 구분된 사용자 이름과 비밀번호의 목록이 들어 있어요. 비밀번호는 bcrypt 또는 PBKDF2로 안전하게 해시되어야 해요.
bcrypt 비밀번호는 $2y$로 시작하며 최소 cost 8을 사용해야 해요:
test:$2y$10$BqTb8hScP5DfcpmHo5PeyugxHz5Ky/qf3wrpD7SNm8sWuA3VlGqsa
PBKDF2 비밀번호는 반복 횟수, 16진수로 인코딩된 salt와 해시로 구성돼요:
test:1000:5b4240333032306164:***
비밀번호 파일 만들기 (Creating a password file)
bcrypt 형식을 사용하는 비밀번호 파일은 Apache HTTP Server의 htpasswd 유틸리티로 만들 수 있어요. Trino가 기본값보다 높은 최소 cost를 강제하므로 cost를 반드시 지정해야 해요.
빈 비밀번호 파일을 만들어 시작해 보아요:
touch password.db
test 사용자의 비밀번호를 추가하거나 업데이트하려면:
htpasswd -B -C 10 password.db test
구성 확인 (Verify configuration)
비밀번호 파일 인증을 확인하려면 Web UI에 로그인하고 Trino CLI로 클러스터에 연결해 보아요:
- 브라우저에서
https://trino.example.com:8443같은 HTTPS URL로 Web UI에 연결하세요. Username 텍스트 박스에 사용자 이름을, Password 텍스트 박스에 해당 비밀번호를 입력하고 로그인하세요. 잘못된 사용자 이름·비밀번호 조합으로는 로그인할 수 없는지 확인하세요. 로그인에 성공하면 UI 오른쪽 위 모서리에 사용자 이름이 표시돼요. https://trino.example.net:8443같은 HTTPS URL에--user와--password속성을 추가해 Trino CLI로 연결하세요:
./trino --server https://trino.example.com:8443 --user test --password
위 명령은 비밀번호를 입력하라고 안내해요. --user 속성에 입력한 사용자로 설정한 비밀번호를 입력하면 trino> 프롬프트를 사용할 수 있어요. 인증에 성공하면 CLI에서 쿼리를 실행할 수 있어요.
연결을 테스트하려면 쿼리를 보내 보세요:
trino> SELECT 'rocks' AS trino;
trino
-------
rocks
(1 row)
Query 20220919_113804_00017_54qfi, FINISHED, 1 node
Splits: 1 total, 1 done (100.00%)
0.12 [0 rows, 0B] [0 rows/s, 0B/s]
더 알아보기 (Learn more)
비밀번호 파일 인증의 일반적인 설정 원리는 LDAP authentication 문서에서 함께 확인할 수 있어요.