본문 바로가기

클라우드

GCP(Google Cloud Platform) GCS(Google Cloud Storage) 에서 특정 계정에만 권한 부여

728x90

안녕하세요 오랜만입니다. 포스팅을 뭐할까 고민하다가 GCP 서비스 계정 권한을 줄 때 까먹는 자신을 보며 이번기회에 포스팅이나 해야겠다라고 생각해서 포스팅하게되었습니다.

 

오늘 주제는 GCP 에서 GCS 에 관한 권한에 대해 알아볼텐데 

 

이게 GCS는 AWS의 S3와 걍 똑같다고 보시면됩니다. 

 

똑같이 버킷이 있는데 권한을 주기 위해서는 이거를 GCP에서 뭐라고 부르는지를 아는게 중요합니다.

 

일단 GCS에서 버킷을 만들어봅시다.

 

여러 설정에서 리전, 클래스 등을 선택할 수가 있는데

 

데이터 저장위치 : 데이터를 저장할 리전 선택 (단일, 멀티 등 다양하게 선택가능)  리전에 따라 요금도 다르고 지연시간도 조금씩 다릅니다. 제 생각엔 요금차이가 그렇게 크지 않게 때문에 정말 아무거나 선택해도 될 거 같습니다.(그래서 저는 단일 리전에 서울리전을 사용했습니다.) 

 

데이터의 스토리지 클래스 : 이건 만든 버킷에 얼마나 자주 접근할 건지에 대한 빈도수에 따라 정하는게 좋습니다. 만약 저장되는 데이터가 콜드데이터일수록 장기보존데이터로 두고 자주 접근할수록 standard로 두는게 좋습니다. (이 차이가 가격과 속도 등에 차이가 있다고는 하지만 구체적으로 얼만큼 차이가 나는지는 테스트를 안해봐서 잘 모르겠습니다. 저는 standard로 했습니다.)

 

객체 액세스 제어방식 : IAM 과 ACL 이 있습니다. (GCP IAM은 Identity and Access Management 로 서비스 계정 및 액세스를 관리해주는 것으로 특정계정이 버킷수준의 권한을 가지게 합니다. 즉 특정 계정이 A버킷은 접근가능한데 B버킷은 접근불가능한 정도의 권한 수준을 가지게 할 수 있는 방식입니다.) (ACL은 Access Control List로 솔직히 사용안해봐서 잘 모르겠습니다. 대략 설명만 보면 버킷, 객체에 권한을 줄 수 있다고 하네요)

* 본 포스팅에선 IAM을 이용해 권한 설정을 합니다.

 

이정도만 설정하고 버킷생성을 눌러봅시다.

 

 

이제 알아두셔야할게 GCP IAM으로 줄 수 있는 역할(권한)을 알아야 합니다. 

 

특정 계정(프로젝트에 초대된 gmail 계정) 또는 서비스 계정에 권한을 줄 수 있는데, 정말 여러가지 권한이 있습니다.

 

우선 저장소(버킷) 개체(버킷 안의 개체) 라고 생각하시면 편합니다.

 

특정 계정(프로젝트에 초대된 gmail 계정) 에 그냥 GCS에 대한 전체 권한을 주려면 밑에 처럼 설정하면됩니다.

 

IAM에 들어가서 주 구성원에 편집버트을 눌러 역할을 뷰어, 저장소 개체 관리자를 지정해줍시다.

 

뷰어(GCP에 있는 모든 요소들을 볼 수 있게 해주는 권한)

저장소 개체 관리자(GCS의 버킷에 있는 요소들을 생성, 삭제 등을 할 수 있게 하는 권한)

 

이렇게 설정을 하면 해당 계정은 GCS에 있는 모든 요소에 접근이 가능합니다. (파일 생성, 업로드, 삭제 등)

 

하지만 이렇게 하면 버킷별로 관리를 할 수가 없어집니다. 그래서 어떻게 설정을 해줘야하나?? GCS로 돌아갑니다.

 

방금 만든 버킷에 액세스 수정을 눌러줍니다.

 

주 구성원 추가를 누르고 해당 버킷에 대한 역할을 지정해줍시다. (리소스 : test-bucket-taeil)

 

 

저장소 개체 뷰어라는 권한을 주게 될경우 'taeil710@gmail.com' 이란 계정은 해당 버킷에 접속해서 보기만하고 다운로드만 할 수 있습니다. 업로드도 안되고 삭제도안됩니다. 또한 버킷 목록도 볼수가 없기때문에 접근하려면 url로 접속해야합니다. 버킷 목록을 보고싶다면 권한을 또 따로줘야합니다. (저장소 리스트 뷰어 라는 권한을 IAM 에서 설정해야함 이건 전체 권한이라 버킷 단위에서 주면안되고 IAM에서 계정에서 설정해줘야함.)

 

자 이런식의 권한의 종류가 뭐가 있냐?

 

저장소 개체 뷰어 : 버킷 내 개체들을 읽기만 가능하게함(다운로드가능) 업로드 X
저장소 개체 생성자 : 버킷 내 개체를 업로드를 가능하게 함. (삭제 불가능)

저장소 개체 관리자 : 저장소 개체 관리로 읽기, 쓰기, 삭제 모든게 가능
버킷단위에선 이정도만 알면되고

 

추가적으로 IAM 단위에서는 이정도가 있습니다.

저장소 리스트 뷰어 : 버킷 목록을 볼 수 있음

저장소 개체 관리자 : IAM 단위에서 설정해줄경우 모든 버킷에 권한이 생겨버림

 

 

다들 똑똑하게 권한 설정하시기 바랍니다.

 

반응형