プロジェクト アクセス権の付与

役割を割り当てることにより、Google Cloud Platform のプロジェクトとリソースにアクセス権限を付与し、これを制御します。役割は、プロジェクト メンバーとサービス アカウントに割り当てることができます。

サービス アカウントは、App Engine などの Google Cloud サービス ID を表し、他のサービスへのアクセスに使用できます。App Engine でのサービス アカウントの使用方法については、アプリの承認をご覧ください。

適切なアクセス制御の選択

役割をプロジェクト メンバーやサービス アカウントに割り当てることで、GCP プロジェクトに対するアクセスレベルが決定されます。Identity and Access Management(IAM)を使用すると、より細かくアクセスを制御できるようになります。さまざまな App Engine の役割の詳細については、アクセス制御をご覧ください。

一般に、「オーナー」、「編集者」、「閲覧者」という基本的な役割は使い方が単純ですが、事前定義された役割にはアクセスするためにより詳細なオプションがあります。App Engine を試してみるだけの場合は、プロジェクトに関与するすべての人に「編集者」の役割を付与するのが、アクセスを制御する最も簡単な方法です。手順については、次の権限を設定するをご覧ください。プロジェクトに App Engine アプリケーションを作成し、他のユーザーをプロジェクトに追加できるのは、オーナーのみであることにご注意ください。

プロジェクトでより複雑な役割を使用するには:

  1. プロジェクトにアクセスする必要があるさまざまな職務部門をすべて特定します。

  2. これらの職務部門について、それぞれに Google グループを設定します

  3. 各 Google グループに、必要なメンバーを追加します。

  4. 次の権限を設定するの説明に従って、各 Google グループをプロジェクトのメンバーとして追加し、各グループに役割を設定します。

権限を設定する

プロジェクト メンバーの追加と権限の設定をするには:

  1. Google Cloud Platform Console で、プロジェクトの [IAM と管理] ページに移動します。

    [IAM と管理] ページに移動

  2. [メンバーの追加] をクリックしてプロジェクトに新しいメンバーを追加し、プルダウン メニューを使ってその役割を設定します。個々のユーザーのメールアドレスを追加できますが、Google グループを使ってグループの役割を管理している場合は Google グループのメールアドレス(example-google-group@googlegroups.com)を指定することもできます。

    グループの追加

  3. 役割を割り当てます。

App Engine のすべての役割の説明と比較マトリクスを表示し、制限事項について確認するには、アクセス制御に移動します。

プルダウン メニューには、他の Google Cloud Platform プロダクトに適用できるこのほかの役割があります。これらの役割の詳細については、事前定義された役割をご覧ください。

IAM の役割を使用してデプロイする

適切な IAM の役割をユーザー アカウントに割り当てることによって、新しいバージョンのアプリを GCP プロジェクトにデプロイする権限を付与できます。

App Engine デプロイ担当者の役割は、アプリのデプロイのみを担当するユーザー アカウントに推奨される役割です。App Engine 管理者の役割でもアプリをデプロイできますが、その他の権限も付与されています。どの構成ファイルをデプロイする必要があるかに応じて、以下の手順で説明するように、アカウントに追加の役割を付与する必要があります。

トラフィックの構成

デフォルトでは、App Engine デプロイ担当者の役割を持つユーザー アカウントは、どのバージョンのアプリに対しても、トラフィックの移行や分割を許可されていません。ただし、現在トラフィックを処理している既存のバージョンがデプロイのターゲットである場合、そのアプリの更新版には、上書きされたバージョンの元のトラフィック設定が保持されます。

たとえば、バージョン 20201155example が現在アプリでトラフィックを処理している場合、gcloud app deploy --version 20201155example コマンドを実行すると、更新されたバージョンが既存のバージョンを上書きしてトラフィックの処理を開始します。

ユーザー アカウントがトラフィックの構成を担当する必要がある場合は、App Engine 管理者または App Engine Service 管理者の役割を使用することを検討してください。

