인증
인증 (Authentication)
본문
사용자 인증
lakeFS는 내장 인증 데이터베이스에서 사용자를 인증해요.
내장 데이터베이스
내장 인증 데이터베이스는 항상 존재하고 활성화돼 있어요. lakeFS Community는 초기 설정 과정에서 생성되는 단일 관리자 사용자를 가지고, lakeFS Enterprise는 웹 UI의 Administration / Users에서 추가 사용자를 만들 수 있게 해줘요.
사용자는 access key AKIA...와 이에 연결된 secret access key를 가져요. 이 자격 증명은 웹 UI에 로그인하거나 API 서버, S3 게이트웨이에 프로그래매틱 요청을 인증할 때 유효해요.
Info
lakeFS Enterprise에서는 auth.allowed_authentication_methods로 허용되는 인증 방식을 제한할 수 있어요(예: SSO를 선호해 access key를 비활성화).
싱글 사인온과 외부 인증기
lakeFS Community는 내장 데이터베이스에 대해서만 사용자를 인증하기 때문에, 로그인 폼은 관리자의 access key와 secret access key만 받고 그 외에는 아무 것도 받지 않아요. lakeFS Enterprise는 OIDC와 SAML을 통한 싱글 사인온, 로그인 폼을 기존 아이덴티티 서비스에 위임하는 플러그형 Remote Authenticator, AWS IAM 역할 인증, 아이덴티티 프로바이더가 발급하는 단기 토큰을 추가해요. 각 에디션이 포함하는 기능은 editions comparison에 정리돼 있어요.
API 서버 인증
API 서버에 대한 인증은 Basic Access Authentication으로 전달되는 키 쌍으로 이루어져요.
모든 HTTP 요청은 다음 구조의 Authorization 헤더를 실어야 해요:
Authorization: Basic *** encoded access_key_id:secret_access_key>
예를 들어 access_key_id가 my_access_key_id이고 secret_access_key가 my_secret_access_key라고 가정하면, 모든 요청에 다음 헤더를 보내요:
Authorization: Basic bXlfYW...eQ==
S3 게이트웨이 인증
Amazon S3와의 API 호환성을 제공하기 위해, S3 게이트웨이 인증은 SIGv2와 SIGv4를 모두 지원해요. 이 인증 방식을 구현한 AWS SDK 같은 클라이언트는 수정 없이 동작해야 해요.
AWS CLI로 인증하는 예제를 참고하세요.
클라이언트는 정적 자격 증명을 들고 있는 대신, lakeFS 로그인 토큰이나 아이덴티티 프로바이더 JWT를 임시 S3 게이트웨이 자격 증명으로 교환할 수도 있어요.
사용자 권한
lakeFS Community는 Access Control in lakeFS Community에서 설명했듯 전체 접근 권한을 가진 단일 관리자 사용자를 가져요. lakeFS Enterprise에서는 권한 부여가 그룹과 정책으로 관리돼요: 싱글 사인온으로 만들어진 사용자는 아이덴티티 프로바이더에 설정된 그룹에 가입하고, 그 권한은 lakeFS UI의 Administration 페이지나 lakectl로 관리할 수 있어요.
더 알아보기 (Learn more)
공식 문서의 원문은 https://docs.lakefs.io/security/authentication/ 에서 확인할 수 있어요.