PHP バージョン 5.5 はコミュニティでサポートを終了したため、新しいアプリでは PHP 7 ランタイムを使用することを強くおすすめします。

App Engine へのアクセスを許可するロール

役割により、ユーザー アカウントやサービス アカウントに使用できるサービスとアクションが決まります。App Engine へのアクセスを付与するのは、次のタイプの役割です。

  • 基本の役割。App Engine など(これらに限定されません)、プロジェクト内のすべてのサービスとリソースに適用されます。たとえば、編集者の役割を持つアカウントは、App Engine 設定と Cloud Storage 設定を変更できます。

  • App Engine で事前定義された役割。App Engine へのきめ細かなアクセスを指定します。Cloud プロジェクト内の各サービスには、独自に事前定義ロールがあります。たとえば、App Engine デプロイ担当者の役割のみを持つアカウントは、App Engine アプリをデプロイできますが、Cloud Storage でオブジェクトを表示したり作成したりすることはできません。このようなアカウントで Cloud Storage でオブジェクトを作成したり表示したりするには、Cloud Storage の事前定義された特定の役割も必要になります。

  • カスタムの役割。指定した権限のリストに従ってきめ細かなアクセス権を提供します。

プロジェクトが小規模でニーズもあまり複雑でなければ、基本の役割を使用できます。より詳細なアクセス制御を行うには、事前定義された役割を使用します。

基本ロール

基本の役割は、プロジェクト内のすべてのサービスとリソースに適用されます。たとえば、編集者の役割にあるアカウントは、App Engine 設定と Cloud Storage 設定を変更できます。

役割 Cloud Console の権限 ツールの権限
Owner App Engine アプリケーションの作成に必須。すべての閲覧者権限と編集者権限に加え、デプロイされたソースコードの表示、ユーザーの招待、ユーザーの役割の変更、アプリケーションの削除が可能。 プロジェクト内のすべてのリソースに対する管理者権限あり。 App Engine アプリケーションの作成に必須。アプリケーション コードのデプロイ、すべての構成の更新。
Editor アプリケーション情報の表示、アプリケーション設定の編集。 プロジェクト内のすべてのリソースに対する管理者権限あり。 アプリケーション コードのデプロイ、インデックス / キュー / cron の更新。
Viewer アプリケーション情報の表示。 プロジェクト内のすべてのリソースに対する管理者権限あり。 ログのリクエスト

App Engine の事前定義された役割

App Engine の事前定義された役割を使用すると、アクセス制御をより細かく設定できます。

これらの役割は、App Engine へのアクセスのみを指定します。プロジェクトに Cloud Storage や Cloud SQL などの他のサービスが含まれる場合、その他のサービスへのアクセスを有効にするには、追加の事前定義された役割を割り当てる必要があります。

次の表に、App Engine の各役割をそのターゲット ユーザーとともに示します。それぞれの役割で可能な操作を確認するには、比較表をご覧ください。

役割 可能な操作 ターゲット ユーザー
App Engine 管理者 すべてのアプリケーションの構成と設定に対する読み取り / 書き込み / 変更アクセス権。
  • アプリケーション オーナー / 管理者
  • オンコール エンジニア
  • システム管理者
App Engine サービス管理者
  • すべてのアプリケーション構成への読み取り専用アクセス権。
  • トラフィック構成を含むサービスレベルおよびバージョン レベルの設定に対する書き込みアクセス権。
  • アプリのバージョンはデプロイできません。詳細については、下記の職掌分散をご覧ください。
  • リリース エンジニア
  • DevOps
  • オンコール エンジニア
  • システム管理者
App Engine デプロイ担当者
  • すべてのアプリケーション構成への読み取り専用アクセス権。
  • 新しいバージョンをデプロイして作成するためだけの書き込みアクセス権。
  • トラフィックを処理していない古いバージョンの削除。
  • 既存のバージョンやトラフィック構成は変更できません。

必要なロールの詳細については、下記のデプロイに関するセクションをご覧ください。

  • デプロイ アカウント
  • リリース エンジニア
App Engine 閲覧者 すべてのアプリケーション構成への読み取り専用アクセス権。
  • アプリケーションを表示する必要はあるが、変更は行わないユーザー
  • App Engine の設定がポリシーに準拠しているかを確認する監査担当者