始める前に

ユーザー アカウントで IAM の役割を使用してアプリをデプロイするには、以下の手順を実行します。

App Engine をデプロイする権限をユーザー アカウントに付与する手順は次のとおりです。

  1. Google Cloud Platform Console で、プロジェクトの [IAM と管理] ページに移動します。

    [権限] ページに移動

  2. [メンバーの追加] をクリックしてユーザー アカウントをプロジェクトに追加し、プルダウン メニューを使用してそのアカウントのすべての役割を選択します。

    • アカウントが App Engine にデプロイできるようにするために必要な役割:
      1. 次のいずれかの役割を設定します。
        • [App Engine] > [App Engine デプロイ担当者] の役割を使用して、アカウントが任意のバージョンのアプリをデプロイできるようにします。
        • dos.yaml ファイルまたは dispatch.yaml ファイルもアプリとともにデプロイできるようするには、代わりに [App Engine] > [App Engine 管理者] の役割を使用します。
        これでユーザー アカウントには、Admin API を使用してアプリをデプロイするための適切な権限が付与されました。
      2. App Engine ツールを使用してアプリをデプロイできるようにするには、ユーザー アカウントに次の役割もすべて付与する必要があります。
        • [ストレージ] > [ストレージ管理者] の役割: Cloud Storage にアップロードするためのツール権限。
        • [Cloud Build] > [Cloud Build 編集者] の役割: Cloud Build サービスを使用するためのツール権限。
          この役割が表示されない場合は、まず Cloud Build API を有効にする必要があります。
          [API ライブラリ] ページに移動
    • 省略可。ユーザー アカウントに次の役割を与えて、追加の構成変更をアップロードする権限を付与します。
      • [Datastore] > [Datastore インデックス管理者] の役割: index.yaml ファイルをアップロードするための権限。
      • [Cloud Scheduler] > [Cloud Scheduler 管理者] の役割: cron.yaml ファイルをアップロードするための権限。
      • ユーザー アカウントがデフォルトのネットワーク構成に変更をデプロイできるようにするには、[Compute Engine] > [Compute ネットワーク権限] の役割などの適切な権限を持つ役割をアカウントに付与する必要があります。

これでユーザー アカウントは、関連する GCP プロジェクトで App Engine アプリケーションにアプリをデプロイできるようになりました。アプリのデプロイ方法の詳細については、アプリのデプロイをご覧ください。

上記の手順で権限を構成してもアカウントがアプリをデプロイできない場合は、次の手順に従って、GCP プロジェクトが正しく構成されていることを確認してください。

デフォルトでは、新しい GCP プロジェクトを作成して App Engine フレキシブル環境で有効にすると、そのプロジェクトはアプリのデプロイに必要なすべての権限と API が含まれて作成されます。ただし、これらの権限または API のいずれか、または複数が、プロジェクト設定によって削除される可能性があります。デプロイに失敗した場合の確認項目について説明します。

GCP プロジェクトで次のものが存在するか、または有効になっているかを確認します。

  1. App Engine アプリケーションが作成され、請求が有効になっている。

  2. GCP Console で次の API が有効になっている。

    1. Google App Engine フレキシブル環境

      [API ライブラリ] ページに移動

    2. Google Cloud Build API:

      [API ライブラリ] ページに移動

  3. GCP Console の [IAM と管理] ページで、Google Cloud Build で使用される Google API サービス アカウント([PROJECT_NUMBER]>@cloudbuild.gserviceaccount.com)に編集者の権限があることを確認します。Google Cloud Build のファイルをステージングするには、サービス アカウントに staging.[PROJECT_ID].appspot.com バケットへの書き込み権限が必要です。デフォルトでは、このサービス アカウントにはプロジェクト編集者の役割が付与されています。このため、このサービス アカウントの役割を変更した場合のみ、ここで変更する必要があります。

    [サービス アカウント] ページに移動

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

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

PHP の App Engine フレキシブル環境に関するドキュメント