::: IT인터넷 :::

MinIO의 WebUI 사용법 정리

곰탱이푸우 2022. 3. 31. 08:20
MinIO WebUI의 사용법을 정리한다.
버킷과 데이터 관리, 계정 관리, 정책 등을 WebUI로 사용할 수 있어 상당히 편리하다.

 

WebUI의 화면 구성이 상당히 직관적으로 되어 있다.
용어만 익숙해지면 사용하는데 큰 어려움은 없을 것으로 판단된다.
 
Docker를 사용하여 MinIO를 설정하는 방법은 다음 포스팅을 참고한다.

Dashboard 이해

Dashboard는 MinIO의 개략적인 운영 현황을 표현한다.
 

Gerneral Status

현재 사용 현황을 수치로 표현한다.
  • ALL BUCKETS - 현재 생성 된 전체 버킷 개수
  • USAGE - MinIO에 저장 된 전체 파일 용량
  • TOTAL OBJECTS - MinIO에 저장 된 전체 파일 개수
  • SERVERS - 현재 운영 중인 MinIO 서버 개수
 
단일모드로 설정해서 SERVERS 개수가 1로 표시된다.
Erasure Code 또는 Distributed 모드인 경우 4개 이상으로 표시된다.
 

SERVERS

MinIO 서버의 현황 정보를 표현한다.
단독 모드로 설정했기 때문에 1개만 표시 된다.

 

각 항목별 의미는 다음과 같다.
  • 서버 주소 - 해당 MinIO 서버에 연결하기 위한 URL:PORT
  • Drives - 해당 MinIO 서버에 연결 된 스토리지 (드라이브) 개수
  • Network - 해당 MinIO 서버에 연결 된 네트워크 개수
  • Uptime - 해당 MinIO 서버의 시작 이후 경과 시간
  • Version - MinIO 서버 버전
 

DRIVES

MinIO에서 사용 중인 전체 스토리지 용량 정보가 표시된다.
Docker로 공유 볼륨을 설정했기 때문에,  Host PC에서 해당 공유 볼륨이 위치하는 파티션의 용량 정보가 표시된다.
 
각 항목별 의미는 다음과 같다.
  • Capacity - 사용 중인 스토리지의 전체 용량
  • Used - 해당 스토리지에서 이미 사용 중인 용량
  • Available - 해당 스토리지에서 사용 가능한 용량
 
MinIO가 사용 중인 용량이 아닌 것에 주의한다.
MinIO에서 사용 가능한 용량은 물리적인 드라이브의 가용 공간을 초과 할 수 없다.
해당 공간이 부족하면 Host PC에서 공간을 확보하거나, MinIO의 확장 또는 이동을 고려해야 한다.
 
 

버킷 (Bucket) 관리

버킷 이해

Bucket은 MinIO에서 생성할 수 있는 최상위 디렉토리의 개념이다.
MinIO 내부에서 유일한 이름을 가져야 한다.
 
PostgreSQL과 같은 RDBMS 내부의 데이터베이스와 유사한 개념이다.
보통 서비스나 프로젝트 단위로 생성하며, 아래와 같은 경우에는 필요에 따라 용도별로 나눠도 된다.
 
보통 아래와 같은 경우 별도의 버킷을 제공하는 경우가 많다.
  • dev 버킷 - 개발 중 생성되는 임시 데이터 저장 목적
  • workspace - 사용자마다 자유로운 작업 공간 제공
 
이러한 임시 공간은 언제든 삭제 가능해야 하며, MinIO의 가용 공간이 부족할 경우 최우선적으로 정리해야 한다.
 

버킷 생성

좌측 메뉴의 Buckets를 클릭하고 우상단의 Create Bucket을 클릭한다.

 

생성할 Bucket의 이름을 입력하고 하단의 Create Bucket 버튼을 클릭한다.
Bucket 이름은 MinIO 내부에서 유일한 이름을 가져야 한다.

 

