プロジェクト

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

プロジェクトとは

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

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

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

Console

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

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

gsutil

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

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

JSON API

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

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

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

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

XML API

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

    x-goog-project-id: [PROJECT_ID]

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

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

    x-goog-user-project: [PROJECT_ID]

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

プロジェクトと権限

プロジェクトごとに、Cloud Identity and Access Management を使用して、プロジェクトの管理と操作を行うための権限を付与します。Cloud IAM のロールをメンバーに付与すると(Google アカウントなど)、そのメンバーはアクションを実行するための特定の権限を取得します。プロジェクト レベルでロールを付与すると、そのロールによって提供されるアクセス権がプロジェクト内のすべてのバケットとプロジェクト内のオブジェクトに適用されます。また、個々のバケットにロールを付与する場合、そのロールによって提供されるアクセス権は、そのバケットとバケットに含まれるオブジェクトに制限されます。

Cloud Storage に適用される使用可能なロールのリストと、基本ロールと呼ばれる特別なロールのセットを Cloud Storage に適用する方法については、Cloud Storage IAM のロールをご覧ください。

バケットレベルとプロジェクト レベルでのメンバーのロールの表示、付与、取り消しの手順については、プロジェクトに対する IAM の使用をご覧ください。

サービス アカウント

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

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

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

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

Cloud Storage での使用例

次の機能では、自動 Cloud Storage サービス アカウントを使用します。

作成して管理するサービス アカウントで実行できる Cloud Storage に関連するアクションの例を次に示します。

次のステップ