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

事前定義ロール

次の表に、Cloud Storage に関係する Identity and Access Management(IAM)ロールと、各ロールに含まれている権限を示します。特に明記されない限り、これらのロールはプロジェクト全体または特定のバケットのいずれかに適用できます。

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

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

バケット内のオブジェクトを一覧表示することもできます。

resourcemanager.projects.get2
resourcemanager.projects.list2
storage.objects.get
storage.objects.list
ストレージ オブジェクト管理者roles/storage.objectAdmin オブジェクトの一覧表示、作成、表示、削除など、オブジェクトのすべてを管理できる権限を付与します。 orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.objects.*
storage.multipartUploads.*
Storage HMAC キー管理者roles/storage.hmacKeyAdmin プロジェクト内の HMAC キーのすべてを管理する権限を付与します。このロールはプロジェクトにのみ適用できます。 orgpolicy.policy.get1
storage.hmacKeys.*
Storage 管理者roles/storage.admin バケットとオブジェクトのすべてを管理する権限を付与します。

個々のバケットに適用した場合、指定したバケットとその中のオブジェクトに対してのみ操作が適用されます。

firebase.projects.get
orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.buckets.*
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/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.*

変更可能な動作

次の表では、コンビニエンス値により、各基本ロールに通常関連付けられている追加の Cloud Storage アクセス権について説明します。この追加アクセス権は、バケットの作成時に付与されますが、後でバケットの IAM ポリシーとオブジェクト ACL を編集して削除または変更することも可能です。

ロール コンビニエンス値によって付与される追加アクセス権
閲覧者roles/viewer
編集者roles/editor
オーナーroles/owner

従来の事前定義ロール

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

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

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

storage.buckets.get
storage.objects.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.multipartUploads.*
ストレージのレガシー バケット オーナーroles/storage.legacyBucketOwner オブジェクトを作成、置き換え、削除するための権限、バケット内のオブジェクトを一覧表示する権限、タグ バインディングの作成、削除、一覧表示を行う権限、一覧表示の際にオブジェクト メタデータ(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.setIamPolicy
storage.buckets.getIamPolicy
storage.objects.list
storage.objects.create
storage.objects.delete
storage.multipartUploads.*

カスタムの役割

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

次のステップ