아래 3가지 기능은 분산 모드에서만 지원하기 때문에, 단독 모드에서는 사용이 불가능하다.
  • Versioning - 파일의 변경 이력 관리
  • Object Locking - 보존 또는 법적 보존을 위한 변경 금지 기능 활성화
  • Quota - 버킷별 사용 가능 용량 제한
 
MinIO는 Object Strorage이기 때문에 파일을 Object라는 용어를 사용하여 관리한다.
MinIO 사용 중 Object라는 단어가 나오면 파일이나 데이터를 의미한다고 이해하면 도움이 된다.
 
다음과 같이 버킷이 생성 된 것을 확인할 수 있다.
 
좌측 메뉴의 Buckets를 클릭하면 생성한 Bucket의 개요 정보가 표시된다.
생성 일시 (Created), 작업 권한 (Access), 사용량 (Usage), 파일 개수 (Objects) 등을 확인할 수 있다.
 
 

버킷 설정 변경

버킷 설정을 변경하기 위한 메뉴에 진입하는 방법은 두가지가 있다.
 
버킷 목록에서 해당 버킷의 Manage 버튼을 클릭한다.
 
또는 버킷의 Browse를 클릭하고, 해당 버킷에서 우측 상단의 톱니바퀴 버튼을 클릭한다.

 

버킷 설정 화면은 다음과 같다. 기본적으로 Summary 메뉴로 진입한다.
단독 모드이기 때문에 replication, Lifecycle 기능은 비활성화 되어 있다.
자주 사용할 Summary, Access Audit만 정리한다.
 
Summary
Summary 화면에서 변경 가능한 기능은 다음과 같다.
  • Access Policy - 접근 정책을 설정한다. Private, Public, Custom이 있다. 비공개, 공개, 기타로 이해하면 된다.
  • Encryption - 저장할 오브젝트 (파일)를 암호화하여 저장할 것인지 결정한다.
  • Replication, Object Locking - 단독 모드이기 때문에 비활성화 되어 있다.
  • Reported Usage - 현재 사용중인 데이터 크기를 의미한다.
  • Tags - 해당 버킷을 설명하는 키워드를 태그로 등록한다.
 
Access Audit
Access Audit은 해당 버킷에 대한 접근 권한과 정책을 관리할 수 있다.
Policies는 권한 목록을 관리하고, Users는 사용자별로 권한을 적용할 수 있다.
 
 

버킷 삭제

버킷 설정 화면에 진입해서 상단의 Delete Bucket 버튼을 클릭한다.

 

아래와 같이 비어있는 bucket만 삭제 가능하다는 메시지가 표시된다.

 

그러나 일반 사용자에 한정된다.
 
컨테이너를 생성할때 지정한 루트 계정인 경우 데이터가 있어도 삭제된다.
루트 계정을 사용하는 경우 버킷을 삭제하면서 데이터 손실이 발생할 수 있으므로 주의해야 한다.
 

데이터 관리

MinIO에서 데이터를 사용하는 방법은 웹하드만큼 쉽다.
데이터를 업로드하고 다운로드하는 것이 전부이다.
 
사용하고자 하는 버킷의 우측에 있는 Browse 버튼을 클릭하면 해당 버킷을 사용할 수 있다.
 

파일시스템과 다른 폴더 개념

전체적인 사용법은 일반적인 웹하드와 비슷하지만, 폴더에 대한 개념이 다른 점에 유의한다.
MinIO는 Object Storage로 일반적인 NTFS (윈도우)나 ext4 (우분투)와 같은 파일시스템과 다르다.
 
일반적으로 MinIO의 Object 경로는 다음과 같이 표시된다.
/버킷명/폴더명/.../파일명.확장명

 

MinIO 내부에서 모든 파일 (Object)은 버킷 하위에 동일한 계층에 저장된다.
경로는 WebUI나 CLI에서 파일시스템과 같은 계층적 구조로 표현하기 위한 메타데이터로 사용된다.
 
