プロジェクト

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

プロジェクトとは

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

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

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

Console

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

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

コマンドライン

次のコマンドでは、Google Cloud CLI 構成で project プロパティ セットを使用します。ただし、コマンドでグローバル --project フラグを使用して別のプロジェクトを指定する場合を除きます。

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

クライアント ライブラリ

Cloud Storage クライアント ライブラリでは、JSON API と同じ状況でプロジェクトを指定する必要があります。

JSON API

次のメソッドでは、プロジェクトを指定する必要があります。

次の例のように、プロジェクトはリクエスト URL 内のパラメータとして送信されます。

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

    GET https://storage.googleapis.com/storage/v1/b?userProject=PROJECT_IDENTIFIER

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

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

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

プロジェクトと権限

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

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

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

サービス アカウント

サービス アカウントを使用すると、アプリケーションで認証を行って Google Cloud リソースとサービスにアクセスできます。たとえば、Cloud Storage バケット内のオブジェクトにアクセスするために Compute Engine インスタンスによって使用されるサービス アカウントを作成できます。サービス アカウントはプロジェクト内で作成され、それぞれに識別のための一意のメールアドレスが設定されます。

Cloud Storage に関連する操作には次のようなものがあり、作成と管理を行うサービス アカウントによってよく操作されます。

サービス エージェント

サービス エージェントは、Google Cloud サービスを代行する特別な種類のサービス アカウントです。Cloud Storage では、次の機能にサービス エージェントが使用されます。

Cloud Storage サービス エージェントは、プロジェクトを作成した時点ではまだ利用できません。サービス エージェントは、上記のいずれかの機能で使用するか、サービス エージェントの名前をリクエストして初めてアクセスされたときに、自動的に有効になります。権限の割り当ては、サービス エージェントを有効にした後に行う必要があります。

プロジェクト番号 123456789876 に関連付けられた Cloud Storage サービス エージェントのメールアドレスの例を次に示します。

service-123456789876@gs-project-accounts.iam.gserviceaccount.com

次のステップ