lakeFS Community의 접근 제어
ACLs are no longer part of lakeFS
Access control list와 ACL 서버는 core lakeFS에서 제거됐고, lakeFS Community는 더 이상 외부 인가 서비스에 연결하지 않아요. 완전한 인가 솔루션이 필요하면 lakeFS Enterprise에서 제공되는 Role-Based Access Control을 참고하세요.
lakeFS Community는 단일 자격 증명 세트를 가진 단일 관리자 사용자로 실행돼요. 이 사용자는 서버 초기 설정 과정에서 생성되고, 그 자격 증명은 웹 UI 로그인뿐 아니라 API 서버와 S3 게이트웨이에 대한 요청 인증에도 유효해요. 추가 사용자, 그룹, 정책과 싱글 사인온은 lakeFS Enterprise의 Role-Based Access Control에 포함돼요.
예전에 lakeFS를 외부 인가 서비스에 연결하던 설정 키인 auth.api.*와 auth.ui_config.rbac는 deprecated됐어요. lakeFS는 기존 설정 파일이 계속 로드되도록 이 키들을 여전히 받아들이지만, 설정된 각 키에 대해 경고를 로그로 남기고 그 값을 무시해요. configuration reference에 영향받는 키들이 정리돼 있어요.
본문
자격 증명 교체하기
사용자가 하나뿐이기 때문에 자격 증명을 교체한다는 것은 같은 이름으로 사용자를 다시 만드는 걸 의미해요:
- 기존 사용자를 삭제해요:
lakectl auth users delete --id <user-id>
-
lakeFS 서버를 종료해요. 이러면 기존 자격 증명이 무효화돼요.
-
같은 이름과 새 자격 증명으로 사용자를 다시 만들어요:
lakefs superuser --user-name <user-id>
이 명령은 새 자격 증명 세트를 생성하고 출력해요:
credentials:
access_key_id: *** (omitted)
secret_access_key: *** (omitted)
- lakeFS 서버를 다시 시작해요.
Warning
superuser 명령을 미리 정의된 --access-key-id와 --secret-access-key와 함께 호출하는 것은 가능하지만, 신중하게 해야 해요. --secret-access-key를 비워 두지 않도록 주세요. secret key 없이 access key만 제공하면 Migrating an installation with multiple users에서 설명하는 자격 증명 임포트 플로우가 트리거돼요.
1단계에서 이미 사용자를 삭제했다면, 그 임포트는 실패하고 설치 환경이 복구 불가능한 상태로 남아요. 이때 유일한 방법은 깨끗하게 새로 설치하는 거예요.
여러 사용자가 있는 설치 환경 마이그레이션하기
lakeFS 데이터베이스에 아직 여러 사용자나 여러 자격 증명 세트를 가진 설치 환경(예: 싱글 사용자 모드 이전에 설정됐거나, 같은 데이터베이스로 ACL 서버를 실행했던 환경)은 어떤 사용자와 자격 증명을 유지할지 선택해야 해요. 저장된 사용자가 하나뿐이면 서버 시작 시 자동으로 채택돼요. 둘 이상이면 lakefs superuser 명령으로 사용자를 고르기 전까지 서버가 시작을 거부해요. <my-username>이라는 사용자와 <my-access-key-id>라는 access key가 있다면 이렇게 실행해요:
lakefs superuser --user-name <my-username> --access-key-id <my-access-key-id>
그 후에는 그 access key ID와 그 secret access key로 설치 환경에 접근할 수 있어요. ACL 서버가 자체 데이터베이스를 사용했다면 어떤 사용자도 넘어오지 않으므로, lakefs superuser --user-name <user-id>로 관리자를 만들기 전까지 서버가 시작을 거부해요. 그 후 명령이 출력한 자격 증명으로 로그인하면 돼요.
auth.ui_config.rbac을 external로 설정해 사용자를 외부 인가 서비스에 보관했던 설치 환경은 lakeFS 데이터베이스에 설정된 적이 없어요. 그래서 업그레이드된 서버가 초기화되지 않은 채 뜨고, 먼저 접근한 사람에게 설정 마법사를 제시할 수 있어요. 이를 막기 위해 lakeFS는 자체 관리자가 없는 상태에서 과거 사용의 흔적을 발견하면 시작을 거부해요. 그 흔적에는 기존 저장소, 이전 버전이 남긴 사용자, 설정에 여전히 남아 있는 auth.api 엔드포인트 등이 있어요. lakefs superuser --user-name <name>으로 관리자를 만드세요. 이 명령은 설치 환경이 설정 완료 상태로 기록되게 해서 그 후에는 서버가 정상적으로 시작되고, 명령이 출력한 자격 증명으로 로그인할 수 있어요. 클라이언트가 이미 설정되어 사용 중인 키 쌍을 유지하려면 --access-key-id와 --secret-access-key를 둘 다 넘기세요. access key ID만 넘기면 lakeFS에게 자체 데이터베이스에서 자격 증명을 임포트하라고 요청하는 게 되는데, 이런 종류의 설치 환경은 그런 데이터베이스를 가진 적이 없어요.
저장소도 사용자도 자체적으로 가지지 않은 설치 환경은 auth.api 키만이 유일한 흔적으로 남아요. 그래서 그 키들을 제거하기 전에 관리자를 먼저 만드세요.
더 알아보기 (Learn more)
공식 문서의 원문은 https://docs.lakefs.io/security/access-control-lists/ 에서 확인할 수 있어요.