App Engine コード閲覧者 すべてのアプリケーション設定、設定、デプロイされたソースコードへの読み取り専用アクセス権。
  • アプリケーションとそのソースコードを表示する必要はあるが、変更は行わないユーザー
  • 本番環境での問題を診断する必要がある DevOps ユーザー

App Engine の事前定義された役割の比較

次の表に、App Engine の事前定義された役割ごとに可能な操作の比較を示します。

可能な操作 App Engine 管理者 App Engine サービス管理者 App Engine デプロイ担当者 App Engine 閲覧者 App Engine コード閲覧者
すべてのサービス、バージョン、インスタンスの一覧表示
アプリケーション、サービス、バージョン、インスタンスのすべての設定の表示
リソース使用量、負荷情報、エラー情報などのランタイム指標の表示
アプリのソースコードの表示 × × × ×
アプリの新しいバージョンのデプロイ × × ×
トラフィックの分割または移行 希望する × × ×
バージョンの開始と停止 希望する × × ×
バージョンの削除 希望する × ×
サービス全体の削除 希望する × × ×
SSH を使用したフレキシブル環境の VM インスタンスへの接続 × × × ×
インスタンスのシャットダウン × × × ×
App Engine アプリケーションの無効化と再有効化 × × × ×
login:admin 制限のあるハンドラへのアクセス(第 1 世代ランタイムのみ) × × × ×
ディスパッチ ルールの更新 × × × ×
DoS 設定の更新 × × × ×
cron スケジュールの更新 × × × × ×
デフォルトの Cookie の有効期限の更新 × × × ×
リファラーの更新 × × × ×
Email API の承認済み送信者の更新 × × × ×

各役割で付与される特定の IAM 権限については、Admin API の役割をご覧ください。

App Engine デプロイ担当者の役割は、新しいバージョンのアプリのデプロイのみを担当するアカウントに推奨される役割です。代わりに、さまざまなバージョンのデプロイなど、他の管理者権限も含まれている App Engine 管理者の役割を使用することもできます。

どちらの役割を使用した場合も、アカウントには、Admin API を使用してアプリをデプロイするために十分な権限が付与されます。gcloud コマンドや他の App Engine ツールを使用する権限を付与するには、アカウントにストレージ管理者の役割も付与する必要があります。

必要な権限を付与する方法の詳細については、ユーザー アカウントを作成するをご覧ください。

デプロイとトラフィック ルーティングの職掌分散

多くの組織では、アプリケーションのバージョンをデプロイするタスクと新規作成したバージョンへのトラフィックを増やすタスクを分離し、それぞれのタスクを別々の職務として実施しています。App Engine デプロイ担当者と App Engine サービス管理者の役割は、この分離を次のように実現しています。

  • App Engine デプロイ担当者の役割 - アカウントで行えることは、新しいバージョンのデプロイと、トラフィックを処理していない古いバージョンの削除に制限されています。App Engine デプロイ担当者の役割を持つアカウントは、あらゆるバージョンへのトラフィックを構成することも、アプリケーション レベルの設定(ディスパッチ ルールや認証ドメインなど)を変更することもできません。

  • App Engine サービス管理者の役割 - アカウントでは、アプリの新しいバージョンをデプロイすることも、アプリケーション レベルの設定を変更することもできません。ただし、このアカウントには、トラフィックを処理できるバージョンの変更など、既存のサービスやバージョンのプロパティを変更する権限があります。App Engine サービス管理者の役割は、新しくデプロイしたバージョンへのトラフィックを増やす作業を担当する運用部門や IT 部門に適しています。

事前定義された役割の制限事項

上記の事前定義ロールでは、以下の権限は付与されません。

  • App Engine アプリケーションの作成
  • アプリケーション ログの表示とダウンロード
  • Cloud Console でのモニタリング グラフを表示します。
  • 課金の有効化と無効化
  • Cloud Security Scanner でのセキュリティ スキャンの実行
  • Datastore、Task Queues、Memcache、Cloud Search などの Cloud Platform ストレージ プロダクトに保存した構成やデータへのアクセス