다음 표에는 특정 리소스에 각 Cloud Storage JSON 메서드를 실행하는 데 필요한 Identity and Access Management(IAM) 권한이 있습니다. IAM 권한은 역할을 만들 수 있도록 함께 제공됩니다. 사용자 및 그룹에 역할을 부여합니다.
균일한 버킷 수준 액세스가 사용 중지된 버킷에만 적용되는 추가 메서드는 ACL 메서드 표를 참조하세요.
| 리소스 | 메서드 | 필수 IAM 권한1 | 
|---|---|---|
AnywhereCache | 
      create | 
      storage.anywhereCaches.create | 
    
AnywhereCache | 
      disable | 
      storage.anywhereCaches.disable | 
    
AnywhereCache | 
      get | 
      storage.anywhereCaches.get | 
    
AnywhereCache | 
      list | 
      storage.anywhereCaches.list | 
    
AnywhereCache | 
      pause | 
      storage.anywhereCaches.pause | 
    
AnywhereCache | 
      resume | 
      storage.anywhereCaches.resume | 
    
AnywhereCache | 
      update | 
      storage.anywhereCaches.update | 
    
Buckets | 
      delete | 
      storage.buckets.delete | 
    
Buckets | 
      get | 
      storage.buckets.getstorage.buckets.getIamPolicy2storage.buckets.getIpFilter13storage.anywhereCaches.get18 | 
    
Buckets | 
      getIamPolicy | 
      storage.buckets.getIamPolicy | 
    
Buckets | 
      insert | 
      storage.buckets.createstorage.buckets.enableObjectRetention3storage.buckets.setIpFilter14 | 
    
Buckets | 
      list | 
      storage.buckets.liststorage.buckets.getIamPolicy2storage.buckets.getIpFilter13storage.anywhereCaches.list | 
    
Buckets | 
      listChannels | 
      storage.buckets.get | 
    
Buckets | 
      lockRetentionPolicy | 
      storage.buckets.update | 
    
Buckets | 
      patch | 
      storage.buckets.updatestorage.buckets.getIamPolicy4storage.buckets.setIamPolicy5storage.buckets.setIpFilter14storage.buckets.getIpFilter13 | 
    
Buckets | 
      relocate | 
      storage.buckets.relocate | 
    
Buckets | 
      setIamPolicy | 
      storage.buckets.setIamPolicy | 
    
Buckets | 
      testIamPermissions | 
      없음 | 
Buckets | 
      update | 
      storage.buckets.updatestorage.buckets.getIamPolicy4storage.buckets.setIamPolicy5storage.buckets.setIpFilter14storage.buckets.getIpFilter13storage.anywhereCaches.update | 
    
DatasetConfigs | 
      delete | 
      storageinsights.datasetConfigs.delete | 
    
DatasetConfigs | 
      get | 
      storageinsights.datasetConfigs.get | 
    
DatasetConfigs | 
      insert | 
      storageinsights.datasetConfigs.create | 
    
DatasetConfigs | 
      list | 
      storageinsights.datasetConfigs.list | 
    
DatasetConfigs | 
      linkDataset | 
      storageinsights.datasetConfigs.linkDataset | 
    
DatasetConfigs | 
      unlinkDataset | 
      storageinsights.datasetConfigs.unlinkDataset | 
    
DatasetConfigs | 
      patch | 
      storageinsights.datasetConfigs.update | 
    
Channels | 
      stop | 
      없음 | 
Folders | 
      get | 
      storage.folders.get | 
    
Folders | 
      insert | 
      storage.folders.create | 
    
Folders | 
      list | 
      storage.folders.list | 
    
Folders | 
      rename | 
      storage.folders.renamestorage.folders.create | 
    
Folders | 
      delete | 
      storage.folders.delete | 
    
IntelligenceConfig | 
      getIntelligenceConfig | 
      storage.intelligenceConfigs.get | 
    
IntelligenceConfig | 
      updateIntelligenceConfig | 
      storage.intelligenceConfigs.update | 
    
Jobs | 
      create | 
      storagebatchoperations.jobs.create | 
    
Jobs | 
      get | 
      storagebatchoperations.jobs.getstoragebatchoperations.operations.get | 
    
Jobs | 
      list | 
      storagebatchoperations.jobs.liststoragebatchoperations.operations.list | 
    
Jobs | 
      cancel | 
      storagebatchoperations.jobs.cancelstoragebatchoperations.operations.cancel | 
    
Jobs | 
      delete | 
      storagebatchoperations.jobs.delete | 
    
ManagedFolders | 
      delete | 
      storage.managedfolders.deletestorage.managedfolders.setIamPolicy10 | 
    
ManagedFolders | 
      get | 
      storage.managedfolders.get | 
    
