プロジェクト

このページでは、Google Cloud Platform Console プロジェクトと Cloud Storage リソース間の関係について説明します。Google Cloud Platform Console プロジェクトの一般的な詳細については、Google Cloud Platform の概要のプロジェクトをご覧ください。

プロジェクトとは

プロジェクトは Google Cloud Platform のリソースをまとめる単位です。プロジェクトは、一連のユーザーや API、API で使用される課金、認証、モニタリングの設定から構成されます。たとえば、1 つのプロジェクトには、Cloud Storage バケットとオブジェクトだけでなく、ユーザーのアクセス権限も含まれます。また、1 つのプロジェクトを持つことも、複数のプロジェクトを作成して、Cloud Storage データを含む Google Cloud Platform のリソースを論理的なグループに整理することもできます。

プロジェクトを指定するタイミング

ほとんどの場合、Cloud Storage でアクションを実行するときにプロジェクトを指定する必要はありませんが、次の場合は、プロジェクト ID またはプロジェクト番号を含める必要があります。

Console

  • GCP Console で Cloud Storage を操作する際に、プロジェクトが自動的に関連付けられます。プロジェクトは、GCP Console ウィンドウの上部にあるプルダウン メニューで変更できます。

  • リクエスト元による支払いが有効にされているバケットに初めてアクセスするときに、リクエストの料金の請求先プロジェクトを選択するよう求められます。請求先プロジェクトは、後で変更できます。それには、バケット内のオブジェクトのリストの上にある [プロジェクト変更] ボタンを使用します。

gsutil

  • デフォルトのプロジェクトを設定している場合を除き、gsutil mbgsutil lsgsutil kms の各コマンドにはプロジェクトを指定する必要があります。デフォルトのプロジェクトを設定していない場合や、異なるプロジェクトを使用する場合には、-p フラグを使用してプロジェクトを指定します。他の gsutil コマンドにはプロジェクトを指定する必要はありません。

  • -u フラグとプロジェクト ID を使用して、バケットのアクセス料金の請求先プロジェクトを指定します。これは、リクエスト元による支払いが有効にされているバケットにアクセスする場合は必須です。それ以外の場合はオプションです。

JSON API

  • list buckets メソッドと insert bucket メソッドでは、プロジェクトを指定する必要があります。次の例のように、プロジェクトはリクエスト URL 内のパラメータとして送信されます。

    GET https://www.googleapis.com/storage/v1/b?project=[PROJECT_ID]
  • バケットのアクセス料金の請求先プロジェクトを指定するには、次の例のように、「userProject」クエリ パラメータとプロジェクト ID を使用します。

    GET https://www.googleapis.com/storage/v1/b?userProject=[PROJECT_ID]

    このクエリ パラメータは、リクエスト元による支払いが有効にされているバケットにアクセスする場合は必須です。それ以外の場合はオプションです。

XML API

  • バケットの一覧表示や挿入を行うときにプロジェクトを指定します。次の例のように、これらの XML API リクエストでは、関連するプロジェクトを x-goog-project-id ヘッダーに指定します。

    x-goog-project-id: [PROJECT_ID]

    他の XML API リクエストの場合や、相互運用アクセスのためにデフォルト プロジェクトを設定している場合、このヘッダーは省略可能です。

  • バケットのアクセス料金の請求先プロジェクトを指定するには、次の例のように、「x-goog-user-project」ヘッダーとプロジェクト ID を使用します。

    x-goog-user-project: [PROJECT_ID]

    このヘッダーは、リクエスト元による支払いが有効にされているバケットにアクセスする場合は必須です。それ以外の場合はオプションです。

プロジェクト メンバーと権限

プロジェクトごとに、Identity and Access Management(IAM)を使用して、プロジェクトの管理や操作を行うチームメンバーを追加できます。IAM でチームメンバーに役割を指定することで、メンバーごとに異なる操作を許可することができます。

多くの IAM 役割は、プロジェクト レベル(プロジェクト内のすべてのバケットに適用)とバケットレベル(バケットに個別に適用)の両方で設定できますが、プロジェクトにのみ適用可能な役割もあります。これらの役割を基本の役割といいます。基本の役割には、Cloud Storage に対して次のような特定があります。

