네이버클라우드

[Ncloud] S3 Browser로 두 계정의 bucket to bucket 파일 전송

graph-dev 2024. 1. 28. 19:04
728x90

S3 Browser 로고

 

제목을 항상 고민합니다.

다른 계정의 bucket으로 본인 bucket에 있는 파일을 전송한다는 것을 짧게 표현하기 어렵네요.

 

S3 Browser

S3 browser는 훌륭한 오픈소스 도구입니다. AWS S3라는 스토리지 서비스를 타겟으로 다양한 기능을 갖고 있습니다. 네이버클라우드는, 이 AWS S3와 호환되는 endpoint를 제공하고 있어서, 그대로 활용하기 좋아서 공식 블로그에서도 이 s3 browser 도구 사용을 예로 들어 설명하기도 합니다. 공인 교육에도 사용합니다. 보다 자세한 내용은 아래 공식 홈페이지를 참고하시면 됩니다.

https://s3browser.com

 

 

네이버클라우드의 S3 Browser 활용 사례

 

공식 블로그에서는, Object Storage와 S3 Browser 연동방법을 소개하고 있습니다.

https://blog.naver.com/n_cloudplatform/222077298481

 

[이렇게 사용하세요!] 네이버 클라우드 플랫폼 Object Storage 서비스와 S3 Browser 연동하기

네이버 클라우드 플랫폼 Object Storage 서비스와 S3 Browser 연동하기 *본 콘텐츠는 네이버 클라우드 ...

blog.naver.com

 

이렇게 쉽게 연동이 가능하고 편리해보입니다.

 

다른 글에서도, 이 도구를 소개하고 있고, 파일 권한관리하는 법도 추가해서 설명합니다.

https://docs.3rdeyesys.com/storage/ncloud_storage_object_storage_s3_client_s3browser.html

 

Object Storage 접속용 Windows Client Tool - S3 Browser

Ncloud Object Storage 접속용 Windows Client Tool - S3 Browser 사용 방법입니다

docs.3rdeyesys.com

 

다만, 이 도구로 다른 계정간 전송도 가능한지 궁금합니다. 그래서 직접 간단한 실험을 해보겠습니다.

 

 

먼저 메인 계정은 민간존으로, kr.object.ncloudstorage.com이라는 엔드포인트를 사용합니다. 다른 타겟 계정은 민간존, 공공존 두 가지가 있습니다. 이렇게 두 엔드포인트로 경우를 나누어 메인 계정에서 타겟 계정의 bucket으로 파일 전송이 가능한지 살펴보고자 합니다.

 

1. 같은 엔드포인트(kr.object.ncloudstorage.com)

 

 

 

2. 다른 엔드포인트(kr.object.gov-ncloudstorage.com)

 

 

 

 

이렇게 설정하고, 간단히 확인해보겠습니다.

 

 

같은 엔드포인트간 버킷의 파일 교환

메인 계정에는 graph-bucket이 있고, 그 내부에 1,2,3,4,5,6,10이라는 텍스트 파일이 있습니다.

 

 

 

 

S3 browser에 연동하기 위해, 메인 계정의 인증키 정보를 저장합니다. 네이버클라우드 홈페이지 > 마이페이지 > 인증키 관리로 이동하여 API 인증키 관리에 나타난 Access Key ID, Secret Key를 저장해둡니다.

 

 

 

 

S3 Browser에 New Account를 누르고, 아래처럼 S3 Compatible Storage로 설정하고, 저장한 인증키 정보와 엔드포인트(kr.object.ncloudstorage.com)를 입력하여 생성합니다.

 

 

 

다음은, 받는 계정의 ID를 활용해서 콘솔에서 권한 관리를 해줍니다. 메인 계정의 버킷에서 권한 관리를 통해, 받는 계정에게 업로드와 목록 조회 권한을 부여하겠습니다.

 

 

 

