Cloud Storage에 대한 IAM 역할

사전 정의된 역할

다음 표에서는 Cloud Storage와 관련된 Identity and Access Management(IAM) 역할을 설명하고 각 역할에 포함된 권한을 나열합니다. 달리 명시되지 않는 한 이러한 역할은 프로젝트, 버킷 또는 관리형 폴더에 적용될 수 있습니다.

버킷에 대한 액세스를 제어하는 방법은 IAM 권한 사용을 참고하세요. 관리형 폴더에 대한 액세스를 제어하는 방법은 관리형 폴더에 IAM 사용을 참고하세요.

역할 설명 권한
스토리지 객체 생성자 (roles/storage.objectCreator) 사용자가 객체, 폴더, 관리 폴더를 만들 수 있습니다. 객체를 보고, 삭제하고, 교체할 수 있는 권한은 부여하지 않습니다. 객체 액세스 제어 목록 (ACL)을 가져오거나 객체 업데이트 요청의 일부로 객체 ACL을 설정할 수 있는 권한은 부여하지 않습니다. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.objects.create
storage.folders.create
storage.managedFolders.create
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
스토리지 객체 뷰어 (roles/storage.objectViewer) 객체 및 ACL을 제외한 객체 메타데이터를 볼 수 있는 액세스 권한을 부여합니다.

버킷의 객체, 폴더, 관리형 폴더를 나열할 수도 있습니다.

resourcemanager.projects.get2
resourcemanager.projects.list2
storage.folders.get
storage.folders.list
storage.managedFolders.get
storage.managedFolders.list
storage.objects.get
storage.objects.list
스토리지 객체 사용자(roles/storage.objectUser) 메타데이터와 함께 객체, 폴더, 관리형 폴더를 생성, 보기, 나열, 업데이트, 삭제할 수 있는 액세스 권한을 부여합니다. ACL 또는 IAM 정책을 가져오거나 설정할 수 있는 권한을 부여하지 마세요. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.folders.*
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.list
storage.managedFolders.get
storage.multipartUploads.*
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.restore
storage.objects.update
스토리지 객체 관리자 (roles/storage.objectAdmin) 객체 및 폴더 나열, 만들기, 보기, 이름 바꾸기, 삭제, 객체 ACL 설정을 포함하여 객체 및 폴더에 대한 전체 제어 권한을 부여합니다. 또한 관리형 폴더를 생성, 삭제, 가져오기, 나열할 수 있는 액세스 권한을 부여합니다. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.folders.*
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.get
storage.managedFolders.list
storage.objects.*
storage.multipartUploads.*
스토리지 폴더 관리자(roles/storage.folderAdmin) IAM 권한 나열, 만들기, 보기, 삭제, 관리를 포함하여 객체, 폴더, 관리형 폴더에 대한 전체 제어 권한을 부여합니다. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.folders.*
storage.managedFolders.*
storage.multipartUploads.*
storage.objects.*
스토리지 HMAC 키 관리자 (roles/storage.hmacKeyAdmin) 프로젝트의 HMAC 키를 관리할 수 있는 전체 권한을 부여합니다. 이 역할은 프로젝트에만 적용할 수 있습니다. orgpolicy.policy.get1
storage.hmacKeys.*
스토리지 관리자(roles/storage.admin)

객체 ACL 또는 IAM 정책을 가져오기 및 설정을 포함하여 버킷, 폴더, 관리형 폴더, 추천 시스템 추천, 객체에 대한 전체 제어 권한을 부여합니다. 또한 장기 실행 작업을 완전히 제어할 수 있습니다.


개별 버킷에 적용하면 지정된 버킷과 버킷 내 관리형 폴더, 객체, 장기 실행 작업에만 제어 권한이 적용됩니다.

firebase.projects.get
orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.buckets.*
storage.bucketOperations.*
storage.folders.*
storage.managedFolders.*
storage.objects.*
storage.multipartUploads.*
recommender.storageBucketSoftDeleteInsights.*
recommender.storageBucketSoftDeleteRecommendations.*
Storage Insights 관리자(roles/storageinsights.admin) Storage Insights 인벤토리 보고서 및 구성에 대한 전체 권한을 부여합니다. cloudresourcemanager.projects.get
cloudresourcemanager.projects.list
storageinsights.reportConfigs.*
storageinsights.reportDetails.*
Storage Insights 뷰어(roles/storageinsights.viewer) Storage Insights 인벤토리 보고서 및 구성에 대한 읽기 전용 액세스 권한을 부여합니다. cloudresourcemanager.projects.get
cloudresourcemanager.projects.list
storageinsights.reportConfigs.list
storageinsights.reportConfigs.get
storageinsights.reportDetails.list
storageinsights.reportDetails.get
Storage Insights 수집기 서비스(roles/storage.insightsCollectorService) 인벤토리 보고서의 객체 메타데이터에 대해 읽기 액세스 권한을 부여합니다. resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.getObjectInsights
storage.buckets.get

