다음 표에는 gcloud storage
명령어를 실행하는 데 필요한 Identity and Access Management(IAM) 권한이 나와 있습니다. IAM 권한은 역할을 만들 수 있도록 함께 제공됩니다. 주 구성원에게 역할을 부여합니다.
와일드 카드, --recursive
플래그, --billing-project
플래그를 사용하는 방법에 대한 참고 사항은 표 아래 섹션을 참조하세요.
명령어 | 플래그 | 필수 IAM 권한 | |
---|---|---|---|
buckets add-iam-policy-binding |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
||
buckets create |
storage.buckets.create |
||
buckets delete |
storage.buckets.delete |
||
buckets describe |
storage.buckets.get storage.buckets.getIamPolicy 1 |
||
buckets get-iam-policy |
storage.buckets.get storage.buckets.getIamPolicy |
||
buckets list |
storage.buckets.list storage.buckets.getIamPolicy 1 |
||
buckets notifications create |
storage.buckets.get storage.buckets.update pubsub.topics.get (Pub/Sub 주제가 포함된 프로젝트용)pubsub.topics.create 3(Pub/Sub 주제가 포함된 프로젝트용)pubsub.topics.getIamPolicy (Pub/Sub 주제 수신 알림용)pubsub.topics.setIamPolicy 3(Pub/Sub 주제 수신 알림용) |
||
buckets notifications create |
--skip-topic-setup |
storage.buckets.get storage.buckets.update |
|
buckets notifications delete |
storage.buckets.get storage.buckets.update |
||
buckets notifications describe |
storage.buckets.get |
||
buckets notifications list |
storage.buckets.get |
||
buckets remove-iam-policy-binding |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
||
buckets set-iam-policy |
storage.buckets.setIamPolicy storage.buckets.update |
||
buckets update |
storage.buckets.update |
||
buckets update |
--no-requester-pays |
storage.buckets.update resourcemanager.projects.createBillingAssignment 2 |
|
buckets update |
--recovery-point-objective --rpo --[no-]uniform-bucket-level-access |
--[no-]uniform-bucket-level-access |
storage.buckets.get storage.buckets.update |
buckets update |
--clear-pap --clear-public-access-prevention --[no-]pap --[no-]public-access-prevention |
storage.buckets.get storage.buckets.update storage.buckets.setIamPolicy |
|
cat |
storage.objects.get storage.objects.list 13 |
||
cp |
storage.objects.get storage.buckets.get 12storage.objects.list 4(대상 버킷용)
storage.objects.create storage.objects.delete 5storageinsights.reportDetails.get 15 |
||
du |
storage.objects.list |
||
folders create |
storage.folders.create |
||
folders delete |
storage.folders.delete |
||
folders describe |
storage.folders.get |
||
folders list |
storage.folders.list |
||
hash |
storage.objects.get |
||
hmac create |
storage.hmacKeys.create |
||
hmac delete |
storage.hmacKeys.delete |
||
hmac describe |
storage.hmacKeys.get |
||
hmac list |
storage.hmacKeys.list |
||
hmac update |
storage.hmacKeys.update |
||
insights inventory-reports create |
storageinsights.reportConfigs.create |
||
insights inventory-reports delete |
storageinsights.reportConfigs.delete |
||
insights inventory-reports details list |
storageinsights.reportDetails.list |
||
insights inventory-reports details describe |
storageinsights.reportDetails.get |
||
insights inventory-reports list |
storageinsights.reportConfigs.list |
||
insights inventory-reports update |
storageinsights.reportConfigs.get storageinsights.reportConfigs.update |
||
ls (버킷 목록용) |
storage.buckets.list storage.buckets.getIamPolicy 6 |
||
ls (객체 나열용) |
storage.objects.get 7storage.objects.list storage.objects.getIamPolicy 8 |
||
ls |
--buckets |
storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mv |
storage.objects.list 4(대상 버킷용)storage.objects.get (소스 객체용)storage.objects.create (대상 버킷용)storage.objects.delete (소스 버킷용)storage.objects.delete 5(대상 버킷용) |
||
objects compose |
storage.objects.get storage.objects.create storage.objects.delete 9 |
||
objects describe |
storage.objects.get storage.objects.getIamPolicy 8 |
||
objects list |
storage.objects.list storage.objects.getIamPolicy 8 |
||
objects update |
storage.objects.get storage.objects.list storage.objects.update |
||
objects update |
--storage-class --encryption-key --clear-encryption-key |
storage.objects.get storage.objects.list storage.objects.create storage.objects.delete |
|
objects update |
--retention-mode --retain-until --clear-retention |
storage.objects.get storage.objects.list storage.objects.update storage.objects.setRetention storage.objects.overrideUnlockedRetention 11 |
|
restore |
storage.objects.create storage.objects.delete 9storage.objects.restore |
||
restore |
--async |
storage.objects.create storage.objects.delete 14storage.objects.restore storage.buckets.restore |
|
rm |
storage.buckets.delete storage.objects.delete storage.objects.list |
||
rsync |
storage.objects.get storage.objects.create storage.objects.delete 10storage.objects.list |
||
rsync |
--dry-run |
storage.objects.list (소스 및 대상 버킷용) |
|
service-agent |
resourceManager.projects.get |
||
sign-url |
없음. 하지만 키가 이 명령어의 일부로 사용되는 서비스 계정에는 서명된 URL로 인코딩되는 요청을 수행할 수 있는 권한이 있어야 합니다. |
1이 권한은 IAM 정책을 세부정보에 포함하려는 경우에만 필요합니다.
2이 권한은 요청에 결제 프로젝트를 포함하지 않는 경우에만 필요합니다. 자세한 내용은 요청자 지불 사용 및 액세스 요구사항을 참조하세요.
3주제가 이미 있으며 관련 서비스 계정에서 해당 주제에 액세스할 수 있으면 이 권한은 필요하지 않습니다.
4이 권한은 명령어의 대상에 객체 경로가 포함된 경우에만 필요합니다.
5이 권한은 동시 복합 업로드를 사용하거나 --no-clobber
플래그를 사용하지 않고 버킷에 이미 있는 객체와 이름이 같은 객체를 삽입하는 경우에만 필요합니다.
6IAM 정책을 세부정보에 포함하려는 경우에만 이 권한이 필요합니다.
7이 권한은 --fetch-encrypted-object-hashes
플래그를 사용하는 경우에만 필요합니다.
8이 권한은 세부정보에 IAM 정책을 포함하려는 경우에만 필요하며 균일한 버킷 수준 액세스가 사용 설정된 버킷에는 적용되지 않습니다.
9이 권한은 이미 버킷에 있는 객체와 이름이 같은 객체를 만드는 경우에만 필요합니다.
10이 권한은 --delete-unmatched-destination-objects
플래그를 사용하거나 버킷에 이미 있는 객체와 이름은 같지만 데이터가 다른 객체를 삽입하는 경우에만 필요합니다.
11이 권한은 요청에 --override-unlocked-retention
플래그를 사용해야 하는 경우에만 필요합니다.
12gcloud CLI 속성 storage/parallel_composite_upload_compatibility_check
가 True
로 설정된 경우 동시 복합 업로드를 수행하려면 이 권한이 필요합니다.
13이 권한은 정규 표현식을 사용하여 객체를 검색하려는 경우에만 필요합니다.
14이 권한은 요청에 --allow-overwrite
플래그가 포함되어 있고 작업이 버킷에 이미 있는 객체와 이름이 같은 객체를 만드는 경우에만 필요합니다.
15이 권한은 인벤토리 보고서를 다운로드하는 경우에만 필요합니다.
--billing-project
최상위 플래그
요청에 비용이 청구되는 프로젝트를 지정하기 위해 --billing-project
전역 플래그를 사용하는 경우에는 지정하는 프로젝트에 대한 serviceusage.services.use
권한이 있어야 합니다. 예를 들어 --billing-project
플래그는 요청자 지불을 사용 설정한 버킷에 액세스할 때 사용됩니다.
와일드 카드 및 재귀 플래그
명령어에서 URI 와일드 카드를 사용하여 여러 객체를 선택하려면 해당 객체가 포함된 버킷에 대한 storage.objects.list
권한이 있어야 합니다. 마찬가지로 명령어에서 URI 와일드 카드를 사용하여 여러 버킷을 선택하려면 해당 버킷이 포함된 프로젝트에 대한 storage.buckets.list
권한이 있어야 합니다.
--recursive
플래그를 사용하는 경우 사용 중인 특정 명령어에 필요한 권한 외에도 관련 버킷에 대한 storage.objects.list
권한이 있어야 합니다.
다음 단계
- 프로젝트 및 버킷 수준에서 IAM 역할을 부여합니다.
- Cloud Storage 권한이 포함된 IAM 역할을 검토합니다.