S3 Browser에서, 계정을 두고 우클릭하여 "Add External Bucket"을 누릅니다. 받는 계정이 가진 버킷 이름을 입력합니다.

 

 

 

위와 같이 등록하면, 콘솔과 동일하게 버킷 내 파일 목록이 나타납니다. 하나의 파일이 있습니다.

 

 

 

이제 메인 계정의 버킷에 있는 10.txt 파일을 받는 계정의 버킷(swift)으로 이동해보겠습니다. 

 

 

 

 

10.txt 파일을 우클릭하고 "Move to.."를 누릅니다. 그리고 swift라는 버킷으로 설정합니다.

 

 

 

 

이제 메인 계정 버킷에는 10.txt 파일이 사라지고, 받는 계정 버킷인 swift에 10.txt 파일이 추가된 것을 확인할 수 있습니다.

 

 

 

실제 네이버클라우드 콘솔도 동일하게 나타납니다. 다른 계정의 버킷으로 10.txt 파일이 이동된 것을 확인할 수 있습니다.

 

 

 

추가로 버킷내 모든 파일을 한번에 전송하는 Copy/Move to all files.. 옵션도 있습니다만, pro version으로 업그레이드해야 사용할 수 있습니다. 즉, 유료입니다.

 

 

 

 

권한 없이 전송해보기

아까 부여한 권한을 제거하고 파일을 이동하면 어떻게 될까요? 한번 시도해보겠습니다.

 

받는 계정에 부여했던 권한을 삭제합니다.

 

 

 

다시 받는 계정의 버킷을 S3 browser에서 제거하고, 새롭게 External Bucket으로 추가합니다.

 

 

 

 

다시 3.txt 파일에서 우클릭하고, "Move to.."를 누르고, swift 버킷을 설정합니다.

 

 

 

아쉽게도, Access Denied가 뜨며 이동이 안되는 것을 확인할 수 있습니다.

 

 

 

그런데, 기존에 옮긴 파일은 어떻게 될까요?

 

아래와 같이, 소유자에게 권한을 부여받도록 경고 메시지가 뜨며, 파일의 세부정보를 콘솔에서 확인할 수 없게 됩니다.

 

 

 

 

다른 엔드포인트간 버킷내 파일 교환

이번에는, 민간과 공공존의 파일 교환을 시도해보겠습니다. 이 버킷은 공공존에 있는 버킷입니다.

 

 

먼저 공공존의 계정 자체를 등록하여, 버킷 내부 파일을 확인해보겠습니다. 공공존 버킷의 내부 파일 목록이 잘 나타납니다.

 

그리고, 이번에는 위의 민간존 계정을 기준으로, "Add External Bucket"을 사용해서 등록해보겠습니다.

 

 

 

아쉽게도, 찾을 수 없다고 나옵니다. (NoSuchBucket)

 

 

 

 

그 이유를 알아야겠습니다. Properties에 있는 URL을 확인해보겠습니다.

 

 

 

기준 계정이 민간존 엔드포인트이므로, 추가되는 버킷도 자동으로 민간존 엔드포인트로 설정되어 공공존 버킷을 찾을 수 없게 됩니다. 그래서 파일 전송이 제한되는 것입니다.

 

 

반대로도 확인해보겠습니다. 공공존 버킷을 메인 계정으로 등록하고, external bucket으로 민간존 버킷(swift)을 등록합니다.

 

 

URL이 공공존 엔드포인트가 추가되어 나타납니다. 즉, 공공존에서 민간존에 있는 버킷을 찾으려니 없다고 나타나는 것입니다.

 

결론은 S3 browser는 같은 엔드포인트끼리만 교환할 수 있습니다. Add External Bucket 방식으로는 엔드포인트가 동일하게 민간존은 민간존끼리, 공공존은 공공존끼리만 두 계정의 버킷내 파일 교환이 가능합니다. 다른 방법이 있다면, 언제든 알려주세요.

 

 

 

감사합니다.