1 orgpolicy.policy.get 권한이 있으면 주 구성원이 프로젝트에 적용된 조직 정책 제약조건을 확인할 수 있습니다. 현재 이 권한은 역할이 프로젝트 수준에서 부여된 경우에만 유효합니다.

2 resourcemanager.projects.* 권한에 대한 자세한 내용은 IAM으로 프로젝트의 액세스 제어를 참조하세요.

기본 역할

기본 역할은 IAM 이전에 있었던 역할입니다. 이러한 역할에는 고유한 특성이 있습니다.

  • 기본 역할은 프로젝트 내의 개별 버킷이 아닌 전체 프로젝트에만 부여될 수 있습니다. 프로젝트에 부여하는 다른 역할과 마찬가지로 기본 역할은 프로젝트의 모든 버킷과 객체에 적용됩니다.

  • 기본 역할에는 이 섹션에서 다루지 않는 다른 Google Cloud 서비스에 대한 추가 권한이 포함됩니다. 기본 역할이 부여하는 권한에 대한 일반적인 설명은 기본 역할을 참조하세요.

  • 각 기본 역할에는 기본 역할을 그룹처럼 사용할 수 있는 단축값이 있습니다. 이 방법을 사용하면 기본 역할이 있는 주 구성원은 그룹의 일부로 간주됩니다. 그룹의 모든 사용자는 단축값에 있는 액세스 권한에 따라 리소스에 대한 추가 액세스 권한을 얻습니다.

    • 단축값은 버킷의 역할을 부여할 때 사용할 수 있습니다.

    • 객체에 ACL을 설정할 때 단축값을 사용할 수 있습니다.

  • 기본 역할은 본질적으로 이름이 의미하는 Cloud Storage 리소스에 대한 액세스 권한을 모두 부여하지 않습니다. 그 대신 본질적으로 예상 액세스의 일부 권한과 단축값 사용을 통해 예상 액세스의 나머지 권한을 제공합니다. 단축값은 다른 IAM 주 구성원과 마찬가지로 수동으로 추가 또는 삭제할 수 있으므로 주 구성원이 얻게 될 액세스 권한이 취소될 수 있습니다.

    기본 역할의 주 구성원이 단축값으로 인해 일반적으로 얻게 되는 추가 액세스 권한에 대한 설명은 수정 가능한 동작을 참조하세요.

내장 권한

다음 표에서는 각 기본 역할과 항상 연결되는 Cloud Storage 권한을 설명합니다.

역할 설명 Cloud Storage 권한
뷰어 (roles/viewer) 프로젝트의 버킷을 나열하고, 나열 시 ACL을 제외한 버킷 메타데이터를 보고, 프로젝트의 HMAC 키를 나열하고 가져올 수 있는 권한을 부여합니다. storage.buckets.getIpFilter
storage.buckets.list
storage.hmacKeys.get
storage.hmacKeys.list
편집자(roles/editor) 프로젝트의 버킷을 생성, 나열, 삭제하고, 나열 시 ACL을 제외한 버킷 메타데이터를 보고, 프로젝트의 HMAC 키를 제어할 수 있는 권한을 부여합니다. storage.buckets.create
storage.buckets.delete
storage.buckets.getIpFilter
storage.buckets.list
storage.hmacKeys.*
소유자(roles/owner)

프로젝트의 버킷을 생성, 나열, 삭제하고, 나열 시 ACL을 제외한 버킷 메타데이터를 보고, 태그 바인딩을 나열하고 프로젝트의 HMAC 키를 제어할 수 있는 권한을 부여합니다.

일반적으로 Google Cloud 내에서 이 역할이 있는 주 구성원은 프로젝트의 주 구성원 역할 변경, 청구 변경과 같은 관리 작업을 수행할 수 있습니다.

storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.buckets.createTagBinding
storage.buckets.deleteTagBinding
storage.buckets.getIpFilter
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.buckets.setIpFilter
storage.hmacKeys.*

수정 가능한 동작

기본 역할이 부여된 주 구성원은 단축값으로 인해 프로젝트의 버킷 및 객체에 대한 추가 액세스 권한을 갖는 경우가 많습니다. 버킷이 생성되면 단축값에 특정 버킷 수준 액세스 권한이 부여되지만 나중에 버킷 IAM 정책 및 객체 ACL을 수정하여 액세스 권한을 삭제하거나 변경할 수 있습니다.

