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

事前定義ロール

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

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

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

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

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

firebase.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.*
storage.objects.*
storage.multipartUploads.*

基本ロール

基本ロールは、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.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.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
ストレージのレガシー バケット オーナーroles/storage.legacyBucketOwner バケット内のオブジェクトを作成、置き換え、削除するためのアクセス権、一覧表示するときに、オブジェクトのメタデータ(IAM ポリシーを除く)を読み取るためのアクセス権、バケットのメタデータ(IAM ポリシーを含む)を読み取って編集するためのアクセス権を付与します。

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

storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.objects.list
storage.objects.create
storage.objects.delete
storage.multipartUploads.*

カスタムの役割

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

次のステップ