ManagedFolders | 
      getIamPolicy | 
      storage.managedfolders.getIamPolicy | 
    
ManagedFolders | 
      insert | 
      storage.managedfolders.create | 
    
ManagedFolders | 
      list | 
      storage.managedfolders.list | 
    
ManagedFolders | 
      update | 
      storage.managedfolders.update | 
    
ManagedFolders | 
      setIamPolicy | 
      storage.managedfolders.setIamPolicy | 
    
Notifications | 
      delete | 
      storage.buckets.update | 
    
Notifications | 
      get | 
      storage.buckets.get | 
    
Notifications | 
      insert | 
      storage.buckets.update | 
    
Notifications | 
      list | 
      storage.buckets.get | 
    
Objects | 
      bulkRestore | 
      storage.buckets.restorestorage.objects.createstorage.objects.delete11storage.objects.restorestorage.objects.setIamPolicy6,12 | 
    
Objects | 
      compose | 
      storage.objects.getstorage.objects.createstorage.objects.delete7storage.objects.getIamPolicy2,6storage.objects.setRetention8storage.objects.createContext19 | 
    
Objects | 
      copy | 
      storage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.setRetentionstorage.objects.createContext19 | 
    
Objects | 
      delete | 
      storage.objects.delete | 
    
Objects | 
      get | 
      storage.objects.getstorage.objects.getIamPolicy2,6 | 
    
Objects | 
      insert | 
      storage.objects.createstorage.objects.delete7storage.objects.setRetention8storage.objects.createContext19 | 
    
Objects | 
      list | 
      storage.objects.liststorage.objects.getIamPolicy2,6 | 
    
Objects | 
      move | 
      storage.objects.move15storage.objects.delete15storage.objects.get15storage.objects.createstorage.objects.delete16storage.folders.create17 | 
      
Objects | 
      patch | 
      storage.objects.updatestorage.objects.setRetention8storage.objects.overrideUnlockedRetention9storage.objects.getIamPolicy4,6storage.objects.setIamPolicy5,6storage.objects.createContext20storage.objects.updateContext21storage.objects.deleteContext22 | 
    
Objects | 
      restore | 
      storage.objects.createstorage.objects.delete7storage.objects.restorestorage.objects.getIamPolicy2,6storage.objects.setIamPolicy6,12 | 
    
Objects | 
      rewrite | 
      storage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.setRetentionstorage.objects.createContext19 | 
    
Objects | 
      update | 
      storage.objects.updatestorage.objects.setRetention8storage.objects.overrideUnlockedRetention9storage.objects.getIamPolicy4,6storage.objects.setIamPolicy5,6storage.objects.createContext20storage.objects.updateContext21storage.objects.deleteContext22 | 
    
Objects | 
      watchAll | 
      storage.buckets.update | 
    
Projects.hmacKeys | 
      create | 
      storage.hmacKeys.create | 
    
Projects.hmacKeys | 
      delete | 
      storage.hmacKeys.delete | 
    
Projects.hmacKeys | 
      get | 
      storage.hmacKeys.get | 
    
Projects.hmacKeys | 
      list | 
      storage.hmacKeys.list | 
    
Projects.hmacKeys | 
      update | 
      storage.hmacKeys.update | 
    
Projects.serviceAccount | 
      get | 
      resourceManager.projects.get | 
    
ReportConfigs | 
      delete | 
      storageinsights.reportConfigs.delete | 
    
ReportConfigs | 
      get | 
      storageinsights.reportConfigs.get | 
    
ReportConfigs | 
      list | 
      storageinsights.reportConfigs.list | 
    
ReportConfigs | 
      insert | 
      storageinsights.reportConfigs.create | 
    
ReportConfigs | 
      update | 
      storageinsights.reportConfigs.update | 
    
ReportDetails | 
      get | 
      storageinsights.reportDetails.get | 
    
ReportDetails | 
      list | 
      storageinsights.reportDetails.list | 
    
