목차

반응형

증상

node 백엔드에서 구글 클라우드 스토리지 서비스를 사용하여 파일을 업로드하려고 했으나 자꾸 아래와 같이 접근 권한 오류 발생했다.

storage-service-account@******.iam.gserviceaccount.com does not have storage.objects.create access to the Google Cloud Storage object.

 

원인

구글 스토리지 서비스 계정에 권한을 부여하지 않아서 그렇다.

 

스토리지니까 대충 저거 부여하면 되는 줄 알았더니 아니다.

더 정확히 찾아봐야 한다.

 

아래 링크에서 본인이 사용하려고 하는 명령어는 어떤 권한이 필요한지 확인해보고 부여하도록 하자.

https://cloud.google.com/iam/docs/understanding-roles

 

역할 이해  |  Cloud IAM 문서  |  Google Cloud

역할에는 Google Cloud 리소스에서 특정 작업을 수행할 수 있는 일련의 권한이 포함되어 있습니다. 사용자, 그룹, 서비스 계정을 포함하여 주 구성원에게 권한을 제공하려면 주 구성원에게 역할을

cloud.google.com

 

해결방법

이렇게 3개의 관리자 권한을 주면 대체로 해결된다.

 

본인은 권한을 제대로 부여했는데 작동하지 않아서 구글 커맨드라인 콘솔에서 특정 계정에 부여된 권한 부여 및 조회하는 명령어도 찾아봤다.

 

구글 서비스 계정 양식

cloud-storage-service@******.iam.gserviceaccount.com

 

권한 부여

gcloud projects add-iam-policy-binding cloud-storage-service --member "serviceAccount:cloud-storage-service@******.iam.gserviceaccount.com" --role "roles/storage.objectViewer"

gcloud projects add-iam-policy-binding x-*** --member=serviceAccount:cloud-storage-service@******.iam.gserviceaccount.com --role=roles/storage.admin

gcloud projects add-iam-policy-binding x-*** --member=serviceAccount:cloud-storage-service@******.iam.gserviceaccount.com --role=roles/storage.objectCreator

 

권한 조회

gcloud projects get-iam-policy x-*** --flatten="bindings[].members" --format="table(bindings.role)" --filter="bindings.members:cloud-storage-service@******.iam.gserviceaccount.com"

권한을 조회하면 위와 같이 현재 계정에 부여된 권한이 나온다.

 

본인은 그냥 버킷 이름을 제대로 안 써서 계속 권한이 없다고 나온 것이었다.

반응형