gsutil 명령어용 Cloud IAM 권한

다음 표에서는 특정 리소스에서 각 Cloud Storage gsutil 명령어를 실행하는 데 필요한 Cloud Identity and Access Management(Cloud IAM) 권한을 보여줍니다. 와일드 카드, -r 플래그, -m 플래그 사용에 대한 참고 사항은 표 아래 섹션을 참조하세요.

명령어 하위 명령어 대상 리소스 필요한 Cloud IAM 권한
acl get 버킷 storage.buckets.get
storage.buckets.getIamPolicy
acl set 또는 ch 버킷 storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get 객체 storage.objects.get
storage.objects.getIamPolicy10
acl set 또는 ch 객체 storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
bucketpolicyonly set 버킷 storage.buckets.setIamPolicy2
bucketpolicyonly get 버킷 storage.buckets.get
cat 객체 storage.objects.get
compose 객체 storage.objects.get(소스 객체용)
storage.objects.create(대상 버킷용)
storage.objects.delete1(대상 버킷용)
config 없음
cors get 버킷 storage.buckets.get
cors set 버킷 storage.buckets.update
cp 객체 storage.objects.list2(대상 버킷용)
storage.objects.get(소스 객체용)
storage.objects.create(대상 버킷용)
storage.objects.delete1(대상 버킷용)
storage.objects.getIamPolicy3,10(소스 객체용)
storage.objects.setIamPolicy3,10(대상 버킷용)
cp -n 객체 storage.objects.list2(대상 버킷용)
storage.objects.get(소스 객체 및 대상 버킷용)
storage.objects.create(대상 버킷용)
storage.objects.getIamPolicy3,10(소스 객체용)
storage.objects.setIamPolicy3,10(대상 버킷용)
defacl get 버킷 storage.buckets.get
storage.buckets.getIamPolicy
defacl set 또는 ch 버킷 storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
defstorageclass get 버킷 storage.buckets.get
defstorageclass set 버킷 storage.buckets.update
du 객체 storage.objects.get
hash 객체 storage.objects.get
help 없음
iam get 버킷 storage.buckets.get
storage.buckets.getIamPolicy
iam set 또는 ch 버킷 storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get 객체 storage.objects.get
storage.objects.getIamPolicy10
iam set 또는 ch 객체 storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
kms authorize 프로젝트 resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKey.setIamPolicy(인증할 Cloud KMS 키용)
kms encryption 버킷 storage.buckets.get
kms encryption -d 버킷 storage.buckets.get
storage.buckets.update
kms encryption -k 버킷, 프로젝트7 storage.buckets.get
storage.buckets.update
resourceManager.projects.get7
cloudkms.cryptoKey.setIamPolicy7
kms serviceaccount 프로젝트 resourceManager.projects.get
label get 버킷 storage.buckets.get
label set/ch 버킷 storage.buckets.update
lifecycle get 버킷 storage.buckets.get
lifecycle set/ch 버킷 storage.buckets.update
logging get 버킷 storage.buckets.get
logging set 버킷 storage.buckets.update
ls 프로젝트 storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls 버킷, 객체 storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6,10
ls -b 버킷 storage.buckets.get
storage.buckets.getIamPolicy6
mb 버킷 storage.buckets.create
mv 객체 storage.objects.list2(대상 버킷용)
storage.objects.get(소스 객체용)
storage.objects.create(대상 버킷용)
storage.objects.delete(소스 객체용)
storage.objects.delete1(대상 버킷용)
storage.objects.getIamPolicy3,10(소스 객체용)
storage.objects.setIamPolicy3,10(대상 버킷용)
mv -n 객체 storage.objects.list2(대상 버킷용)
storage.objects.get(소스 객체 및 대상 버킷용)
storage.objects.create(대상 버킷용)
storage.objects.delete(소스 객체용)
storage.objects.getIamPolicy3,10(소스 객체용)
storage.objects.setIamPolicy3,10(대상 버킷용)
notification create 버킷 storage.buckets.update
pubsub.topics.get(Pub/Sub 주제를 포함하는 프로젝트용)
pubsub.topics.create8(Pub/Sub 주제가 포함된 프로젝트용)
pubsub.topics.getIamPolicy(알림을 수신하는 Pub/Sub 주제용)
pubsub.topics.setIamPolicy8(알림을 수신하는 Pub/Sub 주제용)
notification create -s 버킷 storage.buckets.update
notification delete 버킷 storage.buckets.update
notification list 버킷 storage.buckets.get
notification watchbucket 버킷 storage.buckets.update
notification stopchannel 버킷 storage.buckets.update
perfdiag 버킷 storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb 버킷 storage.buckets.delete
requesterpays get 버킷 storage.buckets.get
requesterpays set on 버킷 storage.buckets.get
storage.buckets.update
requesterpays set off 버킷 storage.buckets.get
storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock 또는 set 버킷 storage.buckets.update
retention event 또는 temp 객체 storage.objects.get
storage.objects.list
storage.objects.update
retention get 버킷 storage.buckets.get
rewrite -k 객체 storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s 객체 storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm 버킷 storage.buckets.delete
storage.objects.delete
storage.objects.list
rm 객체 storage.objects.delete
rsync 객체 storage.objects.get(소스 객체 및 대상 버킷용)
storage.objects.create(대상 버킷용)
storage.objects.delete1(대상 버킷용)
storage.objects.list(소스 및 대상 버킷용)
storage.objects.getIamPolicy3,10(소스 객체용)
storage.objects.setIamPolicy3,10(대상 버킷용)
rsync -d 객체 storage.objects.get(소스 객체 및 대상 버킷용)
storage.objects.create(대상 버킷용)
storage.objects.delete(대상 버킷용)
storage.objects.list(소스 및 대상 버킷용)
storage.objects.getIamPolicy3,10(소스 객체용)
storage.objects.setIamPolicy3,10(대상 버킷용)
rsync -n 객체 storage.objects.list(소스 및 대상 버킷용)
setmeta 객체 storage.objects.get
storage.objects.list
storage.objects.update
signurl 없음. 그러나 요청과 관련된 서비스 계정에 storage.objects.get이 있어야 함.
stat 객체 storage.objects.get
test 없음
update 없음
version 없음
versioning get 버킷 storage.buckets.get
versioning set 버킷 storage.buckets.update
web get 버킷 storage.buckets.get
web set 버킷 storage.buckets.update