1 요청에서 userProject 매개변수 또는 x-goog-user-project 헤더를 사용하는 경우 요청하는 데 필요한 일반 IAM 권한 이외에도 지정되는 프로젝트 ID의 serviceusage.services.use 권한이 있어야 합니다.
2 full 프로젝션의 일부로 ACL 또는 IAM 정책을 포함시키려는 경우에만 이 권한이 필요합니다. 이 권한이 없는 상태에서 full 프로젝션을 요청하면 프로젝션 일부만 받게 됩니다.
3 요청에 enableObjectRetention 쿼리 매개변수가 포함된 경우에만 이 권한이 필요합니다.
4 응답의 일부로 ACL을 포함하려는 경우에만 이 권한이 필요합니다.
5 요청의 일부로 ACL 또는 공개 액세스 방지 설정의 변경사항을 포함하려면 이 권한이 필요합니다.
6 이 권한은 균일한 버킷 수준 액세스가 사용 설정된 버킷에 적용되지 않습니다.
7 이 권한은 요청으로 인해 이름이 같은 객체를 덮어쓰는 경우에만 필요합니다.
8 요청 본문에 retention 속성이 포함되어 있거나 기존 보관 구성이 있는 객체에 대한 UPDATE 요청을 수행할 때 이 권한이 필요합니다.
9 요청에 쿼리 매개변수 overrideUnlockedRetention=true가 포함된 경우에만 이 권한이 필요합니다.
10 요청에 쿼리 매개변수 allowNonEmpty=true가 포함된 경우에만 이 권한이 필요합니다.
11 요청에 쿼리 매개변수 allowOverwrite=true가 포함되어 있고 요청으로 인해 이름이 같은 객체를 덮어쓰는 경우에만 이 권한이 필요합니다.
12 요청에 쿼리 매개변수 copySourceAcl=true가 포함된 경우에만 이 권한이 필요합니다.
13 이 권한은 Buckets: get 요청의 일부로 버킷 IP 필터링 규칙을 포함하려는 경우에만 필요합니다. 이 권한이 없는 상태에서 프로젝션을 요청하면 프로젝션 일부만 받게 됩니다.
14 버킷 IP 필터링 규칙을 생성, 나열, 삭제, 업데이트하려는 경우에만 이 권한이 필요합니다.
15 계층적 네임스페이스가 사용 설정된 버킷 내에서 객체를 이동하려면 storage.objects.delete 및 storage.objects.get 권한이 필요하거나, 객체에 대한 읽기 또는 삭제 액세스 권한 없이 이동하려는 경우 storage.objects.move 권한이 필요합니다.
16 객체를 교체하려는 경우에만 이 권한이 필요합니다.
17 누락된 상위 폴더를 자동으로 만들려는 경우에만 이 권한이 필요합니다.
18 Anywhere Cache로 만든 캐시를 반환하려는 경우에만 이 권한이 필요합니다.
19 이 권한은 요청에 객체를 구성하는 비어 있지 않은 destination.contexts.custom 속성이나 객체를 복사, 삽입 또는 재작성하는 비어 있지 않은 contexts.custom 속성이 포함된 경우에만 필요합니다.
20 객체에 컨텍스트를 추가하려는 경우에만 이 권한이 필요합니다.
21 객체의 컨텍스트를 업데이트하려는 경우에만 이 권한이 필요합니다.
22 객체의 컨텍스트를 삭제하려는 경우에만 이 권한이 필요합니다.
ACL 관련 메서드
다음 표에는 특히 ACL 관리에 적용되는 JSON 메서드를 실행하기 위해 필요한 IAM 권한이 나와 있습니다. 이 메서드는 균일한 버킷 수준 액세스가 사용 중지된 버킷에만 적용됩니다.
| 리소스 | 메서드 | 필수 IAM 권한1 | 
|---|---|---|
BucketAccessControls | 
      delete | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
BucketAccessControls | 
      get | 
      storage.buckets.getstorage.buckets.getIamPolicy | 
    
BucketAccessControls | 
      insert | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
BucketAccessControls | 
      list | 
      storage.buckets.getstorage.buckets.getIamPolicy | 
    
BucketAccessControls | 
      patch | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
BucketAccessControls | 
      update | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
DefaultObjectAccessControls | 
      delete | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
DefaultObjectAccessControls | 
      get | 
      storage.buckets.getstorage.buckets.getIamPolicy | 
    
DefaultObjectAccessControls | 
      insert | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
DefaultObjectAccessControls | 
      list | 
      storage.buckets.getstorage.buckets.getIamPolicy | 
    
DefaultObjectAccessControls | 
      patch | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
DefaultObjectAccessControls | 
      update | 
      storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update | 
    
ObjectAccessControls | 
      delete | 
      storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update | 
    
ObjectAccessControls | 
      get | 
      storage.objects.getstorage.objects.getIamPolicy | 
    
ObjectAccessControls | 
      insert | 
      storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update | 
    
ObjectAccessControls | 
      list | 
      storage.objects.getstorage.objects.getIamPolicy | 
    
ObjectAccessControls | 
      patch | 
      storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update | 
    
ObjectAccessControls | 
      update | 
      storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update | 
    
1 요청에서 userProject 매개변수 또는 x-goog-user-project 헤더를 사용하는 경우 요청하는 데 필요한 일반 IAM 권한 이외에도 지정되는 프로젝트 ID의 serviceusage.services.use 권한이 있어야 합니다.
다음 단계
역할과 역할에 포함된 권한의 목록은 Cloud Storage에 대한 IAM 역할을 참조하세요.
프로젝트 및 버킷 수준에서 IAM 역할을 할당합니다.