따라서 MinIO와 S3 같은 Object Storage에서 비어있는 폴더란 존재할 수 없다. 비어있는 버켓만 가능하다.
실제로 특정 폴더의 파일을 전부 삭제하면, MinIO 브라우저에서 보이지 않는다.
해당 폴더 경로를 메타 데이터로 가지는 파일 (Object)이 존재하지 않기 때문이다.
 
 

폴더 생성 하기

우측 상단 버튼 중 제일 좌측의 버튼을 클릭한다.

 

생성하고자 하는 폴더 경로를 입력한다.
 
슬래시 (/) 를 경로 구분자로 사용하여 test/folder/create와 같은 경로도 생성 가능하다.
경로가 메타 데이터이기 때문이다.
 
좌측 상단의 폴더 경로에서 buckettest를 클릭하면 생성한 폴더가 사라진다.
 
앞서 설명한 대로 해당 경로를 메타 데이터로 가지는 파일 (Object)이 없기 때문이다.
Object Storage에서 비어있는 폴더란 없다. 비어있는 버킷만 있다.

 

 

업로드 하기

MinIO는 스토리지이기 때문에 파일을 저장해야 의미가 있다.
파일 저장은 업로드로 가능하고, 파일 업로드와 폴더 업로드 모두 가능하다.
 
파일 업로드
우측 상단 버튼 중 좌측에서 두 번째 버튼을 클릭한다.
 
업로드할 파일을 선택하면 업로드가 진행되고 다음과 같이 표시된다.
 
폴더 업로드
우측 상단 버튼 중 가운데 버튼을 클릭한다.
 
업로드할 폴더를 선택하면 업로드가 진행되고 다음과 같이 표시된다.
 

다운로드 하기

파일과 폴더 구분 없이 동일한 버튼을 사용한다.
개별 파일이나 폴더의 경우 파일 우측의 다운로드 버튼을 사용한다.
여러 개의 파일이나 폴더를 다운로드하는 경우 좌측에 체크하고 상단의 Download Selected 버튼을 클릭한다. (쉽쥬?)
 

삭제하기

삭제하기는 더 간단하다.
파일과 폴더 구분 없이 동일한 버튼을 사용한다.
개별 파일이나 폴더의 경우 파일 우측의 삭제 버튼을 사용한다.
여러 개의 파일이나 폴더를 삭제하는 경우 좌측에 체크하고 상단의 Delete Selected 버튼을 클릭한다.
 
 

계정 관리

MinIO 역시 다른 서비스와 같이 계정 관리 기능을 제공한다.
화면 좌측의  Users를 클릭하면 사용자 계정 관리가 가능하다.
 

계정 생성

MinIO에서 사용할 계정을 추가한다.
 
화면 우측 상단의 Create User 버튼을 클릭한다.
 
생성할 계정 정보와 권한(Policies)을 선택하고 Save 버튼을 클릭한다.
  • Accecss Key - 사용자 계정 (Account ID)
  • Secret Key - 계정 비밀번호 (Password)
  • Policies - 계정 권한
  • Groups - 계정이 특정 그룹에 포함되어야 하는 경우
 
계정이 정상적으로 생성 되는 것을 확인할 수 있다.

 

Policy에서 consoleAdmin 권한이 부여되지 않으면 일반 사용자 권한이 부여된다.
실제로 로그인해보면 좌측 메뉴가 6개만 활성화 되는 것을 확인할 수 있다.
License와 Documentation을 제외하면 실제 사용 가능한 메뉴는 4개 뿐이다.

 

일반 사용자 권한이기 때문에 비어있는 버킷이 아니면 삭제가 되지 않는다.
 
 

계정 수정

특정 계정의 비밀번호와 권한 변경, 특정 그룹에 추가하기 위해서는 계정의 설정을 변경해야 한다.
 
Users 화면에서 수정하고자 하는 계정을 클릭한다.
 
계정 설정 변경
설정 변경이 가능한 항목은 다음과 같다.
  • User Status - 계정의 사용 여부 결정
  • 자물쇠 아이콘 - 비밀번호 변경
  • Groups - 해당 계정을 특정 Group에 추가
  • Service Accounts - Kubernetes에서 계정 인증을 위한 것으로 해당 사항 없음
  • Policies - 계정 권한 변경
 
