gcloud 스토리지 명령어에 대한 IAM 권한

다음 표에는 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.getIamPolicy1
buckets get-iam-policy storage.buckets.get
storage.buckets.getIamPolicy
buckets list storage.buckets.list
storage.buckets.getIamPolicy1
buckets notifications create storage.buckets.get
storage.buckets.update
pubsub.topics.get(Pub/Sub 주제가 포함된 프로젝트용)
pubsub.topics.create3(Pub/Sub 주제가 포함된 프로젝트용)
pubsub.topics.getIamPolicy(Pub/Sub 주제 수신 알림용)
pubsub.topics.setIamPolicy3(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.createBillingAssignment2
buckets update --recovery-point-objective
--rpo
--[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.list13
cp storage.objects.get(소스 객체용)
storage.buckets.get12(대상 버킷용)
storage.objects.list4(대상 버킷용)
storage.objects.create(대상 버킷용)
storage.objects.delete5(대상 버킷용)
storageinsights.reportDetails.get15
du storage.objects.list
folders create storage.folders.create
folders delete storage.folders.delete
folders describe storage.folders.get
folders list storage.folders.list
folders rename storage.folders.rename(소스 버킷용)
storage.folders.create(대상 버킷용)
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.getIamPolicy6
ls(객체 나열용) storage.objects.get7
storage.objects.list
storage.objects.getIamPolicy8
ls --buckets storage.buckets.get
storage.buckets.getIamPolicy6
mv storage.objects.list4(대상 버킷용)
storage.objects.get(소스 객체용)
storage.objects.create(대상 버킷용)
storage.objects.delete(소스 버킷용)
storage.objects.delete5(대상 버킷용)
objects compose storage.objects.get
storage.objects.create
storage.objects.delete9
objects describe storage.objects.get
storage.objects.getIamPolicy8
objects list storage.objects.list
storage.objects.getIamPolicy8
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.overrideUnlockedRetention11
operations cancel storage.bucketOperations.cancel
operations describe storage.bucketOperations.get
operations list storage.bucketOperations.list
restore storage.objects.create
storage.objects.delete9
storage.objects.restore
restore --async storage.objects.create
storage.objects.delete14
storage.objects.restore
storage.buckets.restore
rm storage.buckets.delete
storage.objects.delete
storage.objects.list
rsync storage.objects.get(소스 객체 및 대상 버킷용)
storage.objects.create(대상 버킷용)
storage.objects.delete10(대상 버킷용)
storage.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_checkTrue로 설정된 경우 동시 복합 업로드를 수행하려면 이 권한이 필요합니다.

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 권한이 있어야 합니다.

다음 단계