Cloud Storage に適用される IAM のロール

事前定義ロール

次の表に、Cloud Storage に関係する Identity and Access Management(IAM)ロールと、各ロールに含まれている権限を示します。特に断りのない限り、これらのロールはプロジェクト、バケット、マネージド フォルダのいずれかに適用できます。

バケット、マネージド フォルダ、オブジェクトへのアクセスを制御する方法については、IAM 権限の使用をご覧ください。

ロール 説明 権限
Storage オブジェクト作成者roles/storage.objectCreator ユーザーによるオブジェクトの作成を許可します。オブジェクトの表示、削除、置き換えを行う権限は付与されません。オブジェクト ACL を取得する権限や、オブジェクト更新リクエストの一部としてオブジェクト ACL を設定する権限は付与されません。 orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.objects.create
storage.managedFolders.create
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
Storage オブジェクト閲覧者roles/storage.objectViewer オブジェクトとそのメタデータ(ACL を除く)を閲覧するためのアクセス権を付与します。

バケット内のオブジェクトとマネージド フォルダを一覧表示することもできます。

resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.get
storage.managedFolders.list
storage.objects.get
storage.objects.list
Storage オブジェクト ユーザーroles/storage.objectUser オブジェクトとマネージド フォルダ、およびそれらのメタデータを作成、表示、一覧表示、更新、削除するためのアクセス権を付与します。ACL あるいは IAM ポリシーを取得または設定する権限は付与されません。 orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
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.update
ストレージ オブジェクト管理者roles/storage.objectAdmin オブジェクトの一覧表示、作成、表示、削除、オブジェクトの ACL の設定など、オブジェクトのすべてを管理できる権限を付与します。マネージド フォルダの作成、削除、取得、一覧表示のためのアクセス権も付与します。 orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
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.managedFolders.*
storage.multipartUploads.*
storage.objects.*
Storage HMAC キー管理者roles/storage.hmacKeyAdmin プロジェクト内の HMAC キーのすべてを管理する権限を付与します。このロールはプロジェクトにのみ適用できます。 orgpolicy.policy.get1
storage.hmacKeys.*
Storage 管理者roles/storage.admin オブジェクト ACL や IAM ポリシーの取得と設定など、バケット、マネージド フォルダ、オブジェクトに対する完全な制御権限を付与します。

個々のバケットに適用した場合、指定したバケットとそのバケット内のマネージド フォルダとオブジェクトにのみ制御が適用されます。

firebase.projects.get
orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.buckets.*
storage.managedFolders.*
storage.objects.*
storage.multipartUploads.*
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.list
storage.hmacKeys.get
storage.hmacKeys.list
編集者roles/editor プロジェクト内のバケットの作成、一覧表示、削除を行う権限、一覧表示するときにバケット メタデータ(ACL を除く)を閲覧する権限、プロジェクト内の HMAC キーを制御する権限を付与します。 storage.buckets.create
storage.buckets.delete
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.listEffectiveTags
storage.buckets.listTagBindings
storage.hmacKeys.*

変更可能な動作

多くの場合、コンビニエンス値のため、基本ロールを付与されたプリンシパルにはプロジェクトのバケットとオブジェクトに対する追加のアクセス権が付与されます。バケットを作成すると、コンビニエンス値に特定のバケットレベルのアクセス権が付与されます。あとでバケットの IAM ポリシーとオブジェクトの ACL を編集して、アクセス権を削除または変更することもできます。

均一なバケットレベルのアクセスが有効になっているバケットを作成すると、コンビニエンス値により次のアクセス権が付与されます。

  • roles/viewer が付与されたプリンシパルには、バケットの roles/storage.legacyBucketReader ロールと roles/storage.legacyObjectReader ロールが付与されます。

  • roles/editor が付与されたプリンシパルには、バケットの roles/storage.legacyBucketOwner ロールと roles/storage.legacyObjectOwner ロールが付与されます。

  • roles/owner が付与されたプリンシパルには、バケットの roles/storage.legacyBucketOwner ロールと roles/storage.legacyObjectOwner ロールが付与されます。

均一なバケットレベルのアクセスが有効になっていないバケットを作成すると、コンビニエンス値により次のアクセス権が付与されます。

  • roles/viewer が付与されたプリンシパルには、バケットの roles/storage.legacyBucketReader ロールが付与されます。

  • roles/editor が付与されたプリンシパルには、バケットの roles/storage.legacyBucketOwner ロールが付与されます。

  • roles/owner が付与されたプリンシパルには、バケットの roles/storage.legacyBucketOwner ロールが付与されます。

  • また、バケットにはデフォルト オブジェクトのアクセス制御リスト(ACL)があります。多くの場合、このデフォルトの ACL はバケット内の新しいオブジェクトに適用され、コンビニエンス値への追加アクセス権を付与します。

従来の事前定義ロール

次の表に、アクセス制御リスト(ACL)権限と同等の IAM ロールの一覧を示します。レガシーロールを付与できるのは、プロジェクトに対してではなく、個々のバケットに対してのみです。

ロール 説明 権限
Storage レガシー オブジェクト読み取りroles/storage.legacyObjectReader オブジェクトとそのメタデータ(ACL を除く)を閲覧する権限を付与します。 storage.objects.get
Storage レガシー オブジェクト オーナーroles/storage.legacyObjectOwner オブジェクトとそのメタデータ(ACL を含む)を閲覧し、編集する権限を付与します。 storage.objects.get
storage.objects.update
storage.objects.setRetention
storage.objects.overrideUnlockedRetention
storage.objects.setIamPolicy
storage.objects.getIamPolicy
Storage レガシー バケット読み取りroles/storage.legacyBucketReader バケットのコンテンツを一覧表示し、バケットのメタデータ(IAM ポリシーを除く)を読み取るための権限を付与します。また、オブジェクトやマネージド フォルダ(IAM ポリシーを除く)を一覧表示する際にオブジェクトのメタデータを読み取る権限を付与します。

このロールの使用はバケットの ACL にも反映されます。詳細については、IAM と ACL の関係をご覧ください。

storage.buckets.get
storage.objects.list
storage.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.list
Storage レガシー バケット書き込みroles/storage.legacyBucketWriter オブジェクトとマネージド フォルダを作成、置換、一覧表示、削除する権限、保持構成を持つオブジェクトを作成する権限、一覧表示するときにオブジェクトとマネージド フォルダのメタデータ(IAM ポリシーを除く)を読み取る権限、バケット メタデータ(IAM ポリシーを除く)を読み取る権限を付与します。

このロールの使用はバケットの ACL にも反映されます。詳細については、IAM と ACL の関係をご覧ください。

storage.buckets.get
storage.objects.list
storage.objects.create
storage.objects.delete
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.setIamPolicy
storage.buckets.getIamPolicy
storage.managedFolders.*
storage.objects.list
storage.objects.create
storage.objects.delete
storage.objects.setRetention
storage.multipartUploads.*

カスタムの役割

場合によっては、自分で指定した一連の権限が含まれた、独自の役割を定義することが必要になります。これをサポートするために、IAM にはカスタムロールが用意されています。

次のステップ