다음 표에는 특정 리소스에 각 Cloud Storage gsutil 명령어를 실행하는 데 필요한 Identity and Access Management(IAM) 권한이 있습니다. IAM 권한은 역할을 만들 수 있도록 함께 제공됩니다. 사용자 및 그룹에 역할을 부여합니다.
이 페이지에서 다음에 대한 정보도 찾을 수 있습니다.
균일한 버킷 수준 액세스가 중지된 버킷에만 적용되는 추가 명령어 사용
-u
플래그를 사용하여 결제용 프로젝트 지정-m
플래그를 사용하여 작업을 동시에 실행
명령어 | 하위 명령어 | 역할을 부여할 수 있는 리소스 | 필수 IAM 권한 |
---|---|---|---|
autoclass |
get |
버킷 | storage.buckets.get |
autoclass |
set |
버킷 | storage.buckets.update |
cat |
객체 | storage.objects.get |
|
compose |
객체 | storage.objects.get storage.objects.create storage.objects.delete 1 |
|
config |
없음 | ||
cors |
get |
버킷 | storage.buckets.get |
cors |
set |
버킷 | storage.buckets.update |
cp |
객체 | storage.objects.list 2storage.objects.get storage.objects.create storage.objects.delete 3 |
|
defstorageclass |
get |
버킷 | storage.buckets.get |
defstorageclass |
set |
버킷 | storage.buckets.update |
du |
객체 | storage.objects.get |
|
hash |
객체 | storage.objects.get |
|
help |
없음 | ||
hmacKeys |
create |
HMAC 키 | storage.hmacKeys.create |
hmacKeys |
delete |
HMAC 키 | storage.hmacKeys.delete |
hmacKeys |
get |
HMAC 키 | storage.hmacKeys.get |
hmacKeys |
list |
HMAC 키 | storage.hmacKeys.list |
hmacKeys |
update |
HMAC 키 | storage.hmacKeys.update |
iam |
get |
버킷 | storage.buckets.get storage.buckets.getIamPolicy |
iam |
set 또는 ch |
버킷 | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
kms |
authorize |
프로젝트 | resourceManager.projects.get iam.serviceAccounts.create 4cloudkms.cryptoKeys.setIamPolicy |
kms |
encryption |
버킷 | storage.buckets.get |
kms |
encryption -d |
버킷 | storage.buckets.get storage.buckets.update |
kms |
encryption -k |
버킷, 프로젝트5 | storage.buckets.get storage.buckets.update resourceManager.projects.get 5cloudkms.cryptoKeys.setIamPolicy 5 |
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.getIamPolicy 6 |
|
ls |
버킷, 객체 | storage.objects.list storage.objects.getIamPolicy 7 |
|
ls -b |
버킷 | storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mb |
버킷 | storage.buckets.create |
|
mv |
객체 | storage.objects.list 2(대상 버킷용)storage.objects.get (소스 객체용)storage.objects.create (대상 버킷용)storage.objects.delete (소스 버킷용)storage.objects.delete 3(대상 버킷용) |
|
notification |
create |
버킷 | storage.buckets.update pubsub.topics.get (Pub/Sub 주제를 포함하는 버킷용)pubsub.topics.create 8(Pub/Sub 주제를 포함하는 프로젝트용)pubsub.topics.getIamPolicy (알림을 수신하는 Pub/Sub 주제용)pubsub.topics.setIamPolicy 8(알림을 수신하는 Pub/Sub 주제용) |
notification |
create -s |
버킷 | storage.buckets.update |
notification |
delete |
버킷 | storage.buckets.get storage.buckets.update |
notification |
list |
버킷 | storage.buckets.get |
notification |
watchbucket |
버킷 | storage.buckets.update |
notification |
stopchannel |
버킷 | storage.buckets.update |
pap |
get |
버킷 | storage.buckets.get |
pap |
set |
버킷 | storage.buckets.get storage.buckets.update storage.buckets.setIamPolicy |
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.update |
requesterpays |
set off |
버킷 | storage.buckets.update resourcemanager.projects.createBillingAssignment 9 |
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 storage.objects.list |
|
rpo |
get |
버킷 | storage.buckets.get |
rpo |
set |
버킷 | storage.buckets.get storage.buckets.update |
rsync |
객체 | storage.objects.get storage.objects.create storage.objects.delete 11storage.objects.list |
|
rsync -n |
객체 | storage.objects.list (소스 및 대상 버킷용) |
|
setmeta |
객체 | storage.objects.get storage.objects.list storage.objects.update |
|
signurl |
없음. 하지만 키가 이 명령어의 일부로 사용되는 서비스 계정에는 서명된 URL로 인코딩되는 요청을 수행할 수 있는 권한이 있어야 합니다. | ||
stat |
객체 | storage.objects.get |
|
test |
없음 | ||
ubla |
set |
버킷 | storage.buckets.get storage.buckets.update |
ubla |
get |
버킷 | storage.buckets.get |
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이 권한은 동시 복합 업로드를 사용하거나 -n
플래그를 사용하지 않고 버킷에 이미 있는 객체와 이름이 같은 객체를 삽입하는 경우에만 필요합니다.
4이 권한은 프로젝트에 연결된 기존 Cloud Storage 서비스 계정이 없는 경우에만 필요합니다.
5gsutil kms encryption -k
를 사용하며 프로젝트의 서비스 계정에 요청된 Cloud KMS 키에 대한 액세스 권한이 없는 경우, gsutil은 gsutil kms authorize
를 실행하여 서비스 계정에 필요한 권한을 부여합니다.
6IAM 정책을 세부정보에 포함하려는 경우에만 이 권한이 필요합니다.
7이 권한은 세부정보에 IAM 정책을 포함하려는 경우에만 필요하며 균일한 버킷 수준 액세스가 사용 설정된 버킷에는 적용되지 않습니다.
8주제가 이미 있으며 관련 서비스 계정에서 해당 주제에 액세스할 수 있는 경우 이 권한은 필요하지 않습니다.
9이 권한은 요청에 결제 프로젝트를 포함하지 않는 경우에만 필요합니다. 자세한 내용은 요청자 지불 사용 및 액세스 요구사항을 참조하세요.
10명령어가 버킷 설정을 변경하지 않는 경우에는 이 권한이 필요하지 않습니다.
11 이 권한은 -d
플래그를 사용하거나 버킷에 이미 존재하는 객체와 이름은 같지만 데이터가 다른 객체를 삽입하는 경우에만 필요합니다.
ACL 관련 메서드
다음 표에는 특히 ACL 관리에 적용되는 gsutil 명령어를 실행하기 위해 필요한 IAM 권한이 나와 있습니다. 이 명령어는 균일한 버킷 수준 액세스가 사용 중지된 버킷에만 적용됩니다.
명령어 | 하위 명령어 | 대상 리소스 | 필수 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.getIamPolicy |
acl |
set 또는 ch |
객체 | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
cp -a 또는 cp -p |
객체 | storage.objects.list astorage.objects.get storage.objects.create storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
defacl |
get |
버킷 | storage.buckets.get storage.buckets.getIamPolicy |
defacl |
set 또는 ch |
버킷 | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
iam |
get |
객체 | storage.objects.get storage.objects.getIamPolicy |
iam |
set 또는 ch |
객체 | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
mv -a 또는 mv -p |
객체 | storage.objects.list astorage.objects.get storage.objects.create storage.objects.delete storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
rsync -a rsync -p |
객체 | storage.objects.get storage.objects.create storage.objects.delete cstorage.objects.list storage.objects.getIamPolicy storage.objects.setIamPolicy |
a이 권한은 명령어의 대상에 객체 경로가 포함된 경우에만 필요합니다.
b이 권한은 동시 복합 업로드를 사용하거나 -n
플래그를 사용하지 않고 버킷에 이미 있는 객체와 이름이 같은 객체를 삽입하는 경우에만 필요합니다.
c 이 권한은 -d
플래그를 사용하거나 버킷에 이미 존재하는 객체와 이름은 같지만 데이터가 다른 객체를 삽입하는 경우에만 필요합니다.
-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을 적용하려고 시도할 때 발생하는 오류를 기록하지만, 그 외에는 작업을 계속합니다.
다음 단계
- 프로젝트 및 버킷 수준에서 IAM 역할을 할당합니다.
- Cloud Storage 권한이 포함된 IAM 역할을 검토합니다.