役割 基本的な動作 変更可能な動作
roles/viewer この役割のメンバーは、プロジェクト内のバケットを一覧表示できます。
  • この役割のメンバーには、プロジェクト内の各バケットに対する roles/storage.legacyBucketReader 役割がグループとして付与されます。
  • この役割のメンバーは、プロジェクト内の各バケットに対するデフォルト オブジェクト アクセス制御リスト内の READER です。
  • この役割のメンバーには、バケット ポリシーのみを有効にして作成されたプロジェクト内の任意のバケットに対する roles/storage.legacyObjectReader 役割がグループとして付与されます。
roles/editor この役割のメンバーは、プロジェクト内のバケットの一覧表示、作成、削除を行うことができます。
  • この役割のメンバーには、プロジェクト内の各バケットに対する roles/storage.legacyBucketOwner 役割がグループとして付与されます。
  • この役割のメンバーは、プロジェクト内の各バケットに対するデフォルト オブジェクト アクセス制御リスト内の OWNER です。
  • この役割のメンバーには、バケット ポリシーのみを有効にして作成されたプロジェクト内の任意のバケットに対する roles/storage.legacyObjectOwner 役割がグループとして付与されます。
roles/owner この役割のメンバーは、プロジェクト内のバケットの一覧表示、作成、削除を行うことができます。roles/owner のメンバーは、Google Cloud Platform 内でプロジェクト メンバーの役割の変更や請求先の修正などの管理作業を行うことができます。
  • この役割のメンバーには、プロジェクト内の各バケットに対する roles/storage.legacyBucketOwner 役割がグループとして付与されます。
  • この役割のメンバーは、プロジェクト内の各バケットに対するデフォルト オブジェクト アクセス制御リスト内の OWNER です。
  • この役割のメンバーには、バケット ポリシーのみを有効にして作成されたプロジェクト内の任意のバケットに対する roles/storage.legacyObjectOwner 役割がグループとして付与されます。

Cloud Storage に適用可能な役割の一覧については、Cloud Storage IAM 役割をご覧ください。

プロジェクト レベルで役割へのメンバー追加、メンバーの表示または削除を行う手順については、プロジェクトでの IAM の使用をご覧ください。

上の変更可能な動作で説明したように、プロジェクト チームのメンバーには、IAM の基本的役割で許可されるアクセス権以外に、追加のアクセス権が付与されている場合があります。追加のアクセス権は次の 2 つのソースから付与されます。

  • バケットに適用される IAM 役割: ユーザーがバケットを作成すると、デフォルトで IAM 役割が適用されます。バケットの作成後、このアクセス権を編集できます。

  • オブジェクトに適用されたアクセス制御リスト(ACL): ユーザーがオブジェクトを作成すると、オブジェクトに ACL が適用されます。この ACL は、明示的に指定される場合もデフォルトで適用される場合もあります。いずれの場合も、作成したオブジェクトには ACL によって明確にアクセス権が付与されます。

いずれの場合も、個々のユーザーを指定して付与することも、基本の役割を持つユーザーにまとめて付与することもできます。さらに、プロジェクトで基本的に付与されるアクセス権よりも多くの権限をユーザーに付与できます。

サービス アカウント

サービス アカウントを使用すると、アプリケーションで認証を行って GCP リソースとサービスにアクセスできます。たとえば、Cloud Storage バケット内のオブジェクトにアクセスするために Compute Engine インスタンスによって使用されるサービス アカウントを作成できます。

サービス アカウントはプロジェクト内で作成され、それぞれに識別のための一意のメールアドレスが設定されます。ほとんどのサービスア カウントはユーザーによって作成、管理されますが、GCP サービスによって自動的に作成されるものもあります。Cloud Storage によって自動的に作成されるサービス アカウントには、次の形式のメールアドレスが設定されます。

service-[PROJECT_NUMBER]@gs-project-accounts.iam.gserviceaccount.com

[PROJECT_NUMBER] は、サービス アカウントを所有するプロジェクトのプロジェクト番号です。

Cloud Storage での使用例

次の機能では、Cloud Storage のサービス アカウントが使用されます。

Cloud Storage 以外のサービス アカウントで実施できる Cloud Storage リソースを使用する操作には、次のようなものがあります。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。