균일한 버킷 수준 액세스가 사용 설정된 버킷을 만들면 단축값을 통해 다음 액세스 권한이 부여됩니다.

  • roles/viewer가 부여된 주 구성원은 버킷에 대한 roles/storage.legacyBucketReaderroles/storage.legacyObjectReader 역할을 부여받습니다.

  • roles/editor가 부여된 주 구성원은 버킷에 대한 roles/storage.legacyBucketOwnerroles/storage.legacyObjectOwner 역할을 부여받습니다.

  • roles/owner가 부여된 주 구성원은 버킷에 대한 roles/storage.legacyBucketOwnerroles/storage.legacyObjectOwner 역할을 부여받습니다.

균일한 버킷 수준 액세스가 사용 설정되지 않은 버킷을 만들면 단축값을 사용하여 다음 액세스 권한이 부여됩니다.

  • roles/viewer가 부여된 주 구성원은 버킷에 대한 roles/storage.legacyBucketReader 역할을 부여받습니다.

  • roles/editor가 부여된 주 구성원은 버킷에 대한 roles/storage.legacyBucketOwner 역할을 부여받습니다.

  • roles/owner가 부여된 주 구성원은 버킷에 대한 roles/storage.legacyBucketOwner 역할을 부여받습니다.

  • 또한 버킷에는 기본 객체 액세스 제어 목록(ACL)이 있습니다. 이 기본 ACL은 버킷의 새 객체에 적용되는 경우가 많으며, 종종 단축값에 추가 액세스 권한을 부여합니다.

사전 정의된 기존 역할

다음 표에는 액세스제어 목록(ACL) 권한과 동등한 IAM 역할이 있습니다. 프로젝트가 아니라 개별 버킷에만 기존 역할을 부여할 수 있습니다.

역할 설명 권한
스토리지 기존 객체 리더 (roles/storage.legacyObjectReader) 객체 및 ACL을 제외한 객체 메타데이터를 볼 수 있는 권한을 부여합니다. storage.objects.get
스토리지 기존 객체 소유자 (roles/storage.legacyObjectOwner) 객체 및 ACL을 포함한 객체 메타데이터를 보고 수정할 수 있는 권한을 부여합니다. storage.objects.get
storage.objects.update
storage.objects.setRetention
storage.objects.overrideUnlockedRetention
storage.objects.setIamPolicy
storage.objects.getIamPolicy
스토리지 기존 버킷 리더 (roles/storage.legacyBucketReader) 버킷의 콘텐츠를 나열하고 IAM 정책을 제외한 버킷의 메타데이터를 읽을 수 있는 권한을 부여합니다. 객체 및 관리형 폴더를 나열할 때 객체 메타데이터를 읽을 수 있는 권한도 부여합니다(IAM 정책 제외).

이 역할의 사용은 버킷의 ACL에도 반영됩니다. 자세한 내용은 IAM과 ACL 관계를 참조하세요.

storage.buckets.get
storage.objects.list
storage.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.list
스토리지 기존 버킷 작성자 (roles/storage.legacyBucketWriter) 객체와 관리형 폴더를 생성, 교체, 나열, 삭제할 수 있는 권한, 보관 구성이 있는 객체를 만들 수 있는 권한, 나열 시 객체 및 관리형 폴더 메타데이터를 읽을 수 있는 권한(IAM 정책 제외), 버킷 메타데이터를 읽을 수 있는 권한(IAM 정책 제외)을 부여합니다.

이 역할의 사용은 버킷의 ACL에도 반영됩니다. 자세한 내용은 IAM과 ACL 관계를 참조하세요.

storage.buckets.get
storage.objects.list
storage.objects.create
storage.objects.delete
storage.objects.restore
storage.objects.setRetention
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.*
스토리지 기존 버킷 소유자 (roles/storage.legacyBucketOwner) 객체와 관리형 폴더를 생성, 교체, 나열, 삭제할 수 있는 권한, 보관 구성이 있는 객체를 만들 수 있는 권한, 태그 바인딩을 만들고 삭제하고 나열할 수 있는 권한, 나열 시 객체 메타데이터를 읽을 수 있는 권한(IAM 정책 제외), 나열 시 관리형 폴더 메타데이터를 읽을 수 있는 권한 (IAM 정책 포함), 버킷 메타데이터를 읽고 수정할 수 있는 권한 (IAM 정책 포함), 장기 실행 작업을 관리할 수 있는 권한을 부여합니다.

이 역할의 사용은 버킷의 ACL에도 반영됩니다. 자세한 내용은 IAM과 ACL 관계를 참조하세요.

storage.buckets.get
storage.buckets.createTagBinding
storage.buckets.deleteTagBinding
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.buckets.update
storage.buckets.enableObjectRetention
storage.buckets.restore
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.bucketOperations.*
storage.managedFolders.*
storage.objects.list
storage.objects.create
storage.objects.delete
storage.objects.restore
storage.objects.setRetention
storage.multipartUploads.*

커스텀 역할

지정한 권한 모음이 포함된 고유한 역할을 정의해야 할 수 있습니다. 이를 지원하기 위해 IAM은 커스텀 역할을 제공합니다.

다음 단계