별도 저장 버튼이 존재하지 않는다. 즉, 설정을 변경하면 즉시 적용된다.
 
계정 권한 관리
MinIO에서 기본적으로 제공하는 Policies의 종류는 다음과 같다.
  • consoleAdmin - 관리자
  • diagnostics - MinIO 진단 기능 접근 권한
  • readonly - 읽기 전용 (자동화 계정)
  • readwrite - 읽기/쓰기 가능 (일반 사용자)
  • writeonly - 쓰기 전용 (자동화 계정)
 
해당 권한들은 다음과 같이 활용한다.
관리자 역할을 수행해야 하는 경우 consoleAdmin, 그외 사용자는 readwrite 권한을 부여한다.
 
자동화에 사용하는 계정은 상황에 맞게 부여한다.
  • 다운로드만 하는 경우 readonly
  • 업로드만 하는 경우 writeonly
  • 동시에 해야 하는 경우 readwrite (제한적으로 부여)
 

계정 삭제

계정을 삭제하는 방법은 간단하다.
 
Users의 계정 우측에 있는 휴지통 모양을 클릭한다.
 
또는 해당 계정을 클릭하고 상세 정보 화면의 우측 상단에 있는 휴지통 아이콘을 클릭한다.

 

확인 메시지가 출력되면 Delete를 클릭한다.
 
 

그룹 관리

MinIO에서는 사용자들을 분류 기준에 맞게 묶어서 관리할 수 있는 Group 기능을 제공한다.
 
메뉴 좌측의 Groups 버튼을 클릭하면 사용 가능하다.
참고로 webAdmin 권한을 가진 관리자에게만 보인다.

 

그룹 추가

우측 상단의 Create Group 버튼을 클릭한다.
 
추가할 그룹과 사용자를 선택하고 Save 버튼을 클릭한다.
사용자 선택을 하지 않으면 사용자가 없는 그룹이 생성된다.
 
 

그룹 수정

그룹 목록에서 해당 그룹 이름을 클릭하면 그룹의 상세 정보로 이동한다.
 
그룹 정보 수정은 사용 여부 변경, 구성원 추가 (Members), 그룹 권한 설정 (Policies)이 가능하다.
 
사용 여부 변경
Group Status 부분의 스위치를 Off로 변경하면 사용안함 (Disabled)으로 변경 된다.
기본 값은 사용함 (Enabled)이다.

 

구성원 추가
Members 화면 우측의 Add Members 버튼을 클릭한다.
 
추가하려는 사용자에 체크하고 Save 버튼을 클릭한다.
 
권한 설정
해당 그룹의 기본 권한을 설정한다.

 

Policies를 선택하고 우측의 Set Policies 버튼을 클릭한다.
 
적용하고자 하는 권한에 체크하고 Save 버튼을 클릭한다.
  • 관리자 그룹인 경우 consoleAdmin 체크
  • 일반 사용자 (개발자) 그룹인 경우 readwrite 체크
 
 

그룹 삭제

그룹 삭제는 사용자 삭제와 동일하다.
 
그룹 목록에서 삭제하려는 그룹 우측의 휴지통 아이콘을 클릭한다.

 

또는 삭제하려는 그룹을 클릭하고 우측 상단의 휴지통을 클릭한다.
 
확인 메시지가 출력되면 Delete를 클릭한다.
 

정책 관리

MinIO에서 제공하는 기본 권한 외에 추가로 직접 권한을 생성하고 싶은 경우 사용한다.

 

좌측의 IAM Policies를 선택하고 우측의 Create Policy를 클릭한다.
 
권한 이름과 권한 상세 설정을 입력한다.

 

권한 상세 설정은 JSON 포맷으로 작성해야 한다.
아래 문서를 참고한다.
권한은 MinIO에서 기본 제공하는 것만 사용할 것이므로 추가 정리는 하지 않는다.