1이 권한은 삽입된 객체가 이미 버킷에 있는 객체와 이름이 같은 경우에만 필요합니다.

2 이 권한은 명령어의 대상에 객체 경로가 포함된 경우에만 필요합니다.

3이 권한은 명령어에서 -a 또는 -p 플래그를 사용하는 경우에만 필요합니다.

4이 권한은 프로젝트에 연결된 기존 Cloud Storage 서비스 계정이 없는 경우에만 필요합니다.

5이 권한은 명령어에서 -L 또는 -l 플래그를 사용하는 경우에만 필요합니다.

6이 권한은 세부정보에 Cloud IAM 정책을 포함하려는 경우에만 필요합니다.

7gsutil kms encryption -k를 사용하며 프로젝트의 서비스 계정에 요청된 Cloud KMS 키에 대한 액세스 권한이 없는 경우, gsutil은 gsutil kms authorize를 실행하여 서비스 계정에 필요한 권한을 부여합니다.

8주제가 이미 있으며 관련 서비스 계정에서 해당 주제에 액세스할 수 있는 경우 이 권한은 필요하지 않습니다.

9이 권한은 요청에 결제 프로젝트를 포함하지 않는 경우에만 필요합니다. 자세한 내용은 요청자 지불 사용 및 액세스 요구사항을 참조하세요.

10이 권한은 버킷 정책 전용 기능이 사용 설정된 버킷에는 적용되지 않습니다.

-u 최상위 플래그

-u 최상위 플래그를 사용하여 요청에 청구되는 프로젝트를 지정하는 경우 지정하는 프로젝트에 대한 serviceusage.services.use 권한이 있어야 합니다. 예를 들어 -u 플래그는 요청자 지불을 사용 설정한 버킷에 액세스할 때 사용됩니다.

와일드 카드 및 재귀 플래그

명령어에서 URI 와일드 카드를 사용하여 여러 객체를 선택하는 경우 객체가 포함된 버킷에 대한 storage.objects.list 권한이 있어야 합니다. 마찬가지로 명령어에서 URI 와일드 카드를 사용하여 여러 버킷을 선택하는 경우, 버킷이 포함된 프로젝트에 대한 storage.buckets.list 권한이 있어야 합니다.

재귀 플래그(-r, -R)를 사용하는 경우, 사용 중인 특정 명령어에 필요한 권한 외에도 관련 버킷에 대한 storage.objects.list 권한이 있어야 합니다.

-m 최상위 플래그

일반적으로 여러 객체 또는 버킷에서 작동하는 gsutil 명령어를 사용하면 첫 번째 오류 발생 시 명령어가 실패합니다. 그러나 -m 최상위 플래그를 사용하면 gsutil이 발생한 모든 오류를 기록하고 작업을 계속합니다.

예를 들어, 일련의 객체에 acl set 명령어를 수행하려고 하지만 일부 객체에만 이를 수행할 수 있는 권한이 있다고 가정해 보겠습니다. -m 플래그를 사용하지 않으면 gsutil은 ACL을 적용할 수 있는 권한이 없는 객체에 도달할 때까지 ACL을 성공적으로 적용합니다. 그 시점에서 gsutil이 실패합니다. -m 플래그를 사용하면 gsutil이 권한이 없는 객체에 ACL 적용을 시도할 때 발생하는 오류를 기록하지만, 그 외에는 작업을 계속 진행합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.